Skip testing of watchpoint hit-count/ignore-count on multithreaded
authorJason Molenda <jason@molenda.com>
Wed, 25 May 2022 23:05:16 +0000 (16:05 -0700)
committerJason Molenda <jason@molenda.com>
Wed, 25 May 2022 23:05:51 +0000 (16:05 -0700)
commitbef4da4a6aef8196f007f44e3e9c8e3419ffb623
tree42bc6356e8b8998db9f1dc7a98941c7aa76f27ae
parentc8e7c0e5dc1e0587bac387bc8d439f58ef7253be
Skip testing of watchpoint hit-count/ignore-count on multithreaded

Skip all watchpoint hit-count/ignore-count tests for multithreaded
API tests for now on arm64 Darwin.

On AArch64, insns that trigger a WP are rolled back and we are
notified.  lldb needs to disable the WP, insn step, re-enable it,
then report it to the user.  lldb only does this full step action
for the "selected thread", and so when a program stops with
multiple threads hitting a stop reason, some of them watchpoints,
any non-selected-thread will not be completed in this way.  But
all threads with the initial watchpoint exception will have their
hit-count/ignore-counts updated.  When we resume execution, the
other threads sitting at the instruction will again execute &
trigger the WP exceptoin again, repeating until we've gone through
all of the threads.

This bug is being tracked in llvm.org/pr49433 and inside apple
in rdar://93863107
12 files changed:
lldb/test/API/commands/watchpoints/hello_watchlocation/TestWatchLocation.py
lldb/test/API/commands/watchpoints/watchpoint_set_command/TestWatchLocationWithWatchSet.py
lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentManyWatchpoints.py
lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentNWatchNBreak.py
lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentSignalNWatchNBreak.py
lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentSignalWatch.py
lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentSignalWatchBreak.py
lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentTwoWatchpointThreads.py
lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentTwoWatchpointsOneBreakpoint.py
lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentTwoWatchpointsOneDelayBreakpoint.py
lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentTwoWatchpointsOneSignal.py
lldb/test/API/python_api/watchpoint/TestWatchpointIgnoreCount.py