about summary refs log tree commit diff stats
path: root/test/analysis/mem.py
diff options
context:
space:
mode:
authorFlorent Monjalet <florent.monjalet@gmail.com>2015-11-24 11:14:48 +0100
committerFlorent Monjalet <florent.monjalet@gmail.com>2016-01-18 14:02:31 +0100
commit9f824878c99d9761f25178b00ca009691697bbe9 (patch)
tree28be889b15d9302d159686a52ce0bf867956e4b9 /test/analysis/mem.py
parent3ad5c5b2325253c428be62694e0e256c3cca301e (diff)
downloadmiasm-9f824878c99d9761f25178b00ca009691697bbe9.tar.gz
miasm-9f824878c99d9761f25178b00ca009691697bbe9.zip
MemStruct: MemField equality
Diffstat (limited to '')
-rw-r--r--test/analysis/mem.py38
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'