Index: lldb/trunk/packages/Python/lldbsuite/test/expression_command/test/TestExprs2.py =================================================================== --- lldb/trunk/packages/Python/lldbsuite/test/expression_command/test/TestExprs2.py +++ lldb/trunk/packages/Python/lldbsuite/test/expression_command/test/TestExprs2.py @@ -43,23 +43,38 @@ startstr="(int *) $0 = 0x") # (int *) $0 = 0x00007fff5fbff258 - # Do anonymous symbols work? - self.expect("expression ((char**)environ)[0]", - startstr="(char *) $1 = 0x") - # (char *) $1 = 0x00007fff5fbff298 "Apple_PubSub_Socket_Render=/tmp/launch-7AEsUD/Render" - # Do return values containing the contents of expression locals work? self.expect("expression int i = 5; i", - startstr="(int) $2 = 5") + startstr="(int) $1 = 5") # (int) $2 = 5 - self.expect("expression $2 + 1", - startstr="(int) $3 = 6") + self.expect("expression $1 + 1", + startstr="(int) $2 = 6") # (int) $3 = 6 # Do return values containing the results of static expressions work? self.expect("expression 20 + 3", - startstr="(int) $4 = 23") + startstr="(int) $3 = 23") # (int) $4 = 5 - self.expect("expression $4 + 1", - startstr="(int) $5 = 24") + self.expect("expression $3 + 1", + startstr="(int) $4 = 24") # (int) $5 = 6 + + @skipIfLinux + @expectedFailureAll( + oslist=["windows"], + bugnumber="llvm.org/pr24489: Name lookup not working correctly on Windows") + def test_expr_symbols(self): + """Test symbols.""" + self.build() + + self.runCmd("file " + self.getBuildArtifact("a.out"), CURRENT_EXECUTABLE_SET) + + lldbutil.run_break_set_by_file_and_line( + self, "main.cpp", self.line, num_expected_locations=1, loc_exact=False) + + self.runCmd("run", RUN_SUCCEEDED) + + # Do anonymous symbols work? + self.expect("expression ((char**)environ)[0]", + startstr="(char *) $1 = 0x") + # (char *) $1 = 0x00007fff5fbff298 "Apple_PubSub_Socket_Render=/tmp/launch-7AEsUD/Render" Index: lldb/trunk/packages/Python/lldbsuite/test/functionalities/thread/jump/TestThreadJump.py =================================================================== --- lldb/trunk/packages/Python/lldbsuite/test/functionalities/thread/jump/TestThreadJump.py +++ lldb/trunk/packages/Python/lldbsuite/test/functionalities/thread/jump/TestThreadJump.py @@ -50,8 +50,10 @@ self.do_min_test(self.mark3, self.mark2, "i", "5") # Try the double path, force it to return 'a' self.do_min_test(self.mark4, self.mark1, "j", "7") - # Try the double path, force it to return 'b' - self.do_min_test(self.mark4, self.mark2, "j", "8") + # Expected to fail on powerpc64le architecture + if not self.isPPC64le(): + # Try the double path, force it to return 'b' + self.do_min_test(self.mark4, self.mark2, "j", "8") # Try jumping to another function in a different file. self.runCmd( Index: lldb/trunk/packages/Python/lldbsuite/test/lldbtest.py =================================================================== --- lldb/trunk/packages/Python/lldbsuite/test/lldbtest.py +++ lldb/trunk/packages/Python/lldbsuite/test/lldbtest.py @@ -1236,6 +1236,13 @@ return True return False + def isPPC64le(self): + """Returns true if the architecture is PPC64LE.""" + arch = self.getArchitecture() + if re.match("powerpc64le", arch): + return True + return False + def getArchitecture(self): """Returns the architecture in effect the test suite is running with.""" module = builder_module() Index: lldb/trunk/packages/Python/lldbsuite/test/tools/lldb-mi/data/TestMiData.py =================================================================== --- lldb/trunk/packages/Python/lldbsuite/test/tools/lldb-mi/data/TestMiData.py +++ lldb/trunk/packages/Python/lldbsuite/test/tools/lldb-mi/data/TestMiData.py @@ -80,8 +80,8 @@ # To match the escaped characters in the ouptut, we must use four backslashes per matches backslash # See https://docs.python.org/2/howto/regex.html#the-backslash-plague - # The MIPS disassembler never prints stub name - if self.isMIPS(): + # The MIPS and PPC64le disassemblers never print stub name + if self.isMIPS() or self.isPPC64le(): self.expect(["{address=\"0x[0-9a-f]+\",func-name=\"hello_world\(\)\",offset=\"[0-9]+\",size=\"[0-9]+\",inst=\".+?; \\\\\"Hello, World!\\\\\\\\n\\\\\"\"}", "{address=\"0x[0-9a-f]+\",func-name=\"hello_world\(\)\",offset=\"[0-9]+\",size=\"[0-9]+\",inst=\".+?\"}"]) else: