about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rwxr-xr-xtest/ir/analysis.py22
-rw-r--r--test/test_all.py5
2 files changed, 15 insertions, 12 deletions
diff --git a/test/ir/analysis.py b/test/ir/analysis.py
index b70a09fc..2c0b7b29 100755
--- a/test/ir/analysis.py
+++ b/test/ir/analysis.py
@@ -1,9 +1,7 @@
-from miasm2.expression.expression import ExprId, ExprInt32, ExprAff, ExprMem, ExprOp
+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 ir, irbloc
-from miasm2.core.graph import DiGraph
-from pdb import pm
 
 a = ExprId("a")
 b = ExprId("b")
@@ -624,15 +622,15 @@ g17_exp_irb0 = gen_irbloc(lbl0, [[],
                                ExprAff(b, a),
                                ExprAff(c, b)],
 
-                              g17_irb0.irs[14] # Trick because a+b+c != ((a+b)+c)
-                                 #[ExprAff(ExprMem(ExprId('d', 32), 32), ExprOp('+', ExprOp('+', ExprId('a', 32), ExprId('b', 32)), ExprId('c', 32)))]
+                              g17_irb0.irs[14] 
+                             # Trick because a+b+c != ((a+b)+c)  
                           ])
 
 g17_exp_ira.blocs = {irb.label : irb for irb in [g17_exp_irb0]}
 
 # Begining  of tests
 
-for i, test in enumerate([(g1_ira, g1_exp_ira),
+for test_nb, test in enumerate([(g1_ira, g1_exp_ira),
                           (g2_ira, g2_exp_ira),
                           (g3_ira, g3_exp_ira),
                           (g4_ira, g4_exp_ira),
@@ -653,26 +651,26 @@ for i, test in enumerate([(g1_ira, g1_exp_ira),
     # Extract test elements
     g_ira, g_exp_ira = test
 
-    print "[+] Test", i+1
+    print "[+] Test", test_nb+1
 
     # Print initial graph, for debug
-    open("graph_%02d.dot" % (i+1), "w").write(g_ira.graph())
+    open("graph_%02d.dot" % (test_nb+1), "w").write(g_ira.graph())
 
     # Simplify graph
     g_ira.dead_simp()
 
     # Print simplified graph, for debug
-    open("simp_graph_%02d.dot" % (i+1), "w").write(g_ira.graph())
+    open("simp_graph_%02d.dot" % (test_nb+1), "w").write(g_ira.graph())
 
     # Same number of blocks
     assert len(g_ira.blocs) == len(g_exp_ira.blocs)
     # Check that each expr in the blocs are the same
-    for lbl , irb in g_ira.blocs.iteritems():
+    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" %(
+        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],\
diff --git a/test/test_all.py b/test/test_all.py
index df07aac5..f52856a3 100644
--- a/test/test_all.py
+++ b/test/test_all.py
@@ -117,6 +117,11 @@ for script in ["ir2C.py",
                "symbexec.py",
                ]:
     testset += RegressionTest([script], base_dir="ir")
+testset += RegressionTest(["analysis.py"], base_dir="ir",
+                          products=[fname for fnames in (
+            ["simp_graph_%02d.dot" % test_nb, "graph_%02d.dot" % test_nb]
+            for test_nb in xrange(1, 18))
+                                    for fname in fnames])
 testset += RegressionTest(["z3_ir.py"], base_dir="ir/translators",
                           tags=[TAGS["z3"]])
 ## OS_DEP