1.增加测试用例;2.增加自动生成从站数量的代码,可更改成任意的从站数量

This commit is contained in:
2025-08-25 00:32:52 +08:00
parent 1ea82ab72c
commit b7f5fe5749
6 changed files with 450 additions and 12 deletions

View File

@@ -331,10 +331,10 @@ def tc5():
data.append(random.randint(0, 255))
'''
data = data + [0x1a, 0x40, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x80]
data = data + [0x1a, 0x40, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x40]
for i in range(64):
data.append(random.randint(0, 255))
data = data + [0, 0, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x40]
data = data + [0, 0, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x50]
for i in range(64):
data.append(random.randint(0, 255))
data = data + [0, 0]
@@ -364,7 +364,51 @@ def tc5():
genPkt.clean()
gen_file_def_ap = gen_file_def + "_rw"
gen_file_def_ap = gen_file_def + "_rw01"
sm_idx = 0
data = [0,] * 32
genPkt.addSubPkt(0, 0, 0, 0xd, 32, data)
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def_ap, sm_idx)
+genWriteTransPktCode(gen_file_def_ap, sm_idx)
+genTrgTransPktCode(gen_file_def_ap, sm_idx)
+genReadAckPktCode(gen_file_def_ap, sm_idx)
+genMessageCode("--数据包状态寄存器")
+genIFRwDataCode(0, 0x22, False, 2)
+genIFRwDataCode(0, 0x22, True, 2, [0xff, 0xff])
+genIFRwDataCode(0, 0x22, False, 2)
+genMessageCode("--读取统计寄存器")
+genIFRwDataCode(0, 0x80, False, 24)
+genIFRwDataCode(0, 0xa0, False, 24)
+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)
)
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1, True, gen_file_def_ap)
genPkt.clean()
gen_file_def_ap = gen_file_def + "_rw02"
sm_idx = 0
data = [0,] * 32
@@ -405,8 +449,193 @@ def tc5():
+genIFRwDataCode(3, 0x74, False, 4)
+genIFRwDataCode(4, 0x74, False, 4)
+genIFRwDataCode(0, 0x7c, False, 2)
+genIFRwDataCode(1, 0x7c, False, 2)
+genIFRwDataCode(2, 0x7c, False, 2)
+genIFRwDataCode(3, 0x7c, False, 2)
+genIFRwDataCode(4, 0x7c, False, 2)
+genTcEndFrameCode(gen_file_def))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1, True, gen_file_def_ap)
return gen_file_def
def tc6():
random.seed(int(time.time() * 1000))
genPkt = GenPkt()
gen_file_def = "error_pkt_tc06"
sm_idx = 0
tc_des = ("发送错误的数据包,导致设备出问题。出问题后,恢复错误,其中误操作的寄存器全部恢复正常。\\n"
"清除错误后,数据应该恢复正常。"
)
genPkt.clean()
genPkt.addSubPkt(0x0, 0x0, 0x302, 0xe, 2, [0x20, 0x00])
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)
)
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)
)
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
genPkt.clean()
data = list()
'''
00 04 03 02 20 02 // type: 0 dev: 1 addr:0x0302 cmd:0x2 len: 2
{{ 20 00 }}
00 02
00 00 03 0a e0 02 // type: 0 dev: 0 addr:0x030a cmd:0xe len: 2
{{ 20 00 }}
00 04
'''
data = data + [0x1a, 0x40, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x40]
for i in range(64):
data.append(random.randint(0, 255))
data = data + [0x00, 0x00]
data = data + [0x00, 0x00, 0x03, 0x02, 0xe0, 0x02, 0x40, 0x01, 0x00, 0x00]
#data = data + [0x00, 0x0c, 0x00, 0xc0, 0x00, 0x80]
for i in range(128):
data.append(random.randint(0, 255))
data = data + [0, 0]
genPkt.setPkt(2, data)
sm_idx = 0
genPkt.addBeforeExc(genMessageCode("--读取统计寄存器")
+genIFRwDataCode(0, 0x80, False, 24)
+genIFRwDataCode(0, 0xa0, False, 24)
+genIFRwDataCode(1, 0x80, False, 24)
+genIFRwDataCode(1, 0xa0, False, 24)
)
gen_file_def_ap = gen_file_def + "_rw01"
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def_ap, sm_idx)
+genWriteTransPktCode(gen_file_def_ap, sm_idx)
+genTrgTransPktCode(gen_file_def_ap, sm_idx)
+genReadAckPktCode(gen_file_def_ap, sm_idx)
+genMessageCode("--数据包状态寄存器")
+genIFRwDataCode(0, 0x22, False, 2)
+genIFRwDataCode(0, 0x22, True, 2, [0xff, 0xff])
+genIFRwDataCode(0, 0x22, False, 2)
+genMessageCode("--读取统计寄存器")
+genIFRwDataCode(0, 0x80, False, 24)
+genIFRwDataCode(0, 0xa0, False, 24)
+genIFRwDataCode(1, 0x80, False, 24)
+genIFRwDataCode(1, 0xa0, False, 24)
+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)
)
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1, True, gen_file_def_ap)
genPkt.clean()
gen_file_def_ap = gen_file_def + "_rw02"
sm_idx = 0
data = [0,] * 32
genPkt.addSubPkt(1, 0, 0x302, 0x0, 2, data)
genPkt.addSubPkt(2, 0, 0x302, 0x0, 2, data)
genPkt.addSubPkt(3, 0, 0x302, 0x0, 2, data)
genPkt.addSubPkt(4, 0, 0x302, 0x0, 2, data)
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def_ap, sm_idx)
+genWriteTransPktCode(gen_file_def_ap, sm_idx)
+genTrgTransPktCode(gen_file_def_ap, sm_idx)
+genReadAckPktCode(gen_file_def_ap, sm_idx)
+genMessageCode("--数据包状态寄存器")
+genIFRwDataCode(0, 0x22, False, 2)
+genIFRwDataCode(0, 0x22, True, 2, [0xff, 0xff])
+genIFRwDataCode(0, 0x22, False, 2)
#+genMessageCode("--读取统计寄存器")
#+genIFRwDataCode(0, 0x80, False, 24)
#+genIFRwDataCode(0, 0xa0, False, 24)
+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, True, gen_file_def_ap)
return gen_file_def