diff options
| author | Florent Monjalet <florent.monjalet@gmail.com> | 2015-11-24 11:14:48 +0100 |
|---|---|---|
| committer | Florent Monjalet <florent.monjalet@gmail.com> | 2016-01-18 14:02:31 +0100 |
| commit | 9f824878c99d9761f25178b00ca009691697bbe9 (patch) | |
| tree | 28be889b15d9302d159686a52ce0bf867956e4b9 /test/analysis/mem.py | |
| parent | 3ad5c5b2325253c428be62694e0e256c3cca301e (diff) | |
| download | miasm-9f824878c99d9761f25178b00ca009691697bbe9.tar.gz miasm-9f824878c99d9761f25178b00ca009691697bbe9.zip | |
MemStruct: MemField equality
Diffstat (limited to '')
| -rw-r--r-- | test/analysis/mem.py | 38 |
1 files changed, 37 insertions, 1 deletions
diff --git a/test/analysis/mem.py b/test/analysis/mem.py index df1df9bc..a3642a4f 100644 --- a/test/analysis/mem.py +++ b/test/analysis/mem.py @@ -8,7 +8,8 @@ from miasm2.analysis.machine import Machine from miasm2.analysis.mem import MemStruct, Num, Ptr, MemStr, MemArray,\ MemSizedArray, Array, mem_array_type,\ mem_sized_array_type, Struct, Inline, mem,\ - Union, BitField, MemSelf, MemVoid, set_allocator + Union, BitField, MemSelf, MemVoid, Bits, \ + set_allocator from miasm2.jitter.csts import PAGE_READ, PAGE_WRITE from miasm2.os_dep.common import heap @@ -430,6 +431,41 @@ p.value = mstruct.get_addr() assert p.deref_value.cast(MyStruct) == mstruct assert p.cast(MemPtrMyStruct).deref_value == mstruct +# Field equality tests +assert Struct("IH") == Struct("IH") +assert Struct("I") != Struct("IH") +assert Num("I") == Num("I") +assert Num(">I") != Num("<I") +assert Ptr("I", MyStruct) == Ptr("I", MyStruct) +assert Ptr(">I", MyStruct) != Ptr("<I", MyStruct) +assert Ptr("I", MyStruct) != Ptr("I", MyStruct2) +assert Inline(MyStruct) == Inline(MyStruct) +assert Inline(MyStruct) != Inline(MyStruct2) +assert Array(Num("H"), 12) == Array(Num("H"), 12) +assert Array(Num("H"), 11) != Array(Num("H"), 12) +assert Array(Num("I"), 12) != Array(Num("H"), 12) +assert Union([("f1", Num("B")), ("f2", Num("H"))]) == \ + Union([("f1", Num("B")), ("f2", Num("H"))]) +assert Union([("f2", Num("B")), ("f2", Num("H"))]) != \ + Union([("f1", Num("B")), ("f2", Num("H"))]) +assert Union([("f1", Num("B")), ("f2", Num("H"))]) != \ + Union([("f1", Num("I")), ("f2", Num("H"))]) +assert Bits(Num("I"), 3, 8) == Bits(Num("I"), 3, 8) +assert Bits(Num("I"), 3, 8) != Bits(Num("I"), 3, 8) +assert Bits(Num("H"), 2, 8) != Bits(Num("I"), 3, 8) +assert Bits(Num("I"), 3, 7) != Bits(Num("I"), 3, 8) +assert BitField(Num("B"), [("f1", 2), ("f2", 4), ("f3", 1)]) == \ + BitField(Num("B"), [("f1", 2), ("f2", 4), ("f3", 1)]) +assert BitField(Num("H"), [("f1", 2), ("f2", 4), ("f3", 1)]) != \ + BitField(Num("B"), [("f1", 2), ("f2", 4), ("f3", 1)]) +assert BitField(Num("B"), [("f2", 2), ("f2", 4), ("f3", 1)]) != \ + BitField(Num("B"), [("f1", 2), ("f2", 4), ("f3", 1)]) +assert BitField(Num("B"), [("f1", 1), ("f2", 4), ("f3", 1)]) != \ + BitField(Num("B"), [("f1", 2), ("f2", 4), ("f3", 1)]) + + +# Repr tests + print "Some struct reprs:\n" print repr(mstruct), '\n' print repr(ms2), '\n' |