[Lldb-commits] [lldb] acb0b99 - [lldb][NFC] Modernize lang/cpp/scope test

Raphael Isemann via lldb-commits lldb-commits at lists.llvm.org
Mon Apr 6 00:37:21 PDT 2020


Author: Raphael Isemann
Date: 2020-04-06T09:36:54+02:00
New Revision: acb0b99c8e4f1dc65a7f1e26da9db77239a67da7

URL: https://github.com/llvm/llvm-project/commit/acb0b99c8e4f1dc65a7f1e26da9db77239a67da7
DIFF: https://github.com/llvm/llvm-project/commit/acb0b99c8e4f1dc65a7f1e26da9db77239a67da7.diff

LOG: [lldb][NFC] Modernize lang/cpp/scope test

Added: 
    

Modified: 
    lldb/test/API/lang/cpp/scope/TestCppScope.py
    lldb/test/API/lang/cpp/scope/main.cpp

Removed: 
    


################################################################################
diff  --git a/lldb/test/API/lang/cpp/scope/TestCppScope.py b/lldb/test/API/lang/cpp/scope/TestCppScope.py
index 213e7fbe9022..1320bd2185f8 100644
--- a/lldb/test/API/lang/cpp/scope/TestCppScope.py
+++ b/lldb/test/API/lang/cpp/scope/TestCppScope.py
@@ -1,91 +1,27 @@
-"""
-Test scopes in C++.
-"""
 import lldb
 from lldbsuite.test.decorators import *
 from lldbsuite.test.lldbtest import *
 from lldbsuite.test import lldbutil
 
-
-class TestCppScopes(TestBase):
+class TestCase(TestBase):
 
     mydir = TestBase.compute_mydir(__file__)
 
     @expectedFailureAll(oslist=["windows"], bugnumber="llvm.org/pr24764")
-    def test_all_but_c(self):
-        self.do_test(False)
-
-    @expectedFailureAll(oslist=["windows"], bugnumber="llvm.org/pr24764")
-    def test_c(self):
-        self.do_test(True)
-
-    def do_test(self, test_c):
+    def test(self):
         self.build()
-
-        # Get main source file
-        src_file = os.path.join(self.getSourceDir(), "main.cpp")
-        src_file_spec = lldb.SBFileSpec(src_file)
-        self.assertTrue(src_file_spec.IsValid(), "Main source file")
-
-        # Get the path of the executable
-        exe_path = self.getBuildArtifact("a.out")
-
-        # Load the executable
-        target = self.dbg.CreateTarget(exe_path)
-        self.assertTrue(target.IsValid(), VALID_TARGET)
-
-        # Break on main function
-        main_breakpoint = target.BreakpointCreateBySourceRegex(
-            "// break here", src_file_spec)
-        self.assertTrue(
-            main_breakpoint.IsValid() and main_breakpoint.GetNumLocations() >= 1,
-            VALID_BREAKPOINT)
-
-        # Launch the process
-        args = None
-        env = None
-        process = target.LaunchSimple(
-            args, env, self.get_process_working_directory())
-        self.assertTrue(process.IsValid(), PROCESS_IS_VALID)
-
-        # Get the thread of the process
-        self.assertTrue(
-            process.GetState() == lldb.eStateStopped,
-            PROCESS_STOPPED)
-        thread = lldbutil.get_stopped_thread(
-            process, lldb.eStopReasonBreakpoint)
-
-        # Get current fream of the thread at the breakpoint
-        frame = thread.GetSelectedFrame()
-
-        # Test result for scopes of variables
-
-        global_variables = frame.GetVariables(True, True, True, False)
-        global_variables_assert = {
-            'A::a': 1111,
-            'B::a': 2222,
-            'C::a': 3333,
-            '::a': 4444,
-            'a': 4444
-        }
-
-        self.assertTrue(
-            global_variables.GetSize() == 4,
-            "target variable returns all variables")
-        for variable in global_variables:
-            name = variable.GetName()
-            self.assertTrue(
-                name in global_variables_assert,
-                "target variable returns wrong variable " + name)
-
-        for name in global_variables_assert:
-            if name is "C::a" and not test_c:
-                continue
-            if name is not "C::a" and test_c:
-                continue
-
-            value = frame.EvaluateExpression(name)
-            assert_value = global_variables_assert[name]
-            self.assertTrue(
-                value.IsValid() and value.GetValueAsSigned() == assert_value,
-                name + " = " + str(assert_value))
+        lldbutil.run_to_source_breakpoint(self, "// break here", lldb.SBFileSpec("main.cpp"))
+
+        # Test that global variables contain the right scope operators.
+        global_vars = self.frame().GetVariables(False, False, True, False)
+        global_var_names = [v.GetName() for v in global_vars]
+        expected_var_names = ["A::a", "B::a", "C::a", "::a"]
+        self.assertEqual(global_var_names, expected_var_names)
+
+        # Test lookup in scopes.
+        self.expect_expr("A::a", result_value="1111")
+        self.expect_expr("B::a", result_value="2222")
+        self.expect_expr("C::a", result_value="3333")
+        self.expect_expr("::a", result_value="4444")
+        # Check that lookup without scope returns the same result.
+        self.expect_expr("a", result_value="4444")

diff  --git a/lldb/test/API/lang/cpp/scope/main.cpp b/lldb/test/API/lang/cpp/scope/main.cpp
index da5d7ed529d1..20997a8dd1a7 100644
--- a/lldb/test/API/lang/cpp/scope/main.cpp
+++ b/lldb/test/API/lang/cpp/scope/main.cpp
@@ -1,17 +1,17 @@
 class A {
 public:
-    static int a;
-    int b;
+  static int a;
+  int b;
 };
 
 class B {
 public:
-    static int a;
-    int b;
+  static int a;
+  int b;
 };
 
 struct C {
-    static int a;
+  static int a;
 };
 
 int A::a = 1111;
@@ -21,5 +21,5 @@ int a = 4444;
 
 int main() // break here
 {
-    return 0;
+  return 0;
 }


        


More information about the lldb-commits mailing list