diff options
author | Zachary Turner <zturner@google.com> | 2015-10-28 17:43:26 +0000 |
---|---|---|
committer | Zachary Turner <zturner@google.com> | 2015-10-28 17:43:26 +0000 |
commit | c432c8f856e0bd84de980a9d9bb2d31b06fa95b1 (patch) | |
tree | 4efa528e074a6e2df782345e4cd97f5d85d038c4 /lldb/test/functionalities/thread/create_after_attach/TestCreateAfterAttach.py | |
parent | a8a3bd210086b50242903ed95048fe5e53897878 (diff) | |
download | bcm5719-llvm-c432c8f856e0bd84de980a9d9bb2d31b06fa95b1.tar.gz bcm5719-llvm-c432c8f856e0bd84de980a9d9bb2d31b06fa95b1.zip |
Move lldb/test to lldb/packages/Python/lldbsuite/test.
This is the conclusion of an effort to get LLDB's Python code
structured into a bona-fide Python package. This has a number
of benefits, but most notably the ability to more easily share
Python code between different but related pieces of LLDB's Python
infrastructure (for example, `scripts` can now share code with
`test`).
llvm-svn: 251532
Diffstat (limited to 'lldb/test/functionalities/thread/create_after_attach/TestCreateAfterAttach.py')
-rw-r--r-- | lldb/test/functionalities/thread/create_after_attach/TestCreateAfterAttach.py | 120 |
1 files changed, 0 insertions, 120 deletions
diff --git a/lldb/test/functionalities/thread/create_after_attach/TestCreateAfterAttach.py b/lldb/test/functionalities/thread/create_after_attach/TestCreateAfterAttach.py deleted file mode 100644 index 6e363a3ffe6..00000000000 --- a/lldb/test/functionalities/thread/create_after_attach/TestCreateAfterAttach.py +++ /dev/null @@ -1,120 +0,0 @@ -""" -Test thread creation after process attach. -""" - -from __future__ import print_function - -import use_lldb_suite - -import os, time -import lldb -from lldbtest import * -import lldbutil - -class CreateAfterAttachTestCase(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - @skipIfFreeBSD # Hangs. May be the same as Linux issue llvm.org/pr16229 but - # not yet investigated. Revisit once required functionality - # is implemented for FreeBSD. - @skipIfWindows # Occasionally hangs on Windows, may be same as other issues. - def test_create_after_attach_with_popen(self): - """Test thread creation after process attach.""" - self.build(dictionary=self.getBuildFlags(use_cpp11=False)) - self.create_after_attach(use_fork=False) - - @skipIfFreeBSD # Hangs. Revisit once required functionality is implemented - # for FreeBSD. - @skipIfRemote - @skipIfWindows # Windows doesn't have fork. - @expectedFlakeyLinux("llvm.org/pr16229") # 1/100 dosep, build 3546, clang-3.5 x84_64 - def test_create_after_attach_with_fork(self): - """Test thread creation after process attach.""" - self.build(dictionary=self.getBuildFlags(use_cpp11=False)) - self.create_after_attach(use_fork=True) - - def setUp(self): - # Call super's setUp(). - TestBase.setUp(self) - # Find the line numbers for our breakpoints. - self.break_1 = line_number('main.cpp', '// Set first breakpoint here') - self.break_2 = line_number('main.cpp', '// Set second breakpoint here') - self.break_3 = line_number('main.cpp', '// Set third breakpoint here') - - def create_after_attach(self, use_fork): - """Test thread creation after process attach.""" - - exe = os.path.join(os.getcwd(), "a.out") - - # Spawn a new process - if use_fork: - pid = self.forkSubprocess(exe) - else: - popen = self.spawnSubprocess(exe) - pid = popen.pid - self.addTearDownHook(self.cleanupSubprocesses) - - # Attach to the spawned process - self.runCmd("process attach -p " + str(pid)) - - target = self.dbg.GetSelectedTarget() - - process = target.GetProcess() - self.assertTrue(process, PROCESS_IS_VALID) - - # This should create a breakpoint in the main thread. - lldbutil.run_break_set_by_file_and_line (self, "main.cpp", self.break_1, num_expected_locations=1) - - # This should create a breakpoint in the second child thread. - lldbutil.run_break_set_by_file_and_line (self, "main.cpp", self.break_2, num_expected_locations=1) - - # This should create a breakpoint in the first child thread. - lldbutil.run_break_set_by_file_and_line (self, "main.cpp", self.break_3, num_expected_locations=1) - - # Note: With std::thread, we cannot rely on particular thread numbers. Using - # std::thread may cause the program to spin up a thread pool (and it does on - # Windows), so the thread numbers are non-deterministic. - - # Run to the first breakpoint - self.runCmd("continue") - - # The stop reason of the thread should be breakpoint. - self.expect("thread list", STOPPED_DUE_TO_BREAKPOINT, - substrs = ['stopped', - '* thread #', - 'main', - 'stop reason = breakpoint']) - - # Change a variable to escape the loop - self.runCmd("expression main_thread_continue = 1") - - # Run to the second breakpoint - self.runCmd("continue") - - # The stop reason of the thread should be breakpoint. - self.expect("thread list", STOPPED_DUE_TO_BREAKPOINT, - substrs = ['stopped', - '* thread #', - 'thread_2_func', - 'stop reason = breakpoint']) - - # Change a variable to escape the loop - self.runCmd("expression child_thread_continue = 1") - - # Run to the third breakpoint - self.runCmd("continue") - - # The stop reason of the thread should be breakpoint. - # Thread 3 may or may not have already exited. - self.expect("thread list", STOPPED_DUE_TO_BREAKPOINT, - substrs = ['stopped', - '* thread #', - 'thread_1_func', - 'stop reason = breakpoint']) - - # Run to completion - self.runCmd("continue") - - # At this point, the inferior process should have exited. - self.assertTrue(process.GetState() == lldb.eStateExited, PROCESS_EXITED) |