增加测试用例,测试超出SM上限后的读写效果

This commit is contained in:
2025-08-06 16:52:11 +08:00
parent 0281a55bc9
commit 777760fc60
2 changed files with 162 additions and 32 deletions

View File

@@ -27,6 +27,13 @@ if __name__ == '__main__':
#add_tc_2_runlist(base.tc13()) #add_tc_2_runlist(base.tc13())
#add_tc_2_runlist(base.tc14()) #add_tc_2_runlist(base.tc14())
add_tc_2_runlist(base.tc15()) add_tc_2_runlist(base.tc15())
add_tc_2_runlist(base.tc16())
add_tc_2_runlist(base.tc17())
add_tc_2_runlist(base.tc18())
add_tc_2_runlist(base.tc19())
add_tc_2_runlist(base.tc20())
add_tc_2_runlist(base.tc21())
add_tc_2_runlist(base.tc22())

View File

@@ -1129,12 +1129,12 @@ def tc14():
return gen_file_def return gen_file_def
def tc15(): def tc_wr_sm(tc_id, wr_sm_idx):
genPkt = GenPkt() genPkt = GenPkt()
gen_file_def = "base_tc15" gen_file_def = f"base_tc{tc_id}_wr_sm{wr_sm_idx}"
sm_idx = 0 sm_idx = 0
tc_des = "读写SM缓冲区超过缓冲区的元素上限期望结果超出缓冲区的数据不被接收工作计数不加。\\n" \ tc_des = f"读写SM{wr_sm_idx}缓冲区超过缓冲区的元素上限,期望结果,超出缓冲区的数据不被接收,工作计数不加。\\n" \
+ "检查是否真的写入,子报文的状态。" + "检查是否真的写入,子报文的状态。"
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
@@ -1143,15 +1143,15 @@ def tc15():
genPkt.setPktType(0) genPkt.setPktType(0)
#subPkt参数索引、索引类型、地址、命令、长度、数据 #subPkt参数索引、索引类型、地址、命令、长度、数据
genPkt.addSubPkt(0, 0, 0x0302, 0xe, 2, [32, 0]) genPkt.addSubPkt(0, 0, 0x0302 + wr_sm_idx * 0x4, 0xe, 2, [32, 0])
genPkt.addSubPkt(0, 0, 0x0800, 0xe, 32, list(range(0, 32))) genPkt.addSubPkt(0, 0, 0x0800 + wr_sm_idx * 0x0800, 0xe, 32, list(range(0, 32)))
genPkt.addSubPkt(0, 0, 0x0800, 0xe, 32, list(range(32, 64))) genPkt.addSubPkt(0, 0, 0x0800 + wr_sm_idx * 0x0800, 0xe, 32, list(range(32, 64)))
genPkt.addSubPkt(0, 0, 0x0800, 0xe, 32, list(range(64, 96))) genPkt.addSubPkt(0, 0, 0x0800 + wr_sm_idx * 0x0800, 0xe, 32, list(range(64, 96)))
genPkt.addSubPkt(0, 0, 0x0800, 0xe, 32, list(range(96, 128))) genPkt.addSubPkt(0, 0, 0x0800 + wr_sm_idx * 0x0800, 0xe, 32, list(range(96, 128)))
genPkt.addSubPkt(0, 0, 0x0800, 0xe, 32, list(range(128, 160))) genPkt.addSubPkt(0, 0, 0x0800 + wr_sm_idx * 0x0800, 0xe, 32, list(range(128, 160)))
genPkt.addSubPkt(0, 0, 0x0800, 0xe, 32, list(range(160, 192))) genPkt.addSubPkt(0, 0, 0x0800 + wr_sm_idx * 0x0800, 0xe, 32, list(range(160, 192)))
genPkt.addSubPkt(0, 0, 0x0800, 0xe, 32, list(range(192, 224))) genPkt.addSubPkt(0, 0, 0x0800 + wr_sm_idx * 0x0800, 0xe, 32, list(range(192, 224)))
genPkt.addSubPkt(0, 0, 0x0800, 0xe, 32, list(range(224, 256))) genPkt.addSubPkt(0, 0, 0x0800 + wr_sm_idx * 0x0800, 0xe, 32, list(range(224, 256)))
sm_idx = 0 sm_idx = 0
@@ -1183,33 +1183,156 @@ def tc15():
+genIFRwDataCode(3, 0x74, False, 4) +genIFRwDataCode(3, 0x74, False, 4)
+genIFRwDataCode(4, 0x74, False, 4) +genIFRwDataCode(4, 0x74, False, 4)
+genSlvSMReadData(1, 0, 32) +genSlvSMReadData(1, wr_sm_idx, 32)
+genSlvSMReadData(2, 0, 32) +genSlvSMReadData(2, wr_sm_idx, 32)
+genSlvSMReadData(3, 0, 32) +genSlvSMReadData(3, wr_sm_idx, 32)
+genSlvSMReadData(4, 0, 32) +genSlvSMReadData(4, wr_sm_idx, 32)
+genSlvSMReadData(1, 0, 32) +genSlvSMReadData(1, wr_sm_idx, 32)
+genSlvSMReadData(2, 0, 32) +genSlvSMReadData(2, wr_sm_idx, 32)
+genSlvSMReadData(3, 0, 32) +genSlvSMReadData(3, wr_sm_idx, 32)
+genSlvSMReadData(4, 0, 32) +genSlvSMReadData(4, wr_sm_idx, 32)
+genSlvSMReadData(1, 0, 32) +genSlvSMReadData(1, wr_sm_idx, 32)
+genSlvSMReadData(2, 0, 32) +genSlvSMReadData(2, wr_sm_idx, 32)
+genSlvSMReadData(3, 0, 32) +genSlvSMReadData(3, wr_sm_idx, 32)
+genSlvSMReadData(4, 0, 32) +genSlvSMReadData(4, wr_sm_idx, 32)
+genSlvSMReadData(1, 0, 32) +genSlvSMReadData(1, wr_sm_idx, 32)
+genSlvSMReadData(2, 0, 32) +genSlvSMReadData(2, wr_sm_idx, 32)
+genSlvSMReadData(3, 0, 32) +genSlvSMReadData(3, wr_sm_idx, 32)
+genSlvSMReadData(4, 0, 32) +genSlvSMReadData(4, wr_sm_idx, 32)
+genSlvSMReadData(1, 0, 32) +genSlvSMReadData(1, wr_sm_idx, 32)
+genSlvSMReadData(2, 0, 32) +genSlvSMReadData(2, wr_sm_idx, 32)
+genSlvSMReadData(3, 0, 32) +genSlvSMReadData(3, wr_sm_idx, 32)
+genSlvSMReadData(4, 0, 32) +genSlvSMReadData(4, wr_sm_idx, 32)
+genTcEndFrameCode(gen_file_def)) +genTcEndFrameCode(gen_file_def))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
return gen_file_def return gen_file_def
def tc_rd_sm(tc_id, rd_sm_idx):
genPkt = GenPkt()
gen_file_def = f"base_tc{tc_id}_rd_sm{rd_sm_idx}"
sm_idx = 0
tc_des = f"读写SM{rd_sm_idx}缓冲区超过缓冲区的元素上限,期望结果,超出缓冲区的数据不被接收,工作计数不加。\\n" \
+ "检查是否真的写入,子报文的状态。"
#-------------------------------------------------------------------------
#>>>>>>普通数据包3
genPkt.clean()
genPkt.setPktType(0)
#subPkt参数索引、索引类型、地址、命令、长度、数据
#genPkt.addSubPkt(0, 0, 0x0302, 0xd, 2, [32, 0])
genPkt.addSubPkt(0, 0, 0x0800 + rd_sm_idx * 0x0800, 0xd, 32, [0,]*32)
genPkt.addSubPkt(0, 0, 0x0800 + rd_sm_idx * 0x0800, 0xd, 32, [0,]*32)
genPkt.addSubPkt(0, 0, 0x0800 + rd_sm_idx * 0x0800, 0xd, 32, [0,]*32)
genPkt.addSubPkt(0, 0, 0x0800 + rd_sm_idx * 0x0800, 0xd, 32, [0,]*32)
genPkt.addSubPkt(0, 0, 0x0800 + rd_sm_idx * 0x0800, 0xd, 32, [0,]*32)
genPkt.addSubPkt(0, 0, 0x0800 + rd_sm_idx * 0x0800, 0xd, 32, [0,]*32)
genPkt.addSubPkt(0, 0, 0x0800 + rd_sm_idx * 0x0800, 0xd, 32, [0,]*32)
genPkt.addSubPkt(0, 0, 0x0800 + rd_sm_idx * 0x0800, 0xd, 32, [0,]*32)
sm_idx = 0
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)
+genSlvSMWriteData(1, rd_sm_idx, 32, list(range(0, 32)))
+genSlvSMWriteData(1, rd_sm_idx, 32, list(range(32, 64)))
+genSlvSMWriteData(1, rd_sm_idx, 32, list(range(64, 96)))
+genSlvSMWriteData(1, rd_sm_idx, 32, list(range(96, 128)))
+genSlvSMWriteData(1, rd_sm_idx, 32, list(range(128, 160)))
+genSlvSMWriteData(1, rd_sm_idx, 32, list(range(160, 192)))
+genSlvSMWriteData(1, rd_sm_idx, 32, list(range(192, 224)))
+genSlvSMWriteData(1, rd_sm_idx, 32, list(range(224, 256)))
+genSlvSMWriteData(2, rd_sm_idx, 32, list(range(0, 32)))
+genSlvSMWriteData(2, rd_sm_idx, 32, list(range(32, 64)))
+genSlvSMWriteData(2, rd_sm_idx, 32, list(range(64, 96)))
+genSlvSMWriteData(2, rd_sm_idx, 32, list(range(96, 128)))
+genSlvSMWriteData(2, rd_sm_idx, 32, list(range(128, 160)))
+genSlvSMWriteData(2, rd_sm_idx, 32, list(range(160, 192)))
+genSlvSMWriteData(2, rd_sm_idx, 32, list(range(192, 224)))
+genSlvSMWriteData(2, rd_sm_idx, 32, list(range(224, 256)))
+genSlvSMWriteData(3, rd_sm_idx, 32, list(range(0, 32)))
+genSlvSMWriteData(3, rd_sm_idx, 32, list(range(32, 64)))
+genSlvSMWriteData(3, rd_sm_idx, 32, list(range(64, 96)))
+genSlvSMWriteData(3, rd_sm_idx, 32, list(range(96, 128)))
+genSlvSMWriteData(3, rd_sm_idx, 32, list(range(128, 160)))
+genSlvSMWriteData(3, rd_sm_idx, 32, list(range(160, 192)))
+genSlvSMWriteData(3, rd_sm_idx, 32, list(range(192, 224)))
+genSlvSMWriteData(3, rd_sm_idx, 32, list(range(224, 256)))
+genSlvSMWriteData(4, rd_sm_idx, 32, list(range(0, 32)))
+genSlvSMWriteData(4, rd_sm_idx, 32, list(range(32, 64)))
+genSlvSMWriteData(4, rd_sm_idx, 32, list(range(64, 96)))
+genSlvSMWriteData(4, rd_sm_idx, 32, list(range(96, 128)))
+genSlvSMWriteData(4, rd_sm_idx, 32, list(range(128, 160)))
+genSlvSMWriteData(4, rd_sm_idx, 32, list(range(160, 192)))
+genSlvSMWriteData(4, rd_sm_idx, 32, list(range(192, 224)))
+genSlvSMWriteData(4, rd_sm_idx, 32, list(range(224, 256)))
)
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def, sm_idx)
+genWriteTransPktCode(gen_file_def, sm_idx)
+genTrgTransPktCode(gen_file_def, sm_idx)
+genReadAckPktCode(gen_file_def, sm_idx)
+genMessageCode("--读取中断")
+genIFRwDataCode(0, 0x74, False, 4)
+genIFRwDataCode(1, 0x74, False, 4)
+genIFRwDataCode(2, 0x74, False, 4)
+genIFRwDataCode(3, 0x74, False, 4)
+genIFRwDataCode(4, 0x74, False, 4)
+genMessageCode("--清除中断")
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
+genIFRwDataCode(1, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
+genIFRwDataCode(2, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
+genIFRwDataCode(3, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
+genIFRwDataCode(4, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
+genMessageCode("--读取中断")
+genIFRwDataCode(0, 0x74, False, 4)
+genIFRwDataCode(1, 0x74, False, 4)
+genIFRwDataCode(2, 0x74, False, 4)
+genIFRwDataCode(3, 0x74, False, 4)
+genIFRwDataCode(4, 0x74, False, 4)
+genTcEndFrameCode(gen_file_def))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
return gen_file_def
def tc15():
return tc_wr_sm(15, 0)
def tc16():
return tc_rd_sm(16, 1)
def tc17():
return tc_wr_sm(17, 2)
def tc18():
return tc_rd_sm(18, 3)
def tc19():
return tc_wr_sm(19, 4)
def tc20():
return tc_rd_sm(20, 5)
def tc21():
return tc_wr_sm(21, 6)
def tc22():
return tc_rd_sm(22, 7)