<div dir="ltr">I was also looking at this because it broke on our android bots. I have just committed r328504 to fix those, and I believe it will fix the issues you are seeing on osx (but I'll probably need to go home before I can verify that).</div><br><br><div class="gmail_quote"><div dir="ltr">On Mon, 26 Mar 2018 at 16:14, Davide Italiano <<a href="mailto:dccitaliano@gmail.com">dccitaliano@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">This commit broke the Jenkins macOS x86-64 bots<br>
<br>
<a href="http://lab.llvm.org:8080/green/view/LLDB/job/lldb-cmake/5943/testReport/junit/TestDisassembleBreakpoint/DisassemblyTestCase/test_dwarf/" rel="noreferrer" target="_blank">http://lab.llvm.org:8080/green/view/LLDB/job/lldb-cmake/5943/testReport/junit/TestDisassembleBreakpoint/DisassemblyTestCase/test_dwarf/</a><br>
<br>
Can you take a look? (if you can't, let me know).<br>
<br>
Thanks,<br>
<br>
--<br>
Davide<br>
<br>
On Mon, Mar 26, 2018 at 5:42 AM, Pavel Labath via lldb-commits<br>
<<a href="mailto:lldb-commits@lists.llvm.org" target="_blank">lldb-commits@lists.llvm.org</a>> wrote:<br>
> Author: labath<br>
> Date: Mon Mar 26 05:42:07 2018<br>
> New Revision: 328488<br>
><br>
> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=328488&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=328488&view=rev</a><br>
> Log:<br>
> Add and fix some tests for PPC64<br>
><br>
> Summary:<br>
> TestExprsChar.py<br>
> Char is unsigned char by default in PowerPC.<br>
><br>
> TestDisassembleBreakpoint.py<br>
> Modify disassemble testcase to consider multiple architectures.<br>
><br>
> TestThreadJump.py<br>
> Jumping directly to the return line on PowerPC architecture dos not<br>
> means returning the value that is seen on the code. The last test fails,<br>
> because it needs the execution of some assembly in the beginning of the<br>
> function. Avoiding this test for this architecture.<br>
><br>
> TestEhFrameUnwind.py<br>
> Implement func for ppc64le test case.<br>
><br>
> TestWatchLocation.py<br>
> TestStepOverWatchpoint.py<br>
> PowerPC currently supports only one H/W watchpoint.<br>
><br>
> TestDisassembleRawData.py<br>
> Add PowerPC opcode and instruction for disassemble testcase.<br>
><br>
> Reviewers: labath<br>
><br>
> Reviewed By: labath<br>
><br>
> Subscribers: davide, labath, alexandreyy, lldb-commits, luporl, lbianc<br>
><br>
> Differential Revision: <a href="https://reviews.llvm.org/D44472" rel="noreferrer" target="_blank">https://reviews.llvm.org/D44472</a><br>
> Patch by Alexandre Yukio Yamashita <<a href="mailto:alexandre.yamashita@eldorado.org.br" target="_blank">alexandre.yamashita@eldorado.org.br</a>>.<br>
><br>
> Modified:<br>
>     lldb/trunk/packages/Python/lldbsuite/test/expression_command/char/TestExprsChar.py<br>
>     lldb/trunk/packages/Python/lldbsuite/test/functionalities/disassembly/TestDisassembleBreakpoint.py<br>
>     lldb/trunk/packages/Python/lldbsuite/test/functionalities/unwind/ehframe/main.c<br>
>     lldb/trunk/packages/Python/lldbsuite/test/functionalities/watchpoint/hello_watchlocation/TestWatchLocation.py<br>
>     lldb/trunk/packages/Python/lldbsuite/test/functionalities/watchpoint/step_over_watchpoint/TestStepOverWatchpoint.py<br>
>     lldb/trunk/packages/Python/lldbsuite/test/python_api/disassemble-raw-data/TestDisassembleRawData.py<br>
><br>
> Modified: lldb/trunk/packages/Python/lldbsuite/test/expression_command/char/TestExprsChar.py<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/expression_command/char/TestExprsChar.py?rev=328488&r1=328487&r2=328488&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/expression_command/char/TestExprsChar.py?rev=328488&r1=328487&r2=328488&view=diff</a><br>
> ==============================================================================<br>
> --- lldb/trunk/packages/Python/lldbsuite/test/expression_command/char/TestExprsChar.py (original)<br>
> +++ lldb/trunk/packages/Python/lldbsuite/test/expression_command/char/TestExprsChar.py Mon Mar 26 05:42:07 2018<br>
> @@ -49,6 +49,7 @@ class ExprCharTestCase(TestBase):<br>
>          archs=[<br>
>              "arm",<br>
>              "aarch64",<br>
> +            "powerpc64le",<br>
>              "s390x"],<br>
>          bugnumber="<a href="http://llvm.org/pr23069" rel="noreferrer" target="_blank">llvm.org/pr23069</a>")<br>
>      @expectedFailureAll(oslist=["windows"], bugnumber="<a href="http://llvm.org/pr21765" rel="noreferrer" target="_blank">llvm.org/pr21765</a>")<br>
><br>
> Modified: lldb/trunk/packages/Python/lldbsuite/test/functionalities/disassembly/TestDisassembleBreakpoint.py<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/functionalities/disassembly/TestDisassembleBreakpoint.py?rev=328488&r1=328487&r2=328488&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/functionalities/disassembly/TestDisassembleBreakpoint.py?rev=328488&r1=328487&r2=328488&view=diff</a><br>
> ==============================================================================<br>
> --- lldb/trunk/packages/Python/lldbsuite/test/functionalities/disassembly/TestDisassembleBreakpoint.py (original)<br>
> +++ lldb/trunk/packages/Python/lldbsuite/test/functionalities/disassembly/TestDisassembleBreakpoint.py Mon Mar 26 05:42:07 2018<br>
> @@ -26,6 +26,9 @@ class DisassemblyTestCase(TestBase):<br>
>          self.expect("file " + exe,<br>
>                      patterns=["Current executable set to .*a.out.*"])<br>
><br>
> +        self.runCmd("dis -n main")<br>
> +        disassembly_before_break = self.res.GetOutput().splitlines()<br>
> +<br>
>          match_object = lldbutil.run_break_set_command(self, "br s -n sum")<br>
>          lldbutil.check_breakpoint_result(<br>
>              self,<br>
> @@ -37,36 +40,16 @@ class DisassemblyTestCase(TestBase):<br>
>          self.expect("run",<br>
>                      patterns=["Process .* launched: "])<br>
><br>
> -        self.runCmd("dis -f")<br>
> -        disassembly = self.res.GetOutput()<br>
> +        self.runCmd("dis -n main")<br>
> +        disassembly_after_break = self.res.GetOutput().splitlines()<br>
><br>
> -        # ARCH, if not specified, defaults to x86_64.<br>
> -        arch = self.getArchitecture()<br>
> -        if arch in ["", 'x86_64', 'i386', 'i686']:<br>
> -            breakpoint_opcodes = ["int3"]<br>
> -            instructions = [' mov', ' addl ', 'ret']<br>
> -        elif arch in ["arm", "aarch64", "arm64", "armv7", "armv7k"]:<br>
> -            breakpoint_opcodes = ["brk", "udf"]<br>
> -            instructions = [' add ', ' ldr ', ' str ']<br>
> -        elif re.match("mips", arch):<br>
> -            breakpoint_opcodes = ["break"]<br>
> -            instructions = ['lw', 'sw']<br>
> -        elif arch in ["s390x"]:<br>
> -            breakpoint_opcodes = [".long"]<br>
> -            instructions = [' l ', ' a ', ' st ']<br>
> -        else:<br>
> -            # TODO please add your arch here<br>
> -            self.fail(<br>
> -                'unimplemented for arch = "{arch}"'.format(<br>
> -                    arch=self.getArchitecture()))<br>
> -<br>
> -        # make sure that the software breakpoint has been removed<br>
> -        for op in breakpoint_opcodes:<br>
> -            self.assertFalse(op in disassembly)<br>
> -<br>
> -        # make sure a few reasonable assembly instructions are here<br>
> -        self.expect(<br>
> -            disassembly,<br>
> -            exe=False,<br>
> -            startstr="a.out`sum",<br>
> -            substrs=instructions)<br>
> +        # make sure all assembly instructions are the same as the original<br>
> +        # instructions before inserting breakpoints.<br>
> +        self.assertEqual(len(disassembly_before_break),<br>
> +                         len(disassembly_after_break))<br>
> +<br>
> +        for dis_inst_before, dis_inst_after in \<br>
> +                zip(disassembly_before_break, disassembly_after_break):<br>
> +            inst_before = dis_inst_before.split(':')[-1]<br>
> +            inst_after = dis_inst_after.split(':')[-1]<br>
> +            self.assertEqual(inst_before, inst_after)<br>
><br>
> Modified: lldb/trunk/packages/Python/lldbsuite/test/functionalities/unwind/ehframe/main.c<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/functionalities/unwind/ehframe/main.c?rev=328488&r1=328487&r2=328488&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/functionalities/unwind/ehframe/main.c?rev=328488&r1=328487&r2=328488&view=diff</a><br>
> ==============================================================================<br>
> --- lldb/trunk/packages/Python/lldbsuite/test/functionalities/unwind/ehframe/main.c (original)<br>
> +++ lldb/trunk/packages/Python/lldbsuite/test/functionalities/unwind/ehframe/main.c Mon Mar 26 05:42:07 2018<br>
> @@ -1,6 +1,18 @@<br>
>  void func() {<br>
><br>
> -#ifndef __mips__<br>
> +#ifdef __powerpc64__<br>
> +  __asm__ (<br>
> +    "mflr 0;"<br>
> +    "std 0,16(1);"<br>
> +    "addi 1,1,-24;"<br>
> +    "mr 31,1;"<br>
> +    ".cfi_def_cfa_offset 24;"<br>
> +    "addi 0,0,0;"<br>
> +    "addi 1,1,24;"<br>
> +    "ld 0,16(1);"<br>
> +    ".cfi_def_cfa_offset 0;"<br>
> +  );<br>
> +#elif !defined __mips__<br>
>         __asm__ (<br>
>                 "pushq $0x10;"<br>
>                 ".cfi_def_cfa_offset 16;"<br>
><br>
> Modified: lldb/trunk/packages/Python/lldbsuite/test/functionalities/watchpoint/hello_watchlocation/TestWatchLocation.py<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/functionalities/watchpoint/hello_watchlocation/TestWatchLocation.py?rev=328488&r1=328487&r2=328488&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/functionalities/watchpoint/hello_watchlocation/TestWatchLocation.py?rev=328488&r1=328487&r2=328488&view=diff</a><br>
> ==============================================================================<br>
> --- lldb/trunk/packages/Python/lldbsuite/test/functionalities/watchpoint/hello_watchlocation/TestWatchLocation.py (original)<br>
> +++ lldb/trunk/packages/Python/lldbsuite/test/functionalities/watchpoint/hello_watchlocation/TestWatchLocation.py Mon Mar 26 05:42:07 2018<br>
> @@ -39,8 +39,8 @@ class HelloWatchLocationTestCase(TestBas<br>
>      # Most of the MIPS boards provide only one H/W watchpoints, and S/W<br>
>      # watchpoints are not supported yet<br>
>      @expectedFailureAll(triple=re.compile('^mips'))<br>
> -    # SystemZ also currently supports only one H/W watchpoint<br>
> -    @expectedFailureAll(archs=['s390x'])<br>
> +    # SystemZ and PowerPC also currently supports only one H/W watchpoint<br>
> +    @expectedFailureAll(archs=['powerpc64le', 's390x'])<br>
>      @skipIfDarwin<br>
>      def test_hello_watchlocation(self):<br>
>          """Test watching a location with '-s size' option."""<br>
><br>
> Modified: lldb/trunk/packages/Python/lldbsuite/test/functionalities/watchpoint/step_over_watchpoint/TestStepOverWatchpoint.py<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/functionalities/watchpoint/step_over_watchpoint/TestStepOverWatchpoint.py?rev=328488&r1=328487&r2=328488&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/functionalities/watchpoint/step_over_watchpoint/TestStepOverWatchpoint.py?rev=328488&r1=328487&r2=328488&view=diff</a><br>
> ==============================================================================<br>
> --- lldb/trunk/packages/Python/lldbsuite/test/functionalities/watchpoint/step_over_watchpoint/TestStepOverWatchpoint.py (original)<br>
> +++ lldb/trunk/packages/Python/lldbsuite/test/functionalities/watchpoint/step_over_watchpoint/TestStepOverWatchpoint.py Mon Mar 26 05:42:07 2018<br>
> @@ -81,7 +81,7 @@ class TestStepOverWatchpoint(TestBase):<br>
>          # Most of the MIPS boards provide only one H/W watchpoints, and S/W<br>
>          # watchpoints are not supported yet<br>
>          arch = self.getArchitecture()<br>
> -        if re.match("^mips", arch):<br>
> +        if re.match("^mips", arch) or re.match("powerpc64le", arch):<br>
>              self.runCmd("watchpoint delete 1")<br>
><br>
>          # resolve_location=True, read=False, write=True<br>
><br>
> Modified: lldb/trunk/packages/Python/lldbsuite/test/python_api/disassemble-raw-data/TestDisassembleRawData.py<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/python_api/disassemble-raw-data/TestDisassembleRawData.py?rev=328488&r1=328487&r2=328488&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/python_api/disassemble-raw-data/TestDisassembleRawData.py?rev=328488&r1=328487&r2=328488&view=diff</a><br>
> ==============================================================================<br>
> --- lldb/trunk/packages/Python/lldbsuite/test/python_api/disassemble-raw-data/TestDisassembleRawData.py (original)<br>
> +++ lldb/trunk/packages/Python/lldbsuite/test/python_api/disassemble-raw-data/TestDisassembleRawData.py Mon Mar 26 05:42:07 2018<br>
> @@ -31,6 +31,9 @@ class DisassembleRawDataTestCase(TestBas<br>
>          elif re.match("mips", arch):<br>
>              target = self.dbg.CreateTargetWithFileAndTargetTriple("", "mips")<br>
>              raw_bytes = bytearray([0x03, 0xa0, 0xf0, 0x21])<br>
> +        elif re.match("powerpc64le", arch):<br>
> +            target = self.dbg.CreateTargetWithFileAndTargetTriple("", "powerpc64le")<br>
> +            raw_bytes = bytearray([0x00, 0x00, 0x80, 0x38])<br>
>          else:<br>
>              target = self.dbg.CreateTargetWithFileAndTargetTriple("", "x86_64")<br>
>              raw_bytes = bytearray([0x48, 0x89, 0xe5])<br>
> @@ -48,6 +51,9 @@ class DisassembleRawDataTestCase(TestBas<br>
>              self.assertTrue(inst.GetMnemonic(target) == "move")<br>
>              self.assertTrue(inst.GetOperands(target) ==<br>
>                              '$' + "fp, " + '$' + "sp")<br>
> +        elif re.match("powerpc64le", arch):<br>
> +            self.assertTrue(inst.GetMnemonic(target) == "li")<br>
> +            self.assertTrue(inst.GetOperands(target) == "4, 0")<br>
>          else:<br>
>              self.assertTrue(inst.GetMnemonic(target) == "movq")<br>
>              self.assertTrue(inst.GetOperands(target) ==<br>
><br>
><br>
> _______________________________________________<br>
> lldb-commits mailing list<br>
> <a href="mailto:lldb-commits@lists.llvm.org" target="_blank">lldb-commits@lists.llvm.org</a><br>
> <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits</a><br>
</blockquote></div>