diff options
Diffstat (limited to 'lldb/packages/Python/lldbsuite')
6 files changed, 37 insertions, 35 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/char/TestExprsChar.py b/lldb/packages/Python/lldbsuite/test/expression_command/char/TestExprsChar.py index 445979f5c70..2f140687476 100644 --- a/lldb/packages/Python/lldbsuite/test/expression_command/char/TestExprsChar.py +++ b/lldb/packages/Python/lldbsuite/test/expression_command/char/TestExprsChar.py @@ -49,6 +49,7 @@ class ExprCharTestCase(TestBase): archs=[ "arm", "aarch64", + "powerpc64le", "s390x"], bugnumber="llvm.org/pr23069") @expectedFailureAll(oslist=["windows"], bugnumber="llvm.org/pr21765") diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/disassembly/TestDisassembleBreakpoint.py b/lldb/packages/Python/lldbsuite/test/functionalities/disassembly/TestDisassembleBreakpoint.py index aee5f930ea1..2e0d4fda369 100644 --- a/lldb/packages/Python/lldbsuite/test/functionalities/disassembly/TestDisassembleBreakpoint.py +++ b/lldb/packages/Python/lldbsuite/test/functionalities/disassembly/TestDisassembleBreakpoint.py @@ -26,6 +26,9 @@ class DisassemblyTestCase(TestBase): self.expect("file " + exe, patterns=["Current executable set to .*a.out.*"]) + self.runCmd("dis -n main") + disassembly_before_break = self.res.GetOutput().splitlines() + match_object = lldbutil.run_break_set_command(self, "br s -n sum") lldbutil.check_breakpoint_result( self, @@ -37,36 +40,16 @@ class DisassemblyTestCase(TestBase): self.expect("run", patterns=["Process .* launched: "]) - self.runCmd("dis -f") - disassembly = self.res.GetOutput() - - # ARCH, if not specified, defaults to x86_64. - arch = self.getArchitecture() - if arch in ["", 'x86_64', 'i386', 'i686']: - breakpoint_opcodes = ["int3"] - instructions = [' mov', ' addl ', 'ret'] - elif arch in ["arm", "aarch64", "arm64", "armv7", "armv7k"]: - breakpoint_opcodes = ["brk", "udf"] - instructions = [' add ', ' ldr ', ' str '] - elif re.match("mips", arch): - breakpoint_opcodes = ["break"] - instructions = ['lw', 'sw'] - elif arch in ["s390x"]: - breakpoint_opcodes = [".long"] - instructions = [' l ', ' a ', ' st '] - else: - # TODO please add your arch here - self.fail( - 'unimplemented for arch = "{arch}"'.format( - arch=self.getArchitecture())) + self.runCmd("dis -n main") + disassembly_after_break = self.res.GetOutput().splitlines() - # make sure that the software breakpoint has been removed - for op in breakpoint_opcodes: - self.assertFalse(op in disassembly) + # make sure all assembly instructions are the same as the original + # instructions before inserting breakpoints. + self.assertEqual(len(disassembly_before_break), + len(disassembly_after_break)) - # make sure a few reasonable assembly instructions are here - self.expect( - disassembly, - exe=False, - startstr="a.out`sum", - substrs=instructions) + for dis_inst_before, dis_inst_after in \ + zip(disassembly_before_break, disassembly_after_break): + inst_before = dis_inst_before.split(':')[-1] + inst_after = dis_inst_after.split(':')[-1] + self.assertEqual(inst_before, inst_after) diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/unwind/ehframe/main.c b/lldb/packages/Python/lldbsuite/test/functionalities/unwind/ehframe/main.c index ae8060124ab..46de1efe626 100644 --- a/lldb/packages/Python/lldbsuite/test/functionalities/unwind/ehframe/main.c +++ b/lldb/packages/Python/lldbsuite/test/functionalities/unwind/ehframe/main.c @@ -1,6 +1,18 @@ void func() { -#ifndef __mips__ +#ifdef __powerpc64__ + __asm__ ( + "mflr 0;" + "std 0,16(1);" + "addi 1,1,-24;" + "mr 31,1;" + ".cfi_def_cfa_offset 24;" + "addi 0,0,0;" + "addi 1,1,24;" + "ld 0,16(1);" + ".cfi_def_cfa_offset 0;" + ); +#elif !defined __mips__ __asm__ ( "pushq $0x10;" ".cfi_def_cfa_offset 16;" diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/watchpoint/hello_watchlocation/TestWatchLocation.py b/lldb/packages/Python/lldbsuite/test/functionalities/watchpoint/hello_watchlocation/TestWatchLocation.py index dbde146e73a..d39d35f7688 100644 --- a/lldb/packages/Python/lldbsuite/test/functionalities/watchpoint/hello_watchlocation/TestWatchLocation.py +++ b/lldb/packages/Python/lldbsuite/test/functionalities/watchpoint/hello_watchlocation/TestWatchLocation.py @@ -39,8 +39,8 @@ class HelloWatchLocationTestCase(TestBase): # Most of the MIPS boards provide only one H/W watchpoints, and S/W # watchpoints are not supported yet @expectedFailureAll(triple=re.compile('^mips')) - # SystemZ also currently supports only one H/W watchpoint - @expectedFailureAll(archs=['s390x']) + # SystemZ and PowerPC also currently supports only one H/W watchpoint + @expectedFailureAll(archs=['powerpc64le', 's390x']) @skipIfDarwin def test_hello_watchlocation(self): """Test watching a location with '-s size' option.""" diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/watchpoint/step_over_watchpoint/TestStepOverWatchpoint.py b/lldb/packages/Python/lldbsuite/test/functionalities/watchpoint/step_over_watchpoint/TestStepOverWatchpoint.py index 5532fd8fd52..e0c77b4ea6b 100644 --- a/lldb/packages/Python/lldbsuite/test/functionalities/watchpoint/step_over_watchpoint/TestStepOverWatchpoint.py +++ b/lldb/packages/Python/lldbsuite/test/functionalities/watchpoint/step_over_watchpoint/TestStepOverWatchpoint.py @@ -81,7 +81,7 @@ class TestStepOverWatchpoint(TestBase): # Most of the MIPS boards provide only one H/W watchpoints, and S/W # watchpoints are not supported yet arch = self.getArchitecture() - if re.match("^mips", arch): + if re.match("^mips", arch) or re.match("powerpc64le", arch): self.runCmd("watchpoint delete 1") # resolve_location=True, read=False, write=True diff --git a/lldb/packages/Python/lldbsuite/test/python_api/disassemble-raw-data/TestDisassembleRawData.py b/lldb/packages/Python/lldbsuite/test/python_api/disassemble-raw-data/TestDisassembleRawData.py index 97261c70ec9..deb0c7a9fcb 100644 --- a/lldb/packages/Python/lldbsuite/test/python_api/disassemble-raw-data/TestDisassembleRawData.py +++ b/lldb/packages/Python/lldbsuite/test/python_api/disassemble-raw-data/TestDisassembleRawData.py @@ -31,6 +31,9 @@ class DisassembleRawDataTestCase(TestBase): elif re.match("mips", arch): target = self.dbg.CreateTargetWithFileAndTargetTriple("", "mips") raw_bytes = bytearray([0x03, 0xa0, 0xf0, 0x21]) + elif re.match("powerpc64le", arch): + target = self.dbg.CreateTargetWithFileAndTargetTriple("", "powerpc64le") + raw_bytes = bytearray([0x00, 0x00, 0x80, 0x38]) else: target = self.dbg.CreateTargetWithFileAndTargetTriple("", "x86_64") raw_bytes = bytearray([0x48, 0x89, 0xe5]) @@ -48,6 +51,9 @@ class DisassembleRawDataTestCase(TestBase): self.assertTrue(inst.GetMnemonic(target) == "move") self.assertTrue(inst.GetOperands(target) == '$' + "fp, " + '$' + "sp") + elif re.match("powerpc64le", arch): + self.assertTrue(inst.GetMnemonic(target) == "li") + self.assertTrue(inst.GetOperands(target) == "4, 0") else: self.assertTrue(inst.GetMnemonic(target) == "movq") self.assertTrue(inst.GetOperands(target) == |