diff options
| -rwxr-xr-x | test/ir/analysis.py | 22 | ||||
| -rw-r--r-- | test/test_all.py | 5 |
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 |