From 521d43f1cbfc0a4b7ee543e97cdad0da3f0d2051 Mon Sep 17 00:00:00 2001 From: dmxcsnsbh <l.dmxcsnsbh@gmail.com> Date: Sat, 15 Oct 2016 13:41:21 +0800 Subject: [PATCH] add arm_blx_label(_thumb) testcase --- suite/regress/arm_blx_label.py | 28 ++++++++++++++++++++++++++++ suite/regress/arm_blx_label_thumb.py | 28 ++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100755 suite/regress/arm_blx_label.py create mode 100755 suite/regress/arm_blx_label_thumb.py diff --git a/suite/regress/arm_blx_label.py b/suite/regress/arm_blx_label.py new file mode 100755 index 0000000..79b804d --- /dev/null +++ b/suite/regress/arm_blx_label.py @@ -0,0 +1,28 @@ +#!/usr/bin/python + +# Test BL <label> instruction for ARM32 + +# Github issue: #248 +# Author: dmxcsnsbh + +from keystone import * + +import regress + +class TestARM(regress.RegressTest): + def runTest(self): + # Initialize Keystone engine + ks = Ks(KS_ARCH_ARM, KS_MODE_ARM) + # Assemble to get back insn encoding & statement count + encoding, count = ks.asm(b""" + blx func + sub r0, r0, r0 + sub r1, r1, r1 + func: + """) + # Assert the result + # self.assertEqual(encoding, [ 0x01, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x40, 0xe0, 0x01, 0x10, 0x41, 0xe0 ]) + self.assertEqual(encoding[:4], [ 0x01, 0x00, 0x00, 0xfa ]) + +if __name__ == '__main__': + regress.main() diff --git a/suite/regress/arm_blx_label_thumb.py b/suite/regress/arm_blx_label_thumb.py new file mode 100755 index 0000000..9456c6e --- /dev/null +++ b/suite/regress/arm_blx_label_thumb.py @@ -0,0 +1,28 @@ +#!/usr/bin/python + +# Test BL <label> instruction for ARM32 + +# Github issue: #248 +# Author: dmxcsnsbh + +from keystone import * + +import regress + +class TestARM(regress.RegressTest): + def runTest(self): + # Initialize Keystone engine + ks = Ks(KS_ARCH_ARM, KS_MODE_THUMB) + # Assemble to get back insn encoding & statement count + encoding, count = ks.asm(b""" + blx func + movs r0, #0 + movs r1, #1 + func: + """) + # Assert the result + # self.assertEqual(encoding, [ 0x00, 0xf0, 0x02, 0xe8, 0x00, 0x20, 0x01, 0x21 ]) + self.assertEqual(encoding[:4], [ 0x00, 0xf0, 0x02, 0xe8 ]) + +if __name__ == '__main__': + regress.main() -- GitLab