summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test
diff options
context:
space:
mode:
authorJim Ingham <jingham@apple.com>2018-02-23 21:10:42 +0000
committerJim Ingham <jingham@apple.com>2018-02-23 21:10:42 +0000
commite8b072d9e48881c4b84793acd554cc85e641b05f (patch)
tree91855c29dfc65e81b70d3ebfc51d4a62feeb129a /lldb/packages/Python/lldbsuite/test
parent16b20245baf368e5bc699dca4992d42a9dcf744f (diff)
downloadbcm5719-llvm-e8b072d9e48881c4b84793acd554cc85e641b05f.tar.gz
bcm5719-llvm-e8b072d9e48881c4b84793acd554cc85e641b05f.zip
Fix breakpoint thread name conditionals after breakpoint options refactor.
PR36435 llvm-svn: 325958
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test')
-rw-r--r--lldb/packages/Python/lldbsuite/test/functionalities/thread/thread_specific_break/TestThreadSpecificBreakpoint.py59
-rw-r--r--lldb/packages/Python/lldbsuite/test/functionalities/thread/thread_specific_break/main.cpp5
2 files changed, 29 insertions, 35 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/thread/thread_specific_break/TestThreadSpecificBreakpoint.py b/lldb/packages/Python/lldbsuite/test/functionalities/thread/thread_specific_break/TestThreadSpecificBreakpoint.py
index 4ebe6999e0e..9fdf42ac4e3 100644
--- a/lldb/packages/Python/lldbsuite/test/functionalities/thread/thread_specific_break/TestThreadSpecificBreakpoint.py
+++ b/lldb/packages/Python/lldbsuite/test/functionalities/thread/thread_specific_break/TestThreadSpecificBreakpoint.py
@@ -13,68 +13,57 @@ from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
+def set_thread_id(thread, breakpoint):
+ id = thread.id
+ breakpoint.SetThreadID(id)
+
+def set_thread_name(thread, breakpoint):
+ breakpoint.SetThreadName("main-thread")
class ThreadSpecificBreakTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
+ NO_DEBUG_INFO_TESTCASE = True
@add_test_categories(['pyapi'])
+
@expectedFailureAll(oslist=["windows"])
@expectedFailureAll(oslist=['ios', 'watchos', 'tvos', 'bridgeos'], archs=['armv7', 'armv7k'], bugnumber='rdar://problem/34563920') # armv7 ios problem - breakpoint with tid qualifier isn't working
- def test_python(self):
+ def test_thread_id(self):
+ self.do_test(set_thread_id)
+
+ @skipUnlessDarwin
+ @expectedFailureAll(oslist=['ios', 'watchos', 'tvos', 'bridgeos'], archs=['armv7', 'armv7k'], bugnumber='rdar://problem/34563920') # armv7 ios problem - breakpoint with tid qualifier isn't working
+ def test_thread_name(self):
+ self.do_test(set_thread_name)
+
+ def do_test(self, setter_method):
"""Test that we obey thread conditioned breakpoints."""
self.build()
- exe = self.getBuildArtifact("a.out")
+ main_source_spec = lldb.SBFileSpec("main.cpp")
+ (target, process, main_thread, main_breakpoint) = lldbutil.run_to_source_breakpoint(self,
+ "Set main breakpoint here", main_source_spec)
- target = self.dbg.CreateTarget(exe)
- self.assertTrue(target, VALID_TARGET)
+ main_thread_id = main_thread.GetThreadID()
# This test works by setting a breakpoint in a function conditioned to stop only on
# the main thread, and then calling this function on a secondary thread, joining,
# and then calling again on the main thread. If the thread specific breakpoint works
# then it should not be hit on the secondary thread, only on the main
# thread.
-
- main_source_spec = lldb.SBFileSpec("main.cpp")
-
- main_breakpoint = target.BreakpointCreateBySourceRegex(
- "Set main breakpoint here", main_source_spec)
thread_breakpoint = target.BreakpointCreateBySourceRegex(
"Set thread-specific breakpoint here", main_source_spec)
-
- self.assertTrue(
- main_breakpoint.IsValid(),
- "Failed to set main breakpoint.")
- self.assertGreater(
- main_breakpoint.GetNumLocations(),
- 0,
- "main breakpoint has no locations associated with it.")
- self.assertTrue(
- thread_breakpoint.IsValid(),
- "Failed to set thread breakpoint.")
self.assertGreater(
thread_breakpoint.GetNumLocations(),
0,
"thread breakpoint has no locations associated with it.")
- process = target.LaunchSimple(
- None, None, self.get_process_working_directory())
-
- self.assertTrue(process, PROCESS_IS_VALID)
-
- stopped_threads = lldbutil.get_threads_stopped_at_breakpoint(
- process, main_breakpoint)
- self.assertEqual(
- len(stopped_threads),
- 1,
- "main breakpoint stopped at unexpected number of threads")
- main_thread = stopped_threads[0]
- main_thread_id = main_thread.GetThreadID()
-
# Set the thread-specific breakpoint to only stop on the main thread. The run the function
# on another thread and join on it. If the thread-specific breakpoint works, the next
# stop should be on the main thread.
- thread_breakpoint.SetThreadID(main_thread_id)
+
+ main_thread_id = main_thread.GetThreadID()
+ setter_method(main_thread, thread_breakpoint)
process.Continue()
next_stop_state = process.GetState()
diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/thread/thread_specific_break/main.cpp b/lldb/packages/Python/lldbsuite/test/functionalities/thread/thread_specific_break/main.cpp
index 7721b5d8432..0509b3d37a7 100644
--- a/lldb/packages/Python/lldbsuite/test/functionalities/thread/thread_specific_break/main.cpp
+++ b/lldb/packages/Python/lldbsuite/test/functionalities/thread/thread_specific_break/main.cpp
@@ -12,6 +12,11 @@ int
main ()
{
// Set main breakpoint here.
+
+ #ifdef __APPLE__
+ pthread_setname_np("main-thread");
+ #endif
+
std::thread t(thread_function);
t.join();
OpenPOWER on IntegriCloud