from pyutils import * from .environment import * import time import random def tc1(): gen_file_def = "regtest_tc01" sm_idx = 0 tc_des = "测试寄存器的读写状态,将系统改为8B10B进行通信。特别测试SPI/QSPI读写密码正确和不正确的情况下,对读写的封堵。\\n" genPkt = GenPkt() genPkt.clean() dev_num = get_slv_dev_num() genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)) change_8b10b_code1 = "" for i in range(dev_num + 1): change_8b10b_code1 = change_8b10b_code1 + genIFRwDataCode(i, 0x004c, True, 2, [0x0, 0x59])\ +genIFRwDataCode(i, 0x004c, False, 2) change_8b10b_code2 = "" for i in range(dev_num + 1): change_8b10b_code2 = change_8b10b_code2 + genIFRwDataCode(i, 0x004c, True, 2, [0x1, 0x59])\ +genIFRwDataCode(i, 0x004c, False, 2) invalid_change_8b10b_code1 = "" for i in range(dev_num + 1): invalid_change_8b10b_code1 = invalid_change_8b10b_code1 + genIFRwDataCode(i, 0x004c, True, 2, [0x0, 0x32])\ +genIFRwDataCode(i, 0x004c, False, 2) invalid_change_8b10b_code2 = "" for i in range(dev_num + 1): invalid_change_8b10b_code2 = invalid_change_8b10b_code2 + genIFRwDataCode(i, 0x004c, True, 2, [0x1, 0x43])\ +genIFRwDataCode(i, 0x004c, False, 2) invalid_change_8b10b_code3 = "" for i in range(dev_num + 1): invalid_change_8b10b_code3 = invalid_change_8b10b_code3 + genIFRwDataCode(i, 0x004c, True, 1, [0x0, ])\ +genIFRwDataCode(i, 0x004c, False, 2) invalid_change_8b10b_code4 = "" for i in range(dev_num + 1): invalid_change_8b10b_code4 = invalid_change_8b10b_code4 + genIFRwDataCode(i, 0x004c, True, 1, [0x1, ])\ +genIFRwDataCode(i, 0x004c, False, 2) invalid_change_8b10b_code5 = "" for i in range(dev_num + 1): invalid_change_8b10b_code5 = invalid_change_8b10b_code5 + genIFRwDataCode(i, 0x004c, True, 2, [0x30, 0x59])\ +genIFRwDataCode(i, 0x004c, False, 2) invalid_change_8b10b_code6 = "" for i in range(dev_num + 1): invalid_change_8b10b_code6 = invalid_change_8b10b_code6 + genIFRwDataCode(i, 0x004c, True, 2, [0x23, 0x59])\ +genIFRwDataCode(i, 0x004c, False, 2) default_trans_code = "" for i in range(dev_num + 1): default_trans_code = default_trans_code + using_proper_transcode(i) genPkt.addAfterExc(genMessageCode("--正确的key") +change_8b10b_code1 +genMessageCode("--错误的key") +invalid_change_8b10b_code4 +genMessageCode("--错误的key") +invalid_change_8b10b_code1 +genMessageCode("--错误的key") +invalid_change_8b10b_code2 +genMessageCode("--正确的key") +change_8b10b_code2 +genMessageCode("--错误的key") +invalid_change_8b10b_code3 +genMessageCode("--错误的key") +invalid_change_8b10b_code1 +genMessageCode("--错误的key") +invalid_change_8b10b_code2 +genMessageCode("--正确的key_错误的数据") +invalid_change_8b10b_code5 +invalid_change_8b10b_code6 +genMessageCode("--恢复默认的配置") +default_trans_code +genTcEndFrameCode(gen_file_def)) genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) return gen_file_def def tc2(): gen_file_def = "regtest_tc02" sm_idx = 0 tc_des = "测试寄存器的读写状态,将系统改为4B5B进行通信\\n" genPkt = GenPkt() genPkt.clean() dev_num = get_slv_dev_num() genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des) ) change_4b5b_code = "" for i in range(dev_num + 1): change_4b5b_code = change_4b5b_code + genIFRwDataCode(i, 0x004c, True, 2, [0x0, 0x59])\ +genIFRwDataCode(i, 0x004c, False, 2) 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) change_4b5b_code +genTcEndFrameCode(gen_file_def)) genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) return gen_file_def def tc3(): gen_file_def = "regtest_tc03" sm_idx = 0 tc_des = "测试SM0~SM7的的长度寄存器的读写,要求在内部有元素的情况下,不能改写其长度。\\n" genPkt = GenPkt() genPkt.clean() genPkt.setPktType(0) dev_num = get_slv_dev_num() chang_sm_length = "" for i in range(dev_num + 1): chang_sm_length = chang_sm_length + genIFRwDataCode(i, 0x0302, True, 2, [0x20, 0x00]) genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des) +chang_sm_length +genMessageCode("--清除主中断") +genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff]) ) genPkt.addSubPkt(0x0, 0x0, 0x0800, 0xe, 0x20, [0, ] * 0x20) chang_sm_length = "" for i in range(dev_num + 1): chang_sm_length = chang_sm_length + genIFRwDataCode(i, 0x0302, True, 2, [0x40, 0x00]) read_sm_status = "" for i in range(dev_num + 1): read_sm_status = read_sm_status + genIFRwDataCode(i, 0x0300, False, 4) reset_sm = "" for i in range(dev_num + 1): reset_sm = reset_sm + genIFRwDataCode(i, 0x0300, True, 1, [0, ]) 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) +chang_sm_length +read_sm_status +reset_sm +read_sm_status +genTcEndFrameCode(gen_file_def)) genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) return gen_file_def