Files
eb001/tb/shinTest/testcase/errorPkt.py

413 lines
17 KiB
Python
Raw Normal View History

from pyutils import *
import time
import random
def tc1():
random.seed(int(time.time() * 1000))
genPkt = GenPkt()
2025-08-01 19:14:52 +08:00
gen_file_def = "error_pkt_tc01"
sm_idx = 0
tc_des = "发送错误的数据包,导致设备出问题,出问题的设备在没有恢复的情况下,采取直通状态。\\n" \
+ "清除中断后,错误消失,出问题的设备恢复正常。"
#-------------------------------------------------------------------------
#>>>>>>错误的数据包1
genPkt.clean()
2025-08-01 19:14:52 +08:00
data = [0x57, 0x17, 0xfd, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x40]
for i in range(64):
data.append(random.randint(0, 255))
data = data + [0, 0, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x40]
for i in range(64):
data.append(random.randint(0, 255))
data = data + [0, 0]
genPkt.setPkt(2, data)
2025-08-01 19:14:52 +08:00
2025-08-12 17:26:20 +08:00
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)
+genIFRwDataCode(0, 0x80, False, 24)
+genIFRwDataCode(0, 0xa0, False, 24)
+genIFRwDataCode(1, 0x80, False, 24)
+genIFRwDataCode(2, 0x80, False, 24)
+genIFRwDataCode(3, 0x80, False, 24)
+genIFRwDataCode(4, 0x80, False, 24)
)
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def, sm_idx)
+genWriteTransPktCode(gen_file_def, sm_idx)
+genTrgTransPktCode(gen_file_def, sm_idx)
2025-08-01 19:14:52 +08:00
+genReadAckPktCode(gen_file_def, sm_idx)
2025-08-19 17:37:05 +08:00
+genMessageCode("--读取统计寄存器")
2025-08-12 17:26:20 +08:00
+genIFRwDataCode(0, 0x80, False, 24)
+genIFRwDataCode(0, 0xa0, False, 24)
+genIFRwDataCode(1, 0x80, False, 24)
+genIFRwDataCode(2, 0x80, False, 24)
+genIFRwDataCode(3, 0x80, False, 24)
+genIFRwDataCode(4, 0x80, False, 24)
2025-08-19 17:37:05 +08:00
+genMessageCode("--数据包状态寄存器")
+genIFRwDataCode(0, 0x22, False, 2)
+genIFRwDataCode(0, 0x22, True, 2, [0xff, 0xff])
+genIFRwDataCode(0, 0x22, False, 2)
2025-08-01 19:14:52 +08:00
)
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
2025-08-01 19:14:52 +08:00
genPkt.clean()
gen_file_def_ap = gen_file_def + "_rw"
sm_idx = 0
data = [0, ] * 32
genPkt.addSubPkt(0, 0, 0, 0xd, 32, data)
clear_int = [0xff, 0xff, 0xff, 0xff]
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)
+genIFRwDataCode(1, 0x74, False, 4)
+genIFRwDataCode(2, 0x74, False, 4)
+genIFRwDataCode(3, 0x74, False, 4)
+genIFRwDataCode(4, 0x74, False, 4)
+genIFRwDataCode(1, 0x78, True, 4, clear_int)
+genIFRwDataCode(2, 0x78, True, 4, clear_int)
+genIFRwDataCode(3, 0x78, True, 4, clear_int)
+genIFRwDataCode(4, 0x78, True, 4, clear_int)
+genIFRwDataCode(1, 0x74, False, 4)
+genIFRwDataCode(2, 0x74, False, 4)
+genIFRwDataCode(3, 0x74, False, 4)
+genIFRwDataCode(4, 0x74, False, 4)
2025-08-19 17:37:05 +08:00
+genMessageCode("--读取统计寄存器")
2025-08-12 17:26:20 +08:00
+genIFRwDataCode(0, 0x80, False, 24)
+genIFRwDataCode(0, 0xa0, False, 24)
+genIFRwDataCode(1, 0x80, False, 24)
+genIFRwDataCode(2, 0x80, False, 24)
+genIFRwDataCode(3, 0x80, False, 24)
+genIFRwDataCode(4, 0x80, False, 24)
2025-08-19 17:37:05 +08:00
+genMessageCode("--数据包状态寄存器")
+genIFRwDataCode(0, 0x22, False, 2)
+genIFRwDataCode(0, 0x22, True, 2, [0xff, 0xff])
+genIFRwDataCode(0, 0x22, False, 2)
2025-08-01 19:14:52 +08:00
+genTcEndFrameCode(gen_file_def))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1, True, gen_file_def_ap)
return gen_file_def
def tc2():
random.seed(int(time.time() * 1000))
genPkt = GenPkt()
2025-08-01 17:41:15 +08:00
2025-08-01 19:14:52 +08:00
gen_file_def = "error_pkt_tc02"
2025-08-01 17:41:15 +08:00
sm_idx = 0
2025-08-01 19:14:52 +08:00
tc_des = "发送错误的数据包,导致设备出问题,出问题的设备在没有恢复的情况下,采取直通状态。\\n" \
+ "清除中断后,错误消失,出问题的设备恢复正常。"
2025-08-01 17:41:15 +08:00
#-------------------------------------------------------------------------
#>>>>>>错误的数据包2
genPkt.clean()
data = list()
'''
for i in range(128):
data.append(random.randint(0, 255))
'''
data = data + [0xb2, 0x4e, 0xd3, 0xe2, 0xa8, 0xd3, 0x86, 0x01, 0x44, 0x3f]
for i in range(64):
data.append(random.randint(0, 255))
data = data + [0, 0, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x40]
for i in range(64):
data.append(random.randint(0, 255))
data = data + [0, 0]
genPkt.setPkt(2, data)
2025-08-01 17:41:15 +08:00
sm_idx = 0
2025-08-01 17:41:15 +08:00
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)
2025-08-19 17:37:05 +08:00
+genReadAckPktCode(gen_file_def, sm_idx)
+genMessageCode("--数据包状态寄存器")
+genIFRwDataCode(0, 0x22, False, 2)
+genIFRwDataCode(0, 0x22, True, 2, [0xff, 0xff])
+genIFRwDataCode(0, 0x22, False, 2)
)
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
2025-08-01 17:41:15 +08:00
genPkt.clean()
gen_file_def_ap = gen_file_def + "_rw"
sm_idx = 0
data = [0,] * 32
genPkt.addSubPkt(0, 0, 0, 0xd, 32, data)
clear_int = [0xff, 0xff, 0xff, 0xff]
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)
2025-08-19 17:37:05 +08:00
+genIFRwDataCode(0, 0x74, False, 4)
2025-08-01 17:41:15 +08:00
+genIFRwDataCode(1, 0x74, False, 4)
+genIFRwDataCode(2, 0x74, False, 4)
+genIFRwDataCode(3, 0x74, False, 4)
+genIFRwDataCode(4, 0x74, False, 4)
2025-08-19 17:37:05 +08:00
+genIFRwDataCode(0, 0x78, True, 4, clear_int)
2025-08-01 17:41:15 +08:00
+genIFRwDataCode(1, 0x78, True, 4, clear_int)
+genIFRwDataCode(2, 0x78, True, 4, clear_int)
+genIFRwDataCode(3, 0x78, True, 4, clear_int)
+genIFRwDataCode(4, 0x78, True, 4, clear_int)
2025-08-19 17:37:05 +08:00
+genIFRwDataCode(0, 0x74, False, 4)
2025-08-01 17:41:15 +08:00
+genIFRwDataCode(1, 0x74, False, 4)
+genIFRwDataCode(2, 0x74, False, 4)
+genIFRwDataCode(3, 0x74, False, 4)
+genIFRwDataCode(4, 0x74, False, 4)
2025-08-01 19:14:52 +08:00
2025-08-19 17:37:05 +08:00
+genMessageCode("--数据包状态寄存器")
+genIFRwDataCode(0, 0x22, False, 2)
+genIFRwDataCode(0, 0x22, True, 2, [0xff, 0xff])
+genIFRwDataCode(0, 0x22, False, 2)
2025-08-01 17:41:15 +08:00
+genTcEndFrameCode(gen_file_def))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1, True, gen_file_def_ap)
return gen_file_def
def tc3():
random.seed(int(time.time() * 1000))
gen_file_def = "error_pkt_tc03"
sm_idx = 0
tc_des = "发送错误的数据包,导致设备出问题,出问题的设备在没有恢复的情况下,采取直通状态。\\n" \
+ "清除中断后,错误消失,出问题的设备恢复正常。"
genPkt = GenPkt()
#-------------------------------------------------------------------------
#>>>>>>错误的数据包3
genPkt.clean()
data = list()
for i in range(1024):
data.append(random.randint(0, 255))
genPkt.setPkt(2, data)
sm_idx = 0
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)
2025-08-19 17:37:05 +08:00
+genMessageCode("--数据包状态寄存器")
+genIFRwDataCode(0, 0x22, False, 2)
+genIFRwDataCode(0, 0x22, True, 2, [0xff, 0xff])
+genIFRwDataCode(0, 0x22, False, 2)
+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)
+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])
+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 tc4():
genPkt = GenPkt()
#-------------------------------------------------------------------------
#>>>>>>错误的嗅探数据包
2025-08-01 19:14:52 +08:00
gen_file_def = "error_pkt_tc04"
sm_idx = 0
tc_des = "发送错误的数据包,导致设备出问题,出问题的设备在没有恢复的情况下,采取直通状态。\\n" \
+ "清除中断后,错误消失,出问题的设备恢复正常。"
genPkt.clean()
genPkt.setPkt(2, [0, 0, 0, 0])
2025-08-01 19:14:52 +08:00
sm_idx = 0
2025-08-01 19:14:52 +08:00
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))
2025-08-01 19:14:52 +08:00
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
2025-08-01 19:14:52 +08:00
genPkt.clean()
gen_file_def_ap = gen_file_def + "_rw"
sm_idx = 0
data = [0,] * 32
genPkt.addSubPkt(0, 0, 0, 0xd, 32, data)
clear_int = [0xff, 0xff, 0xff, 0xff]
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)
2025-08-19 17:37:05 +08:00
+genIFRwDataCode(0, 0x74, False, 4)
2025-08-01 19:14:52 +08:00
+genIFRwDataCode(1, 0x74, False, 4)
+genIFRwDataCode(2, 0x74, False, 4)
+genIFRwDataCode(3, 0x74, False, 4)
+genIFRwDataCode(4, 0x74, False, 4)
2025-08-19 17:37:05 +08:00
+genIFRwDataCode(0, 0x78, True, 4, clear_int)
2025-08-01 19:14:52 +08:00
+genIFRwDataCode(1, 0x78, True, 4, clear_int)
+genIFRwDataCode(2, 0x78, True, 4, clear_int)
+genIFRwDataCode(3, 0x78, True, 4, clear_int)
+genIFRwDataCode(4, 0x78, True, 4, clear_int)
2025-08-19 17:37:05 +08:00
+genIFRwDataCode(0, 0x74, False, 4)
2025-08-01 19:14:52 +08:00
+genIFRwDataCode(1, 0x74, False, 4)
+genIFRwDataCode(2, 0x74, False, 4)
+genIFRwDataCode(3, 0x74, False, 4)
+genIFRwDataCode(4, 0x74, False, 4)
2025-08-19 17:37:05 +08:00
+genMessageCode("--数据包状态寄存器")
+genIFRwDataCode(0, 0x22, False, 2)
+genIFRwDataCode(0, 0x22, True, 2, [0xff, 0xff])
+genIFRwDataCode(0, 0x22, False, 2)
2025-08-01 19:14:52 +08:00
+genTcEndFrameCode(gen_file_def))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1, True, gen_file_def_ap)
return gen_file_def
def tc5():
random.seed(int(time.time() * 1000))
genPkt = GenPkt()
gen_file_def = "error_pkt_tc05"
sm_idx = 0
tc_des = "发送错误的数据包,导致设备出问题,出问题的设备在没有恢复的情况下,采取直通状态。\\n" \
+ "清除中断后,错误消失,出问题的设备恢复正常。"
#-------------------------------------------------------------------------
#>>>>>>错误的数据包2
genPkt.clean()
data = list()
'''
for i in range(128):
data.append(random.randint(0, 255))
'''
data = data + [0x1a, 0x40, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x80]
for i in range(64):
data.append(random.randint(0, 255))
data = data + [0, 0, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x40]
for i in range(64):
data.append(random.randint(0, 255))
data = data + [0, 0]
genPkt.setPkt(2, data)
sm_idx = 0
2025-08-19 17:37:05 +08:00
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)
+genMessageCode("--读取统计寄存器")
+genIFRwDataCode(0, 0x80, False, 24)
+genIFRwDataCode(0, 0xa0, False, 24))
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def, sm_idx)
+genWriteTransPktCode(gen_file_def, sm_idx)
+genTrgTransPktCode(gen_file_def, sm_idx)
2025-08-19 17:37:05 +08:00
+genReadAckPktCode(gen_file_def, 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))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
genPkt.clean()
gen_file_def_ap = gen_file_def + "_rw"
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)
2025-08-19 17:37:05 +08:00
+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