def test_set_cmd_eq(): cmd = CmdSet() nop = CmdNop() cmd_other = CmdSet(itm=EnumItm.MID) assert cmd != nop assert cmd == cmd assert cmd != cmd_other
def test_segDCD_set_get_iter(): dcd_seg = SegDCD(0x40) dcd_seg.append( CmdCheckData(ops=EnumCheckOps.ALL_CLEAR, address=0x307900C4, mask=0x00000001)) dcd_seg.append(CmdNop()) dcd_seg[1] = CmdCheckData(ops=EnumCheckOps.ALL_CLEAR, address=0x307900C4, mask=0x00000001) assert dcd_seg[1] == CmdCheckData(ops=EnumCheckOps.ALL_CLEAR, address=0x307900C4, mask=0x00000001) dcd_seg.append( CmdCheckData(ops=EnumCheckOps.ALL_CLEAR, address=0x307900C4, mask=0x00000001)) my_iter = iter(dcd_seg) assert next(my_iter) == CmdCheckData(ops=EnumCheckOps.ALL_CLEAR, address=0x307900C4, mask=0x00000001) assert next(my_iter) == CmdCheckData(ops=EnumCheckOps.ALL_CLEAR, address=0x307900C4, mask=0x00000001) assert next(my_iter) == CmdCheckData(ops=EnumCheckOps.ALL_CLEAR, address=0x307900C4, mask=0x00000001) with pytest.raises(StopIteration): next(my_iter)
def test_unlock_cmd_equality(): cmd = CmdUnlock() nop = CmdNop() cmd_other = CmdUnlock(engine=EnumEngine.DCP) assert cmd != nop assert cmd == cmd assert cmd != cmd_other
def test_install_key_cmd_equality(): cmd = CmdInstallKey() nop = CmdNop() cmd_other = CmdInstallKey(flags=EnumInsKey.CID) assert cmd != nop assert cmd == cmd assert cmd != cmd_other
def dcd_in_python() -> SegDCD: """Create DCD in python code.""" dcd = SegDCD(enabled=True) dcd.append( CmdWriteData( ops=EnumWriteOps.WRITE_VALUE, data=( (0x30340004, 0x4F400005), (0x30340004, 0x4F400005), (0x30340004, 0x4F400005), (0x30340004, 0x4F400005), ), )) dcd.append( CmdWriteData(ops=EnumWriteOps.CLEAR_BITMASK, data=((0x307900C4, 0x00000001), ))) dcd.append( CmdWriteData(ops=EnumWriteOps.SET_BITMASK, data=((0x307900C4, 0x00000001), ))) dcd.append( CmdCheckData(ops=EnumCheckOps.ALL_CLEAR, address=0x307900C4, mask=0x00000001)) dcd.append( CmdCheckData(ops=EnumCheckOps.ALL_CLEAR, address=0x307900C4, mask=0x00000001, count=5)) dcd.append( CmdCheckData(ops=EnumCheckOps.ANY_CLEAR, address=0x307900C4, mask=0x00000001)) dcd.append( CmdCheckData(ops=EnumCheckOps.ANY_CLEAR, address=0x307900C4, mask=0x00000001, count=5)) dcd.append( CmdCheckData(ops=EnumCheckOps.ALL_SET, address=0x307900C4, mask=0x00000001)) dcd.append( CmdCheckData(ops=EnumCheckOps.ALL_SET, address=0x307900C4, mask=0x00000001, count=5)) dcd.append( CmdCheckData(ops=EnumCheckOps.ANY_SET, address=0x307900C4, mask=0x00000001)) dcd.append( CmdCheckData(ops=EnumCheckOps.ANY_SET, address=0x307900C4, mask=0x00000001, count=5)) dcd.append(CmdNop()) return dcd
def test_segDCD_pop_append(): dcd_seg = SegDCD(0x40) dcd_seg.append( CmdCheckData(ops=EnumCheckOps.ALL_CLEAR, address=0x307900C4, mask=0x00000001)) dcd_seg.append(CmdNop()) output = dcd_seg.pop(1) assert "Command \"No Operation" in output.info() output = dcd_seg.pop(0) assert "Command \"Check Data" in output.info()
def test_auth_data_cmd_equality(): cmd = CmdAuthData() nop = CmdNop() cmd_other = CmdAuthData(flags=EnumAuthDat.ABS, key_index=2, engine=EnumEngine.DCP, engine_cfg=1, location=1) assert cmd != nop assert cmd == cmd assert cmd != cmd_other
def ref_dcd_obj(): # Prepare reference DCD object obj = SegDCD(enabled=True) obj.append( CmdWriteData( ops=EnumWriteOps.WRITE_VALUE, data=[(0x400FC010, 0x4F400005), (0x400FC010, 0x4F463645), (0x400FC010, 0xA54EF14A)], ) ) obj.append( CmdWriteData( ops=EnumWriteOps.WRITE_CLEAR_BITS, data=[(0x402F0008, 0x00000001), (0x402F0008, 0x00000002), (0x402F0008, 0x00000003)], ) ) obj.append( CmdWriteData( ops=EnumWriteOps.SET_BITMASK, data=[(0x400D8158, 0x00000009), (0x400D8158, 0x0000000A), (0x400D8158, 0x000000B4)], ) ) obj.append( CmdCheckData(ops=EnumCheckOps.ALL_CLEAR, address=0x401F83F4, mask=0x000000AF, count=5) ) obj.append(CmdCheckData(ops=EnumCheckOps.ALL_CLEAR, address=0x401F83F4, mask=0x000000A1)) obj.append( CmdCheckData(ops=EnumCheckOps.ANY_CLEAR, address=0x400D8150, mask=0x000000FF, count=3) ) obj.append(CmdCheckData(ops=EnumCheckOps.ANY_CLEAR, address=0x400D8150, mask=0x00000004)) obj.append(CmdCheckData(ops=EnumCheckOps.ALL_SET, address=0x402F0008, mask=0x00000006)) obj.append(CmdCheckData(ops=EnumCheckOps.ALL_SET, address=0x402F0008, mask=0x00000AF3, count=2)) obj.append(CmdCheckData(ops=EnumCheckOps.ANY_SET, address=0x400D8158, mask=0x00000009)) obj.append(CmdCheckData(ops=EnumCheckOps.ANY_SET, address=0x400D8158, mask=0xB00E60E1)) obj.append(CmdCheckData(ops=EnumCheckOps.ANY_CLEAR, address=0x400D8158, mask=0x000F00A2)) obj.append(CmdCheckData(ops=EnumCheckOps.ANY_CLEAR, address=0x400D8158, mask=0xA00F60C1)) obj.append(CmdWriteData(ops=EnumWriteOps.WRITE_CLEAR_BITS, data=[(0x401F8400, 0x00000001)])) obj.append(CmdWriteData(ops=EnumWriteOps.SET_BITMASK, data=[(0x401F8400, 0x00000000)])) obj.append(CmdWriteData(ops=EnumWriteOps.WRITE_CLEAR_BITS, data=[(0x401F8400, 0x00000000)])) obj.append(CmdWriteData(ops=EnumWriteOps.SET_BITMASK, data=[(0x401F8400, 0x00000001)])) obj.append(CmdNop()) return obj
def test_nop_export_parse(): cmd = CmdNop() data = cmd.export() assert len(data) == 4 assert cmd == CmdNop.parse(data)
def test_nop_cmd_info(): cmd = CmdNop() assert "Command \"No Operation" in cmd.info()
def test_nop_cmd_eq(): cmd = CmdNop() cmd_set = CmdSet() assert cmd != cmd_set
def test_nop_cmd(): cmd = CmdNop(param=0) assert "CmdNop" in repr(cmd) assert cmd is not None assert cmd.size == 4
def test_nop_cmd_info(): cmd = CmdNop() assert 'Command "No Operation' in cmd.info()