summaryrefslogtreecommitdiff
path: root/lldb/test/API/commands/watchpoints/multiple_threads/TestWatchpointMultipleThreads.py
AgeCommit message (Collapse)Author
2023-05-25[NFC][Py Reformat] Reformat python files in lldbJonas Devlieghere
This is an ongoing series of commits that are reformatting our Python code. Reformatting is done with `black` (23.1.0). If you end up having problems merging this commit because you have made changes to a python file, the best way to handle that is to run `git checkout --ours <yourfile>` and then reformat it with black. RFC: https://discourse.llvm.org/t/rfc-document-and-standardize-python-code-style Differential revision: https://reviews.llvm.org/D151460
2022-08-15[LLDB] Remove __future__ imports from testsDavid Spickett
Not needed now that we require python 3. Reviewed By: kastiglione, JDevlieghere Differential Revision: https://reviews.llvm.org/D131761
2022-06-17[lldb][tests] Automatically call compute_mydir (NFC)Dave Lee
Eliminate boilerplate of having each test manually assign to `mydir` by calling `compute_mydir` in lldbtest.py. Differential Revision: https://reviews.llvm.org/D128077
2022-01-15[LLDB] Skip TestIOHandlerPythonREPLSigint.py on AArch64/LinuxMuhammad Omair Javaid
TestIOHandlerPythonREPLSigint.py is running falky on AArch64/Linux buildbot failing randomly. Skipping it for AArch64/Linux as well.
2022-01-12[lldb] Disable one more watchpoint test on WindowsStella Stamenova
This should be the last remaining flaky watchpoint test on Windows
2020-11-10[lldb] [Process/FreeBSDRemote] Explicitly copy dbregs to new threadsMichał Górny
Explicitly copy dbregs to new threads to ensure that watchpoints are propagated properly. Fixes the test failure due to apparent kernel race between reporting a new thread and resuming main thread execution that makes implicit inheritance of dbregs unreliable. By copying them explicitly, we ensure that the new thread correctly respects watchpoints that were set after the thread was created but before it was reported. The code is copied from the NetBSD plugin and modernized to use llvm::Error. Differential Revision: https://reviews.llvm.org/D91032
2020-11-09[lldb] [test] Extend watchpoint test to wait for thread to startMichał Górny
TestWatchpointMultipleThreads currently accounts for two scenarios: setting the watchpoint before a new thread starts (presumably, verifying that it will be propagated to the new thread) and setting it after the thread starts (presumably, verifying that a new watchpoint is set on all threads). However, the latter test currently assumes that the thread will be reported to the debugger before the breakpoint is hit. This is not the case on FreeBSD and NetBSD. On NetBSD, new threads do not inherit debug registers from their parent threads. Instead, LLDB copies them manually after the new thread is reported. Since the thread is actually reported after the second breakpoint location, both tests effectively check the same behavior (i.e. watchpoint being set before the new thread is reported). On FreeBSD, new threads inherit debug registers and we seem to hit an interesting race condition. While the thread is reported after the breakpoint is hit, the kernel seems to construct it and copy the debug register before that happens. As a result, setting the watchpoint at the second breakpoint location modifies the debug registers of the first thread after they have been copied to the second thread but before the debugger is aware of it. Therefore, the watchpoint is not propagated to the second thread and the test fails. Extend the test to cover all three possible scenarios: setting watchpoint before the thread is lanched, after it is launched but before it is guaranteed to have started and after it has actually started. Add a second barrier to account for the last case. This should ensure that the second assumption (i.e. that the watchpoint is set on all currently known threads) is actually tested on FreeBSD and NetBSD. Differential Revision: https://reviews.llvm.org/D91030
2020-11-05[lldb] Enable FreeBSDRemote plugin by default and update test statusMichał Górny
The new FreeBSDRemote plugin has reached feature parity on i386 and amd64 targets. Use it by default on these architectures, while allowing the use of the legacy plugin via FREEBSD_LEGACY_PLUGIN envvar. Revisit the method of switching plugins. Apparently, the return value of PlatformFreeBSD::CanDebugProcess() is what really decides whether the legacy or the new plugin is used. Update the test status. Reenable the tests that were previously disabled on FreeBSD and do not cause hangs or are irrelevant to FreeBSD. Mark all tests that fail reliably as expectedFailure. For now, tests that are flaky (i.e. produce unstable results) are left enabled and cause unpredictable test failures. Differential Revision: https://reviews.llvm.org/D90757
2020-02-11[lldb][test] Remove symlink for API tests.Jordan Rupprecht
Summary: Moves lldbsuite tests to lldb/test/API. This is a largely mechanical change, moved with the following steps: ``` rm lldb/test/API/testcases mkdir -p lldb/test/API/{test_runner/test,tools/lldb-{server,vscode}} mv lldb/packages/Python/lldbsuite/test/test_runner/test lldb/test/API/test_runner for d in $(find lldb/packages/Python/lldbsuite/test/* -maxdepth 0 -type d | egrep -v "make|plugins|test_runner|tools"); do mv $d lldb/test/API; done for d in $(find lldb/packages/Python/lldbsuite/test/tools/lldb-vscode -maxdepth 1 -mindepth 1 | grep -v ".py"); do mv $d lldb/test/API/tools/lldb-vscode; done for d in $(find lldb/packages/Python/lldbsuite/test/tools/lldb-server -maxdepth 1 -mindepth 1 | egrep -v "gdbremote_testcase.py|lldbgdbserverutils.py|socket_packet_pump.py"); do mv $d lldb/test/API/tools/lldb-server; done ``` lldb/packages/Python/lldbsuite/__init__.py and lldb/test/API/lit.cfg.py were also updated with the new directory structure. Reviewers: labath, JDevlieghere Tags: #lldb Differential Revision: https://reviews.llvm.org/D71151