Example #1
0
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
Example #2
0
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)
Example #3
0
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
Example #4
0
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
Example #5
0
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
Example #6
0
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()
Example #7
0
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
Example #8
0
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
Example #9
0
def test_nop_export_parse():
    cmd = CmdNop()
    data = cmd.export()
    assert len(data) == 4
    assert cmd == CmdNop.parse(data)
Example #10
0
def test_nop_cmd_info():
    cmd = CmdNop()
    assert "Command \"No Operation" in cmd.info()
Example #11
0
def test_nop_cmd_eq():
    cmd = CmdNop()
    cmd_set = CmdSet()
    assert cmd != cmd_set
Example #12
0
def test_nop_cmd():
    cmd = CmdNop(param=0)
    assert "CmdNop" in repr(cmd)
    assert cmd is not None
    assert cmd.size == 4
Example #13
0
def test_nop_cmd_info():
    cmd = CmdNop()
    assert 'Command "No Operation' in cmd.info()