[Lldb-commits] [lldb] r334456 - Exempt some compilers from new static variable test.

Jonas Devlieghere via lldb-commits lldb-commits at lists.llvm.org
Mon Jun 11 17:15:59 PDT 2018


Author: jdevlieghere
Date: Mon Jun 11 17:15:59 2018
New Revision: 334456

URL: http://llvm.org/viewvc/llvm-project?rev=334456&view=rev
Log:
Exempt some compilers from new static variable test.

Apparently some compilers generate incomplete debug information which
caused the updated test to fail. Therefore I've extracted the new check
into a separate test case with the necessary decorators.

Modified:
    lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/class_static/TestStaticVariables.py

Modified: lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/class_static/TestStaticVariables.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/class_static/TestStaticVariables.py?rev=334456&r1=334455&r2=334456&view=diff
==============================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/class_static/TestStaticVariables.py (original)
+++ lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/class_static/TestStaticVariables.py Mon Jun 11 17:15:59 2018
@@ -44,6 +44,40 @@ class StaticVariableTestCase(TestBase):
         self.expect(
             'target variable A::g_points',
             VARIABLES_DISPLAYED_CORRECTLY,
+            patterns=['\(PointType \[[1-9]*\]\) A::g_points = {'])
+        self.expect('target variable g_points', VARIABLES_DISPLAYED_CORRECTLY,
+                    substrs=['(PointType [2]) g_points'])
+
+        # On Mac OS X, gcc 4.2 emits the wrong debug info for A::g_points.
+        # A::g_points is an array of two elements.
+        if self.platformIsDarwin() or self.getPlatform() == "linux":
+            self.expect(
+                "target variable A::g_points[1].x",
+                VARIABLES_DISPLAYED_CORRECTLY,
+                startstr="(int) A::g_points[1].x = 11")
+
+    @expectedFailureAll(
+        compiler=["gcc"],
+        bugnumber="Compiler emits incomplete debug info")
+    @expectedFailureAll(
+        compiler=["clang"],
+        compiler_version=["<", "3.9"],
+        bugnumber='llvm.org/pr20550')
+    @expectedFailureAll(oslist=["windows"], bugnumber="llvm.org/pr24764")
+    def test_with_run_command_complete(self):
+        """
+        Test that file and class static variables display correctly with
+        complete debug information.
+        """
+        self.build()
+        target = self.dbg.CreateTarget(self.getBuildArtifact("a.out"))
+        self.assertTrue(target, VALID_TARGET)
+
+        # Global variables are no longer displayed with the "frame variable"
+        # command.
+        self.expect(
+            'target variable A::g_points',
+            VARIABLES_DISPLAYED_CORRECTLY,
             patterns=[
                 '\(PointType \[[1-9]*\]\) A::g_points = {', '(x = 1, y = 2)',
                 '(x = 11, y = 22)'
@@ -67,14 +101,6 @@ class StaticVariableTestCase(TestBase):
                 '(x = 11, y = 22)', '(x = 3, y = 4)', '(x = 33, y = 44)'
             ])
 
-        # On Mac OS X, gcc 4.2 emits the wrong debug info for A::g_points.
-        # A::g_points is an array of two elements.
-        if self.platformIsDarwin() or self.getPlatform() == "linux":
-            self.expect(
-                "target variable A::g_points[1].x",
-                VARIABLES_DISPLAYED_CORRECTLY,
-                startstr="(int) A::g_points[1].x = 11")
-
     @expectedFailureAll(
         compiler=["gcc"],
         bugnumber="Compiler emits incomplete debug info")




More information about the lldb-commits mailing list