diff options
| author | serpilliere <serpilliere@users.noreply.github.com> | 2015-02-10 11:17:41 +0100 |
|---|---|---|
| committer | serpilliere <serpilliere@users.noreply.github.com> | 2015-02-10 11:17:41 +0100 |
| commit | 3884615ff5555f41c45f8811946a13d2eb6911f9 (patch) | |
| tree | 029b04b802c2cfc200216a683879a5afa2f51d54 /test/expression/expression_helper.py | |
| parent | 4070252c4889800dad164d1962edea741e5b3b3b (diff) | |
| parent | 388b74c92f518584e0351af894588d90a48624ce (diff) | |
| download | miasm-3884615ff5555f41c45f8811946a13d2eb6911f9.tar.gz miasm-3884615ff5555f41c45f8811946a13d2eb6911f9.zip | |
Merge pull request #52 from commial/ida-symbol_exec
Ida symbol exec
Diffstat (limited to 'test/expression/expression_helper.py')
| -rw-r--r-- | test/expression/expression_helper.py | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/test/expression/expression_helper.py b/test/expression/expression_helper.py index 3ff6f5da..514a9a51 100644 --- a/test/expression/expression_helper.py +++ b/test/expression/expression_helper.py @@ -30,11 +30,55 @@ class TestExpressionExpressionHelper(unittest.TestCase): # Test the result new_expr = vi.equation + ## Force replace in the variable dependency order for var_id, var_value in reversed(vi.vars.items()): new_expr = new_expr.replace_expr({var_id: var_value}) self.assertEqual(exprf, new_expr) + # Test prefix + vi = Variables_Identifier(exprf, var_prefix="prefix_v") + + ## Use __str__ + print vi + + ## Test the result + new_expr = vi.equation + ### Force replace in the variable dependency order + for var_id, var_value in reversed(vi.vars.items()): + new_expr = new_expr.replace_expr({var_id: var_value}) + self.assertEqual(exprf, new_expr) + + # Test an identify on an expression already containing identifier + vi = Variables_Identifier(exprf) + vi2 = Variables_Identifier(vi.equation) + + ## Test the result + new_expr = vi2.equation + ### Force replace in the variable dependency order + for var_id, var_value in reversed(vi2.vars.items()): + new_expr = new_expr.replace_expr({var_id: var_value}) + self.assertEqual(vi.equation, new_expr) + + ## Corner case: each sub var depends on itself + mem1 = m2_expr.ExprMem(ebx, size=32) + mem2 = m2_expr.ExprMem(mem1, size=32) + cst2 = m2_expr.ExprInt32(-1) + expr_mini = ((eax ^ mem2 ^ cst2) & (mem2 ^ (eax + mem2)))[31:32] + + ## Build + vi = Variables_Identifier(expr_mini) + vi2 = Variables_Identifier(vi.equation) + + ## Test the result + new_expr = vi2.equation + ### Force replace in the variable dependency order + for var_id, var_value in reversed(vi2.vars.items()): + new_expr = new_expr.replace_expr({var_id: var_value}) + self.assertEqual(vi.equation, new_expr) + + + if __name__ == '__main__': testcase = TestExpressionExpressionHelper testsuite = unittest.TestLoader().loadTestsFromTestCase(testcase) |