about summary refs log tree commit diff stats
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/analysis/depgraph.py17
-rw-r--r--test/core/sembuilder.py8
-rwxr-xr-xtest/ir/analysis.py25
3 files changed, 30 insertions, 20 deletions
diff --git a/test/analysis/depgraph.py b/test/analysis/depgraph.py
index 211671a4..fafae1fb 100644
--- a/test/analysis/depgraph.py
+++ b/test/analysis/depgraph.py
@@ -2,7 +2,7 @@
 from miasm2.expression.expression import ExprId, ExprInt32, ExprAff, ExprCond
 from miasm2.core.asmbloc import asm_label
 from miasm2.ir.analysis import ira
-from miasm2.ir.ir import ir, irbloc
+from miasm2.ir.ir import ir, irbloc, AssignBlock
 from miasm2.core.graph import DiGraph
 from miasm2.analysis.depgraph import DependencyNode, DependencyGraph,\
     DependencyDict
@@ -48,13 +48,20 @@ LBL4 = asm_label("lbl4")
 LBL5 = asm_label("lbl5")
 LBL6 = asm_label("lbl6")
 
-
-def gen_irbloc(lbl, exprs):
+def gen_irbloc(label, exprs_list):
     """ Returns an IRBlock with empty lines.
     Used only for tests purpose
     """
-    lines = [None for _ in xrange(len(exprs))]
-    return irbloc(lbl, exprs, lines)
+    lines = [None for _ in xrange(len(exprs_list))]
+    irs = []
+    for exprs in exprs_list:
+        if isinstance(exprs, AssignBlock):
+            irs.append(exprs)
+        else:
+            irs.append(AssignBlock(exprs))
+
+    irbl = irbloc(label, irs, lines)
+    return irbl
 
 
 class Regs(object):
diff --git a/test/core/sembuilder.py b/test/core/sembuilder.py
index 15fa67a4..3a575727 100644
--- a/test/core/sembuilder.py
+++ b/test/core/sembuilder.py
@@ -57,5 +57,9 @@ for statement in res[0]:
     print statement
 
 print "[+] Blocks:"
-for block in res[1]:
-    print block
+for irb in res[1]:
+    print irb.label
+    for exprs in irb.irs:
+        for expr in exprs:
+            print expr
+        print
diff --git a/test/ir/analysis.py b/test/ir/analysis.py
index 49daa70e..913d9c56 100755
--- a/test/ir/analysis.py
+++ b/test/ir/analysis.py
@@ -2,7 +2,7 @@
 from miasm2.expression.expression import ExprId, ExprInt32, ExprAff, ExprMem
 from miasm2.core.asmbloc import asm_label
 from miasm2.ir.analysis import ira
-from miasm2.ir.ir import irbloc
+from miasm2.ir.ir import irbloc, AssignBlock
 
 a = ExprId("a")
 b = ExprId("b")
@@ -33,9 +33,16 @@ LBL6 = asm_label("lbl6")
 
 
 
-def gen_irbloc(label, exprs):
-    lines = [None for _ in xrange(len(exprs))]
-    irbl = irbloc(label, exprs, lines)
+def gen_irbloc(label, exprs_list):
+    lines = [None for _ in xrange(len(exprs_list))]
+    irs = []
+    for exprs in exprs_list:
+        if isinstance(exprs, AssignBlock):
+            irs.append(exprs)
+        else:
+            irs.append(AssignBlock(exprs))
+
+    irbl = irbloc(label, irs, lines)
     return irbl
 
 
@@ -671,12 +678,4 @@ for test_nb, test in enumerate([(G1_IRA, G1_EXP_IRA),
     # Check that each expr in the blocs are the same
     for lbl, irb in g_ira.blocs.iteritems():
         exp_irb = g_exp_ira.blocs[lbl]
-        assert len(irb.irs) == len(exp_irb.irs), "(%s)  %d / %d" %(
-            lbl, len(irb.irs), len(exp_irb.irs))
-        for i in xrange(0, len(exp_irb.irs)):
-            assert len(irb.irs[i]) == len(exp_irb.irs[i]), "(%s:%d) %d / %d" %(
-                lbl, i, len(irb.irs[i]), len(exp_irb.irs[i]))
-            for s_instr in xrange(len(irb.irs[i])):
-                assert irb.irs[i][s_instr] == exp_irb.irs[i][s_instr],\
-                    "(%s:%d)  %s / %s" %(
-                        lbl, i, irb.irs[i][s_instr], exp_irb.irs[i][s_instr])
+        assert exp_irb.irs == irb.irs