diff options
| author | Ajax <commial@gmail.com> | 2017-06-27 12:28:01 +0200 |
|---|---|---|
| committer | Ajax <commial@gmail.com> | 2017-06-27 12:42:57 +0200 |
| commit | 04fc16be01be380b4b25d795f271c38e8dabc79f (patch) | |
| tree | 17d4f1e9112257ca1a3ee38e9471bf100f8061fc | |
| parent | 5520569d1c6d969fecd968557fd2251e9d1399ee (diff) | |
| download | miasm-04fc16be01be380b4b25d795f271c38e8dabc79f.tar.gz miasm-04fc16be01be380b4b25d795f271c38e8dabc79f.zip | |
Add a regression test for DIV 128bits
| -rw-r--r-- | test/arch/x86/unit/asm_test.py | 10 | ||||
| -rw-r--r-- | test/arch/x86/unit/mn_div.py | 17 | ||||
| -rwxr-xr-x | test/test_all.py | 2 |
3 files changed, 29 insertions, 0 deletions
diff --git a/test/arch/x86/unit/asm_test.py b/test/arch/x86/unit/asm_test.py index aba47df1..8a6b215c 100644 --- a/test/arch/x86/unit/asm_test.py +++ b/test/arch/x86/unit/asm_test.py @@ -90,3 +90,13 @@ class Asm_Test_16(Asm_Test): self.myjit.vm.add_memory_page(self.run_addr, PAGE_READ | PAGE_WRITE, self.assembly) self.myjit.push_uint16_t(self.ret_addr) self.myjit.add_breakpoint(self.ret_addr, lambda x:False) + +class Asm_Test_64(Asm_Test): + arch_name = "x86_64" + arch_attrib = 64 + ret_addr = 0x1337beef + + def init_machine(self): + self.myjit.vm.add_memory_page(self.run_addr, PAGE_READ | PAGE_WRITE, self.assembly) + self.myjit.push_uint64_t(self.ret_addr) + self.myjit.add_breakpoint(self.ret_addr, lambda x:False) diff --git a/test/arch/x86/unit/mn_div.py b/test/arch/x86/unit/mn_div.py new file mode 100644 index 00000000..84569607 --- /dev/null +++ b/test/arch/x86/unit/mn_div.py @@ -0,0 +1,17 @@ +import sys +from asm_test import Asm_Test_64 + +class Test_DIV(Asm_Test_64): + TXT = ''' +main: + MOV RAX, 0x8877665544332211 + MOV RBX, 0x11223344556677 + DIV RBX + RET + ''' + def check(self): + assert self.myjit.cpu.RAX == 0x7F7 + assert self.myjit.cpu.RDX == 0x440 + +if __name__ == "__main__": + [test(*sys.argv[1:])() for test in [Test_DIV]] diff --git a/test/test_all.py b/test/test_all.py index b70afa9a..3da2dbb5 100755 --- a/test/test_all.py +++ b/test/test_all.py @@ -60,6 +60,7 @@ class ArchUnitTest(RegressionTest): # script -> blacklisted jitter blacklist = { "x86/unit/mn_float.py": ["python", "llvm"], + "x86/unit/mn_div.py": ["tcc", "gcc"], } for script in ["x86/sem.py", "x86/unit/mn_strings.py", @@ -80,6 +81,7 @@ for script in ["x86/sem.py", "x86/unit/mn_pushpop.py", "x86/unit/mn_seh.py", "x86/unit/mn_cpuid.py", + "x86/unit/mn_div.py", "arm/arch.py", "arm/sem.py", "aarch64/unit/mn_ubfm.py", |