diff options
| author | serpilliere <serpilliere@users.noreply.github.com> | 2015-04-24 18:58:36 +0200 |
|---|---|---|
| committer | serpilliere <serpilliere@users.noreply.github.com> | 2015-04-24 18:58:36 +0200 |
| commit | c8a315866df6188fb65b55b4735bfefc2afe915c (patch) | |
| tree | 49c3b0b69f8720690a6399155ae5811cc0656191 /test/core/sembuilder.py | |
| parent | 4869a8b9d53aac5a448000a2616d427a2e338a9f (diff) | |
| parent | 98345d511b8e5a237fdec9b9caa619fbb3ae85e9 (diff) | |
| download | miasm-c8a315866df6188fb65b55b4735bfefc2afe915c.tar.gz miasm-c8a315866df6188fb65b55b4735bfefc2afe915c.zip | |
Merge pull request #149 from commial/sembuilder
Sembuilder
Diffstat (limited to 'test/core/sembuilder.py')
| -rw-r--r-- | test/core/sembuilder.py | 37 |
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 |