199451b44SJordan Rupprecht""" 299451b44SJordan RupprechtTest some ARM instruction emulation. 399451b44SJordan Rupprecht""" 499451b44SJordan Rupprecht 599451b44SJordan Rupprechtimport os 699451b44SJordan Rupprechtimport lldb 799451b44SJordan Rupprechtfrom lldbsuite.test.decorators import * 899451b44SJordan Rupprechtfrom lldbsuite.test.lldbtest import * 999451b44SJordan Rupprechtfrom lldbsuite.test import lldbutil 1099451b44SJordan Rupprecht 1199451b44SJordan Rupprecht 1299451b44SJordan Rupprechtclass ARMEmulationTestCase(TestBase): 1399451b44SJordan Rupprecht @no_debug_info_test 1499451b44SJordan Rupprecht def test_thumb_emulations(self): 1599451b44SJordan Rupprecht test_dir = os.path.join(self.getSourceDir(), "new-test-files") 1699451b44SJordan Rupprecht files = os.listdir(test_dir) 1799451b44SJordan Rupprecht thumb_files = list() 1899451b44SJordan Rupprecht for f in files: 19*2238dcc3SJonas Devlieghere if f.endswith("-thumb.dat"): 2099451b44SJordan Rupprecht thumb_files.append(f) 2199451b44SJordan Rupprecht 2299451b44SJordan Rupprecht for f in thumb_files: 2399451b44SJordan Rupprecht test_file = os.path.join(test_dir, f) 2499451b44SJordan Rupprecht self.run_a_single_test(test_file) 2599451b44SJordan Rupprecht 2699451b44SJordan Rupprecht @no_debug_info_test 2799451b44SJordan Rupprecht def test_arm_emulations(self): 2899451b44SJordan Rupprecht test_dir = os.path.join(self.getSourceDir(), "new-test-files") 2999451b44SJordan Rupprecht files = os.listdir(test_dir) 3099451b44SJordan Rupprecht arm_files = list() 3199451b44SJordan Rupprecht for f in files: 32*2238dcc3SJonas Devlieghere if f.endswith("-arm.dat"): 3399451b44SJordan Rupprecht arm_files.append(f) 3499451b44SJordan Rupprecht 3599451b44SJordan Rupprecht for f in arm_files: 3699451b44SJordan Rupprecht test_file = os.path.join(test_dir, f) 3799451b44SJordan Rupprecht self.run_a_single_test(test_file) 3899451b44SJordan Rupprecht 3999451b44SJordan Rupprecht def run_a_single_test(self, filename): 4099451b44SJordan Rupprecht insn = lldb.SBInstruction() 4199451b44SJordan Rupprecht stream = lldb.SBStream() 4299451b44SJordan Rupprecht success = insn.TestEmulation(stream, filename) 4399451b44SJordan Rupprecht output = stream.GetData() 4499451b44SJordan Rupprecht if self.TraceOn(): 45*2238dcc3SJonas Devlieghere print("\nRunning test " + os.path.basename(filename)) 4699451b44SJordan Rupprecht print(output) 4799451b44SJordan Rupprecht 48*2238dcc3SJonas Devlieghere self.assertTrue(success, "Emulation test {} failed.".format(filename)) 49