diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/analysis/depgraph.py | 17 | ||||
| -rw-r--r-- | test/core/sembuilder.py | 8 | ||||
| -rwxr-xr-x | test/ir/analysis.py | 25 |
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 |