diff options
| author | Camille Mougey <commial@gmail.com> | 2017-09-05 10:34:49 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-09-05 10:34:49 +0200 |
| commit | 93a6b40af9fc16c662798f051187f4b0ddaff176 (patch) | |
| tree | 52e78215786ac30af74ee3eb1a6ed0bb68a7444d /test/expression/expr_cmp.py | |
| parent | d806661d8407f580578e51194dbf3c3520b399b2 (diff) | |
| parent | a443268da284479438bfb82f59118d0634f074ed (diff) | |
| download | miasm-93a6b40af9fc16c662798f051187f4b0ddaff176.tar.gz miasm-93a6b40af9fc16c662798f051187f4b0ddaff176.zip | |
Merge pull request #610 from serpilliere/x86_add_instr
X86 add instr
Diffstat (limited to 'test/expression/expr_cmp.py')
| -rw-r--r-- | test/expression/expr_cmp.py | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/test/expression/expr_cmp.py b/test/expression/expr_cmp.py new file mode 100644 index 00000000..b238151d --- /dev/null +++ b/test/expression/expr_cmp.py @@ -0,0 +1,107 @@ +# +# Expression comparison regression tests # +# +from pdb import pm +from miasm2.expression.expression import ExprInt, expr_is_unsigned_greater,\ + expr_is_unsigned_greater_or_equal, expr_is_unsigned_lower,\ + expr_is_unsigned_lower_or_equal, expr_is_signed_greater,\ + expr_is_signed_greater_or_equal, expr_is_signed_lower, \ + expr_is_signed_lower_or_equal, expr_is_equal, expr_is_not_equal +from miasm2.expression.simplifications import expr_simp + +int_0 = ExprInt(0, 32) +int_1 = ExprInt(1, 32) +int_m1 = ExprInt(-1, 32) +int_m2 = ExprInt(-2, 32) + +b0 = ExprInt(0, 1) +b1 = ExprInt(1, 1) + +tests = [ + # unsigned + (b1, expr_is_unsigned_greater, int_1, int_0), + (b1, expr_is_unsigned_lower, int_0, int_1), + + (b0, expr_is_unsigned_greater, int_0, int_1), + (b0, expr_is_unsigned_lower, int_1, int_0), + + (b1, expr_is_unsigned_greater_or_equal, int_1, int_0), + (b1, expr_is_unsigned_lower_or_equal, int_0, int_1), + + (b0, expr_is_unsigned_greater_or_equal, int_0, int_1), + (b0, expr_is_unsigned_lower_or_equal, int_1, int_0), + + (b1, expr_is_unsigned_greater_or_equal, int_1, int_1), + (b1, expr_is_unsigned_lower_or_equal, int_1, int_1), + + (b1, expr_is_unsigned_greater, int_m1, int_0), + (b1, expr_is_unsigned_lower, int_0, int_m1), + + (b0, expr_is_unsigned_greater, int_0, int_m1), + (b0, expr_is_unsigned_lower, int_m1, int_0), + + + # signed + (b1, expr_is_signed_greater, int_1, int_0), + (b1, expr_is_signed_lower, int_0, int_1), + + (b0, expr_is_signed_greater, int_0, int_1), + (b0, expr_is_signed_lower, int_1, int_0), + + (b1, expr_is_signed_greater_or_equal, int_1, int_0), + (b1, expr_is_signed_lower_or_equal, int_0, int_1), + + (b0, expr_is_signed_greater_or_equal, int_0, int_1), + (b0, expr_is_signed_lower_or_equal, int_1, int_0), + + (b1, expr_is_signed_greater_or_equal, int_1, int_1), + (b1, expr_is_signed_lower_or_equal, int_1, int_1), + + (b0, expr_is_signed_greater, int_m1, int_0), + (b0, expr_is_signed_lower, int_0, int_m1), + + (b1, expr_is_signed_greater, int_0, int_m1), + (b1, expr_is_signed_lower, int_m1, int_0), + + + # greater lesser, neg + (b1, expr_is_signed_greater, int_1, int_m1), + (b1, expr_is_signed_lower, int_m1, int_1), + + (b0, expr_is_signed_greater, int_m1, int_1), + (b0, expr_is_signed_lower, int_1, int_m1), + + (b1, expr_is_signed_greater_or_equal, int_1, int_m1), + (b1, expr_is_signed_lower_or_equal, int_m1, int_1), + + (b0, expr_is_signed_greater_or_equal, int_m1, int_1), + (b0, expr_is_signed_lower_or_equal, int_1, int_m1), + + (b1, expr_is_signed_greater_or_equal, int_m1, int_m1), + (b1, expr_is_signed_lower_or_equal, int_m1, int_m1), + + + (b1, expr_is_signed_greater, int_m1, int_m2), + (b1, expr_is_signed_lower, int_m2, int_m1), + + (b0, expr_is_signed_greater, int_m2, int_m1), + (b0, expr_is_signed_lower, int_m1, int_m2), + + (b1, expr_is_signed_greater_or_equal, int_m1, int_m2), + (b1, expr_is_signed_lower_or_equal, int_m2, int_m1), + + (b0, expr_is_signed_greater_or_equal, int_m2, int_m1), + (b0, expr_is_signed_lower_or_equal, int_m1, int_m2), + + # eq/neq + (b1, expr_is_equal, int_1, int_1), + (b1, expr_is_not_equal, int_0, int_1), + + (b0, expr_is_equal, int_1, int_0), + (b0, expr_is_not_equal, int_0, int_0), + + +] + +for result, func, arg1, arg2 in tests: + assert result == expr_simp(func(arg1, arg2)) |