[Lldb-commits] [lldb] r294418 - [LLDB][MIPS] Fix TestMiExec and TestMiData failures

Nitesh Jain via lldb-commits lldb-commits at lists.llvm.org
Tue Feb 7 23:42:57 PST 2017


Author: nitesh.jain
Date: Wed Feb  8 01:42:56 2017
New Revision: 294418

URL: http://llvm.org/viewvc/llvm-project?rev=294418&view=rev
Log:
[LLDB][MIPS] Fix TestMiExec and TestMiData failures

Subscribers: jaydeep, bhushan, lldb-commits, slthakur

Modified:
    lldb/trunk/packages/Python/lldbsuite/test/lldbtest.py
    lldb/trunk/packages/Python/lldbsuite/test/tools/lldb-mi/control/TestMiExec.py
    lldb/trunk/packages/Python/lldbsuite/test/tools/lldb-mi/data/TestMiData.py

Modified: lldb/trunk/packages/Python/lldbsuite/test/lldbtest.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/lldbtest.py?rev=294418&r1=294417&r2=294418&view=diff
==============================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/lldbtest.py (original)
+++ lldb/trunk/packages/Python/lldbsuite/test/lldbtest.py Wed Feb  8 01:42:56 2017
@@ -1227,6 +1227,13 @@ class Base(unittest2.TestCase):
     # (enables reading of the current test configuration)
     # ====================================================
 
+    def isMIPS(self):
+        """Returns true if the architecture is MIPS."""
+        arch = self.getArchitecture()
+        if re.match("mips", arch):
+            return True
+        return False
+
     def getArchitecture(self):
         """Returns the architecture in effect the test suite is running with."""
         module = builder_module()

Modified: lldb/trunk/packages/Python/lldbsuite/test/tools/lldb-mi/control/TestMiExec.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/tools/lldb-mi/control/TestMiExec.py?rev=294418&r1=294417&r2=294418&view=diff
==============================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/tools/lldb-mi/control/TestMiExec.py (original)
+++ lldb/trunk/packages/Python/lldbsuite/test/tools/lldb-mi/control/TestMiExec.py Wed Feb  8 01:42:56 2017
@@ -260,7 +260,7 @@ class MiExecTestCase(lldbmi_testcase.MiT
         self.expect("\^running")
         # Depending on compiler, it can stop at different line
         self.expect(
-            "\*stopped,reason=\"end-stepping-range\".+?main\.cpp\",line=\"(29|30|31)\"")
+            "\*stopped,reason=\"end-stepping-range\".+?main\.cpp\",line=\"(28|29|30|31)\"")
 
         # Test that an invalid --thread is handled
         self.runCmd("-exec-next-instruction --thread 0")
@@ -382,7 +382,17 @@ class MiExecTestCase(lldbmi_testcase.MiT
 
         # Test that -exec-step-instruction steps into g_MyFunction
         # instruction (and that --thread is optional)
-        self.runCmd("-exec-step-instruction --frame 0")
+
+        # In case of MIPS, there might be more than one instruction
+        # before actual call instruction (like load, move and call instructions).
+        # The -exec-step-instruction would step one assembly instruction.
+        # Thus we may not enter into g_MyFunction function. The -exec-step would definitely
+        # step into the function.
+
+        if self.isMIPS():
+            self.runCmd("-exec-step --frame 0")
+        else:
+            self.runCmd("-exec-step-instruction --frame 0")
         self.expect("\^running")
         self.expect(
             "\*stopped,reason=\"end-stepping-range\".+?func=\"g_MyFunction.*?\"")

Modified: lldb/trunk/packages/Python/lldbsuite/test/tools/lldb-mi/data/TestMiData.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/tools/lldb-mi/data/TestMiData.py?rev=294418&r1=294417&r2=294418&view=diff
==============================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/tools/lldb-mi/data/TestMiData.py (original)
+++ lldb/trunk/packages/Python/lldbsuite/test/tools/lldb-mi/data/TestMiData.py Wed Feb  8 01:42:56 2017
@@ -77,7 +77,13 @@ class MiDataTestCase(lldbmi_testcase.MiT
         # Linux:  {address="0x0000000000400642",func-name="hello_world()",offset="18",size="5",inst="callq 0x4004d0; symbol stub for: printf"}
         # 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
-        self.expect(["{address=\"0x[0-9a-f]+\",func-name=\"hello_world\(\)\",offset=\"[0-9]+\",size=\"[0-9]+\",inst=\".+?; \\\\\"Hello, World!\\\\\\\\n\\\\\"\"}",
+
+        # The MIPS disassembler never prints stub name 
+        if self.isMIPS():
+            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:
+            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=\".+?; symbol stub for: printf\"}"])
 
     @skipIfWindows  # llvm.org/pr24452: Get lldb-mi tests working on Windows




More information about the lldb-commits mailing list