about summary refs log tree commit diff stats
path: root/test/core/sembuilder.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/core/sembuilder.py')
-rw-r--r--test/core/sembuilder.py37
1 files changed, 32 insertions, 5 deletions
diff --git a/test/core/sembuilder.py b/test/core/sembuilder.py
index 3c1b7d3f..468e3ef5 100644
--- a/test/core/sembuilder.py
+++ b/test/core/sembuilder.py
@@ -3,7 +3,20 @@ from pdb import pm
 
 from miasm2.core.sembuilder import SemBuilder
 import miasm2.expression.expression as m2_expr
+from miasm2.core.asmbloc import asm_label
 
+# Test classes
+class IR(object):
+
+    IRDst = m2_expr.ExprId("IRDst")
+
+    def get_next_instr(self, _):
+        return asm_label("NEXT")
+
+    def gen_label(self):
+        return asm_label("GEN")
+
+# Test
 sb = SemBuilder(m2_expr.__dict__)
 
 @sb.parse
@@ -13,13 +26,27 @@ def test(Arg1, Arg2, Arg3):
     mem32[Arg1] = Arg2
     mem32[Arg2] = Arg3  + i32(4) - mem32[Arg1]
     Arg3 = Arg3 if Arg2 else i32(0)
-    tmpvar = i32(2)
-    Arg2 = tmpvar
+    tmpvar = 'myop'(i32(2))
+    Arg2 = ('myopsize%d' % Arg1.size)(tmpvar, Arg1)
+
+    if not Arg1:
+        Arg2 = Arg3
 
 a = m2_expr.ExprId('A')
 b = m2_expr.ExprId('B')
 c = m2_expr.ExprId('C')
-ir = None
+ir = IR()
 instr = None
-print test(ir, instr, a, b, c)
-print test.__doc__
+res = test(ir, instr, a, b, c)
+
+print "[+] Returned:"
+print res
+print "[+] DocString:", test.__doc__
+
+print "[+] Cur instr:"
+for statement in res[0]:
+    print statement
+
+print "[+] Blocks:"
+for block in res[1]:
+    print block