def test_shadowreg_yml_invalid_computed(tmpdir, data_dir): probe = get_probe() config = get_config(os.path.join(data_dir, TEST_DATABASE_BAD_COMPUTED_FUNC)) shadowregs = SR.ShadowRegisters(probe, config, TEST_DEV_NAME) test_val = bytearray(32) for i, val in enumerate(test_val): test_val[i] = i shadowregs.set_register("REG1", 0x12345678) shadowregs.set_register("REG2", 0x4321) shadowregs.set_register("REG_INVERTED_AP", 0xA5A5A5A5) shadowregs.set_register("REG_BIG", test_val) shadowregs.set_register("REG_BIG_REV", test_val) assert shadowregs.get_register("REG1") == 0x12345678.to_bytes(4, 'big') assert shadowregs.get_register("REG2") == 0x00004321.to_bytes(4, 'big') assert shadowregs.get_register("REG_INVERTED_AP") == 0xA5A5A5A5.to_bytes(4, 'big') assert shadowregs.get_register("REG_BIG") == test_val assert shadowregs.get_register("REG_BIG_REV") == test_val shadowregs.create_yml_config(os.path.join(tmpdir, "sh_regs.yml"), raw=False) shadowregs1 = SR.ShadowRegisters(probe, config, TEST_DEV_NAME) with pytest.raises(SPSDKError): shadowregs1.load_yml_config(os.path.join(tmpdir, "sh_regs.yml"))
def test_shadowreg_yml(data_dir, tmpdir): probe = get_probe() config = get_config(os.path.join(data_dir, TEST_DATABASE)) shadowregs = SR.ShadowRegisters(probe, config, TEST_DEV_NAME) test_val = bytearray(32) for i, val in enumerate(test_val): test_val[i] = i shadowregs.set_register("REG1", 0x12345678) shadowregs.set_register("REG2", 0x4321) shadowregs.set_register("REG_INVERTED_AP", 0xA5A5A5A5) shadowregs.set_register("REG_BIG", test_val) shadowregs.set_register("REG_BIG_REV", test_val) assert shadowregs.get_register("REG1") == 0x12345678.to_bytes(4, 'big') assert shadowregs.get_register("REG2") == 0x00004321.to_bytes(4, 'big') assert shadowregs.get_register("REG_INVERTED_AP") == 0xA5A5A5A5.to_bytes(4, 'big') assert shadowregs.get_register("REG_BIG") == test_val assert shadowregs.get_register("REG_BIG_REV") == test_val shadowregs.create_yml_config(os.path.join(tmpdir, "sh_regs.yml"), raw=False) shadowregs.create_yml_config(os.path.join(tmpdir, "sh_regs_raw.yml"), raw=True) probe.clear() shadowregs_load_raw = SR.ShadowRegisters(probe, config, TEST_DEV_NAME) shadowregs_load_raw.load_yml_config(os.path.join(tmpdir, "sh_regs_raw.yml"), raw=True) shadowregs_load_raw.sets_all_registers() assert shadowregs_load_raw.get_register("REG1") == 0x12345678.to_bytes(4, 'big') assert shadowregs_load_raw.get_register("REG2") == 0x00004321.to_bytes(4, 'big') assert shadowregs_load_raw.get_register("REG_INVERTED_AP") == 0xA5A5A5A5.to_bytes(4, 'big') assert shadowregs_load_raw.get_register("REG_BIG") == test_val assert shadowregs_load_raw.get_register("REG_BIG_REV") == test_val probe.clear() shadowregs_load = SR.ShadowRegisters(probe, config, TEST_DEV_NAME) shadowregs_load.load_yml_config(os.path.join(tmpdir, "sh_regs.yml"), raw=False) shadowregs_load.sets_all_registers() assert shadowregs_load.get_register("REG1") == b'\x40\x34\x56\x66' assert shadowregs_load.get_register("REG2") == b'\x00\x00\x03!' assert shadowregs_load.get_register("REG_INVERTED_AP") == b'\xbf\xcb\xa9\x99' assert shadowregs_load.get_register("REG_BIG") == test_val assert shadowregs_load.get_register("REG_BIG_REV") == test_val probe.clear() shadowregs_load2 = SR.ShadowRegisters(probe, config, TEST_DEV_NAME) shadowregs_load2.load_yml_config(os.path.join(tmpdir, "sh_regs_raw.yml"), raw=False) shadowregs_load2.sets_all_registers() assert shadowregs_load2.get_register("REG1") == b'\x40\x34\x56\x66' assert shadowregs_load2.get_register("REG2") == b'\x00\x00\x03!' assert shadowregs_load2.get_register("REG_INVERTED_AP") == b'\xbf\xcb\xa9\x99' assert shadowregs_load2.get_register("REG_BIG") == test_val assert shadowregs_load2.get_register("REG_BIG_REV") == test_val
def test_shadowreg_get_reg_invalid(data_dir): probe = get_probe() config = get_config(os.path.join(data_dir, TEST_DATABASE)) shadowregs = SR.ShadowRegisters(probe, config, TEST_DEV_NAME) with pytest.raises(SPSDKError): shadowregs.get_register("REG1_Invalid")
def test_shadowreg_invalid_probe(data_dir): probe = None config = get_config(os.path.join(data_dir, TEST_DATABASE)) shadowregs = SR.ShadowRegisters(probe, config, TEST_DEV_NAME) with pytest.raises(DP.DebugProbeError): shadowregs.set_register("REG1", 0x12345678) with pytest.raises(DP.DebugProbeError): shadowregs.get_register("REG1")
def test_shadowreg_yml_none_existing(data_dir): probe = get_probe() config = get_config(os.path.join(data_dir, TEST_DATABASE)) test_val = bytearray(32) for i, val in enumerate(test_val): test_val[i] = i shadowregs = SR.ShadowRegisters(probe, config, TEST_DEV_NAME) with pytest.raises(SPSDKError): shadowregs.load_yml_config(os.path.join(data_dir, "sh_regs_none.yml"), raw=True)
def test_shadowreg_yml_corrupted(data_dir): probe = get_probe() config = get_config(os.path.join(data_dir, TEST_DATABASE)) test_val = bytearray(32) for i, val in enumerate(test_val): test_val[i] = i shadowregs = SR.ShadowRegisters(probe, config, TEST_DEV_NAME) shadowregs.load_yml_config(os.path.join(data_dir, "sh_regs_corrupted.yml"), raw=True) shadowregs.sets_all_registers() assert shadowregs.get_register("REG1") == 0x12345678.to_bytes(4, 'big') assert shadowregs.get_register("REG2") == 0x00004321.to_bytes(4, 'big') assert shadowregs.get_register("REG_INVERTED_AP") == 0xA5A5A5A5.to_bytes(4, 'big') assert shadowregs.get_register("REG_BIG_REV") == test_val
def test_shadowreg_verify_write(data_dir): probe = get_probe() config = get_config(os.path.join(data_dir, TEST_DATABASE)) shadowregs = SR.ShadowRegisters(probe, config, TEST_DEV_NAME) shadowregs._write_shadow_reg(1, 0x12345678, verify=True) shadowregs._write_shadow_reg(1, 0x87654321, verify=False) assert probe.mem_reg_read(1) == 0x87654321 probe.set_virtual_memory_substitute_data({1: [0x12345678, 0x5555AAAA]}) with pytest.raises(SR.IoVerificationError): shadowregs._write_shadow_reg(1, 0x87654321, verify=True) assert probe.mem_reg_read(1) == 0x5555AAAA
def test_shadowreg_set_get_reg(data_dir): probe = get_probe() config = get_config(os.path.join(data_dir, TEST_DATABASE)) shadowregs = SR.ShadowRegisters(probe, config, TEST_DEV_NAME) test_val = bytearray(32) for i, val in enumerate(test_val): test_val[i] = i shadowregs.set_register("REG1", 0x12345678) shadowregs.set_register("REG2", 0x4321) shadowregs.set_register("REG_INVERTED_AP", 0xA5A5A5A5) shadowregs.set_register("REG_BIG", test_val) shadowregs.set_register("REG_BIG_REV", test_val) assert shadowregs.get_register("REG1") == 0x12345678.to_bytes(4, 'big') assert shadowregs.get_register("REG2") == 0x00004321.to_bytes(4, 'big') assert shadowregs.get_register("REG_INVERTED_AP") == 0xA5A5A5A5.to_bytes(4, 'big') assert shadowregs.get_register("REG_BIG") == test_val assert shadowregs.get_register("REG_BIG_REV") == test_val
def test_shadowreg_basic(data_dir): probe = get_probe() config = get_config(os.path.join(data_dir, TEST_DATABASE)) shadowregs = SR.ShadowRegisters(probe, config, TEST_DEV_NAME) assert shadowregs.device == TEST_DEV_NAME