[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