yinghuitan created this revision. yinghuitan added reviewers: jasonmolenda, clayborg, JDevlieghere, labath, jdoerfert, jingham. Herald added a project: All. yinghuitan requested review of this revision. Herald added a project: LLDB. Herald added a subscriber: lldb-commits.
This diff solves the following two conflict test names (required by lldb-dotest runner): lldb/test/API/lang/c/shared_lib/TestSharedLib.py lldb/test/API/symbol_ondemand/shared_library/TestSharedLib.py Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D124499 Files: lldb/test/API/symbol_ondemand/shared_library/TestSharedLib.py lldb/test/API/symbol_ondemand/shared_library/TestSharedLibOnDemand.py
Index: lldb/test/API/symbol_ondemand/shared_library/TestSharedLib.py =================================================================== --- /dev/null +++ lldb/test/API/symbol_ondemand/shared_library/TestSharedLib.py @@ -1,160 +0,0 @@ -"""Test that types defined in shared libraries work correctly.""" - - -import lldb -import unittest2 -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -import lldbsuite.test.lldbutil as lldbutil - - -class SharedLibTestCase(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - def setUp(self): - # Call super's setUp(). - TestBase.setUp(self) - # Find the line number to break inside main(). - self.source = "shared.c" - self.line = line_number(self.source, "// Set breakpoint 0 here.") - self.shlib_names = ["foo"] - - def common_setup(self): - # Run in synchronous mode - self.dbg.SetAsync(False) - self.runCmd("settings set symbols.load-on-demand true") - - # Create a target by the debugger. - self.target = self.dbg.CreateTarget(self.getBuildArtifact("a.out")) - self.assertTrue(self.target, VALID_TARGET) - - # Register our shared libraries for remote targets so they get - # automatically uploaded - self.environment = self.registerSharedLibrariesWithTarget( - self.target, self.shlib_names - ) - - ctx = self.platformContext - self.shared_lib_name = ctx.shlib_prefix + "foo." + ctx.shlib_extension - - @skipIfWindows - def test_source_line_breakpoint(self): - self.build() - self.common_setup() - - lldbutil.run_break_set_by_file_and_line( - self, "foo.c", 4, num_expected_locations=1, loc_exact=True - ) - - # Now launch the process, and do not stop at entry point. - process = self.target.LaunchSimple( - None, self.environment, self.get_process_working_directory() - ) - self.assertTrue(process, PROCESS_IS_VALID) - - # The stop reason of the thread should be breakpoint. - self.expect( - "thread list", - STOPPED_DUE_TO_BREAKPOINT, - substrs=["stopped", "stop reason = breakpoint"], - ) - # The breakpoint should have a hit count of 1. - lldbutil.check_breakpoint(self, bpno=1, expected_hit_count=1) - - thread = process.GetSelectedThread() - stack_frames = lldbutil.get_stack_frames(thread) - self.assertGreater(len(stack_frames), 2) - - leaf_frame = stack_frames[0] - self.assertEqual("foo.c", leaf_frame.GetLineEntry().GetFileSpec().GetFilename()) - self.assertEqual(4, leaf_frame.GetLineEntry().GetLine()) - - parent_frame = stack_frames[1] - self.assertEqual( - "shared.c", parent_frame.GetLineEntry().GetFileSpec().GetFilename() - ) - self.assertEqual(7, parent_frame.GetLineEntry().GetLine()) - - @skipIfWindows - def test_symbolic_breakpoint(self): - self.build() - self.common_setup() - - lldbutil.run_break_set_by_symbol( - self, "foo", sym_exact=True, num_expected_locations=1 - ) - - # Now launch the process, and do not stop at entry point. - process = self.target.LaunchSimple( - None, self.environment, self.get_process_working_directory() - ) - self.assertTrue(process, PROCESS_IS_VALID) - - # The stop reason of the thread should be breakpoint. - self.expect( - "thread list", - STOPPED_DUE_TO_BREAKPOINT, - substrs=["stopped", "stop reason = breakpoint"], - ) - # The breakpoint should have a hit count of 1. - lldbutil.check_breakpoint(self, bpno=1, expected_hit_count=1) - - thread = process.GetSelectedThread() - stack_frames = lldbutil.get_stack_frames(thread) - self.assertGreater(len(stack_frames), 2) - - leaf_frame = stack_frames[0] - self.assertEqual("foo.c", leaf_frame.GetLineEntry().GetFileSpec().GetFilename()) - self.assertEqual(4, leaf_frame.GetLineEntry().GetLine()) - - parent_frame = stack_frames[1] - self.assertEqual( - "shared.c", parent_frame.GetLineEntry().GetFileSpec().GetFilename() - ) - self.assertEqual(7, parent_frame.GetLineEntry().GetLine()) - - @skipIfWindows - def test_global_variable_hydration(self): - self.build() - self.common_setup() - - lldbutil.run_break_set_by_file_and_line( - self, self.source, self.line, num_expected_locations=1, loc_exact=True - ) - - # Now launch the process, and do not stop at entry point. - process = self.target.LaunchSimple( - None, self.environment, self.get_process_working_directory() - ) - self.assertTrue(process, PROCESS_IS_VALID) - - # The stop reason of the thread should be breakpoint. - self.expect( - "thread list", - STOPPED_DUE_TO_BREAKPOINT, - substrs=["stopped", "stop reason = breakpoint"], - ) - - # The breakpoint should have a hit count of 1. - lldbutil.check_breakpoint(self, bpno=1, expected_hit_count=1) - - self.expect( - "target variable --shlib a.out", - "Breakpoint in a.out should have hydrated the debug info", - substrs=["global_shared = 897"], - ) - - self.expect( - "target variable --shlib " + self.shared_lib_name, - "shared library should not have debug info by default", - matching=False, - substrs=["global_foo"], - ) - - self.expect( - "target variable global_foo --shlib " + self.shared_lib_name, - "Match global_foo in symbol table should hydrate debug info", - matching=True, - substrs=["global_foo = 321"], - )
_______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits