""" Test some ARM instruction emulation. """ import os import lldb from lldbsuite.test.decorators import * from lldbsuite.test.lldbtest import * from lldbsuite.test import lldbutil class ARMEmulationTestCase(TestBase): @no_debug_info_test def test_thumb_emulations(self): test_dir = os.path.join(self.getSourceDir(), "new-test-files") files = os.listdir(test_dir) thumb_files = list() for f in files: if f.endswith('-thumb.dat'): thumb_files.append(f) for f in thumb_files: test_file = os.path.join(test_dir, f) self.run_a_single_test(test_file) @no_debug_info_test def test_arm_emulations(self): test_dir = os.path.join(self.getSourceDir(), "new-test-files") files = os.listdir(test_dir) arm_files = list() for f in files: if f.endswith('-arm.dat'): arm_files.append(f) for f in arm_files: test_file = os.path.join(test_dir, f) self.run_a_single_test(test_file) def run_a_single_test(self, filename): insn = lldb.SBInstruction() stream = lldb.SBStream() success = insn.TestEmulation(stream, filename) output = stream.GetData() if self.TraceOn(): print('\nRunning test ' + os.path.basename(filename)) print(output) self.assertTrue(success, 'Emulation test {} failed.'.format( filename))