brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.4 KiB · 02d6691 Raw
49 lines · python
1"""2Test some ARM instruction emulation.3"""4 5import os6import lldb7from lldbsuite.test.decorators import *8from lldbsuite.test.lldbtest import *9from lldbsuite.test import lldbutil10 11 12class ARMEmulationTestCase(TestBase):13    @no_debug_info_test14    def test_thumb_emulations(self):15        test_dir = os.path.join(self.getSourceDir(), "new-test-files")16        files = os.listdir(test_dir)17        thumb_files = list()18        for f in files:19            if f.endswith("-thumb.dat"):20                thumb_files.append(f)21 22        for f in thumb_files:23            test_file = os.path.join(test_dir, f)24            self.run_a_single_test(test_file)25 26    @no_debug_info_test27    def test_arm_emulations(self):28        test_dir = os.path.join(self.getSourceDir(), "new-test-files")29        files = os.listdir(test_dir)30        arm_files = list()31        for f in files:32            if f.endswith("-arm.dat"):33                arm_files.append(f)34 35        for f in arm_files:36            test_file = os.path.join(test_dir, f)37            self.run_a_single_test(test_file)38 39    def run_a_single_test(self, filename):40        insn = lldb.SBInstruction()41        stream = lldb.SBStream()42        success = insn.TestEmulation(stream, filename)43        output = stream.GetData()44        if self.TraceOn():45            print("\nRunning test " + os.path.basename(filename))46            print(output)47 48        self.assertTrue(success, "Emulation test {} failed.".format(filename))49