aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEd Maste <emaste@freebsd.org>2013-07-25 17:23:10 +0000
committerEd Maste <emaste@freebsd.org>2013-07-25 17:23:10 +0000
commit3bf526ac0f51dda6f63be3421cd7de68720dd656 (patch)
tree59a309453f5eece3675aa48f2055fbaae8446078
parent4fd912f5de9a61a4e23f2a1973659f0c334a2692 (diff)
downloadlldb-3bf526ac0f51dda6f63be3421cd7de68720dd656.tar.gz
tests: Mark expected FreeBSD failures due to pr16706
Watchpoints are not yet working on FreeBSD git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@187134 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--test/functionalities/thread/concurrent_events/TestConcurrentEvents.py17
-rw-r--r--test/functionalities/watchpoint/hello_watchlocation/TestWatchLocation.py1
-rw-r--r--test/functionalities/watchpoint/hello_watchpoint/TestMyFirstWatchpoint.py1
-rw-r--r--test/functionalities/watchpoint/multiple_threads/TestWatchpointMultipleThreads.py2
-rw-r--r--test/functionalities/watchpoint/watchpoint_commands/TestWatchpointCommands.py5
-rw-r--r--test/functionalities/watchpoint/watchpoint_commands/command/TestWatchpointCommandLLDB.py2
-rw-r--r--test/functionalities/watchpoint/watchpoint_commands/command/TestWatchpointCommandPython.py1
-rw-r--r--test/functionalities/watchpoint/watchpoint_commands/condition/TestWatchpointConditionCmd.py1
-rw-r--r--test/functionalities/watchpoint/watchpoint_events/TestWatchpointEvents.py1
-rw-r--r--test/functionalities/watchpoint/watchpoint_set_command/TestWatchLocationWithWatchSet.py1
-rw-r--r--test/python_api/watchpoint/TestSetWatchpoint.py1
-rw-r--r--test/python_api/watchpoint/TestWatchpointIgnoreCount.py1
-rw-r--r--test/python_api/watchpoint/TestWatchpointIter.py1
-rw-r--r--test/python_api/watchpoint/condition/TestWatchpointConditionAPI.py1
-rw-r--r--test/python_api/watchpoint/watchlocation/TestSetWatchlocation.py1
-rw-r--r--test/python_api/watchpoint/watchlocation/TestTargetWatchAddress.py1
16 files changed, 38 insertions, 0 deletions
diff --git a/test/functionalities/thread/concurrent_events/TestConcurrentEvents.py b/test/functionalities/thread/concurrent_events/TestConcurrentEvents.py
index dd4c4a603..81e5510b4 100644
--- a/test/functionalities/thread/concurrent_events/TestConcurrentEvents.py
+++ b/test/functionalities/thread/concurrent_events/TestConcurrentEvents.py
@@ -93,12 +93,14 @@ class ConcurrentEventsTestCase(TestBase):
self.buildDwarf(dictionary=self.getBuildFlags())
self.do_thread_actions(num_breakpoint_threads=1, num_watchpoint_threads=1)
+ @expectedFailureFreeBSD('llvm.org/pr16706') # Watchpoints fail on FreeBSD
@dwarf_test
def test_delay_watch_break_dwarf(self):
"""Test (1-second delay) watchpoint and a breakpoint in multiple threads."""
self.buildDwarf(dictionary=self.getBuildFlags())
self.do_thread_actions(num_breakpoint_threads=1, num_delay_watchpoint_threads=1)
+ @expectedFailureFreeBSD('llvm.org/pr16706') # Watchpoints fail on FreeBSD
@dwarf_test
def test_watch_break_dwarf(self):
"""Test watchpoint and a (1 second delay) breakpoint in multiple threads."""
@@ -108,18 +110,21 @@ class ConcurrentEventsTestCase(TestBase):
#
## Tests for concurrent signal and watchpoint
#
+ @expectedFailureFreeBSD('llvm.org/pr16706') # Watchpoints fail on FreeBSD
@dwarf_test
def test_signal_watch_dwarf(self):
"""Test a watchpoint and a signal in multiple threads."""
self.buildDwarf(dictionary=self.getBuildFlags())
self.do_thread_actions(num_signal_threads=1, num_watchpoint_threads=1)
+ @expectedFailureFreeBSD('llvm.org/pr16706') # Watchpoints fail on FreeBSD
@dwarf_test
def test_delay_signal_watch_dwarf(self):
"""Test a watchpoint and a (1 second delay) signal in multiple threads."""
self.buildDwarf(dictionary=self.getBuildFlags())
self.do_thread_actions(num_delay_signal_threads=1, num_watchpoint_threads=1)
+ @expectedFailureFreeBSD('llvm.org/pr16706') # Watchpoints fail on FreeBSD
@dwarf_test
def test_signal_delay_watch_dwarf(self):
"""Test a (1 second delay) watchpoint and a signal in multiple threads."""
@@ -168,12 +173,14 @@ class ConcurrentEventsTestCase(TestBase):
self.buildDwarf(dictionary=self.getBuildFlags())
self.do_thread_actions(num_breakpoint_threads=2, num_delay_signal_threads=1)
+ @expectedFailureFreeBSD('llvm.org/pr16706') # Watchpoints fail on FreeBSD
@dwarf_test
def test_two_breakpoints_one_watchpoint_dwarf(self):
"""Test two threads that trigger a breakpoint and one watchpoint thread. """
self.buildDwarf(dictionary=self.getBuildFlags())
self.do_thread_actions(num_breakpoint_threads=2, num_watchpoint_threads=1)
+ @expectedFailureFreeBSD('llvm.org/pr16706') # Watchpoints fail on FreeBSD
@dwarf_test
def test_breakpoints_delayed_breakpoint_one_watchpoint_dwarf(self):
"""Test a breakpoint, a delayed breakpoint, and one watchpoint thread. """
@@ -185,12 +192,14 @@ class ConcurrentEventsTestCase(TestBase):
#
## Tests for multiple watchpoint threads
#
+ @expectedFailureFreeBSD('llvm.org/pr16706') # Watchpoints fail on FreeBSD
@dwarf_test
def test_two_watchpoint_threads_dwarf(self):
"""Test two threads that trigger a watchpoint. """
self.buildDwarf(dictionary=self.getBuildFlags())
self.do_thread_actions(num_watchpoint_threads=2)
+ @expectedFailureFreeBSD('llvm.org/pr16706') # Watchpoints fail on FreeBSD
@dwarf_test
def test_watchpoint_with_delay_waychpoint_threads_dwarf(self):
"""Test two threads that trigger a watchpoint where one thread has a 1 second delay. """
@@ -198,18 +207,21 @@ class ConcurrentEventsTestCase(TestBase):
self.do_thread_actions(num_watchpoint_threads=1,
num_delay_watchpoint_threads=1)
+ @expectedFailureFreeBSD('llvm.org/pr16706') # Watchpoints fail on FreeBSD
@dwarf_test
def test_two_watchpoints_one_breakpoint_dwarf(self):
"""Test two threads that trigger a watchpoint and one breakpoint thread. """
self.buildDwarf(dictionary=self.getBuildFlags())
self.do_thread_actions(num_watchpoint_threads=2, num_breakpoint_threads=1)
+ @expectedFailureFreeBSD('llvm.org/pr16706') # Watchpoints fail on FreeBSD
@dwarf_test
def test_two_watchpoints_one_delay_breakpoint_dwarf(self):
"""Test two threads that trigger a watchpoint and one (1 second delay) breakpoint thread. """
self.buildDwarf(dictionary=self.getBuildFlags())
self.do_thread_actions(num_watchpoint_threads=2, num_delay_breakpoint_threads=1)
+ @expectedFailureFreeBSD('llvm.org/pr16706') # Watchpoints fail on FreeBSD
@dwarf_test
def test_watchpoint_delay_watchpoint_one_breakpoint_dwarf(self):
"""Test two threads that trigger a watchpoint (one with a 1 second delay) and one breakpoint thread. """
@@ -218,6 +230,7 @@ class ConcurrentEventsTestCase(TestBase):
num_delay_watchpoint_threads=1,
num_breakpoint_threads=1)
+ @expectedFailureFreeBSD('llvm.org/pr16706') # Watchpoints fail on FreeBSD
@dwarf_test
def test_two_watchpoints_one_signal_dwarf(self):
"""Test two threads that trigger a watchpoint and one signal thread. """
@@ -243,6 +256,7 @@ class ConcurrentEventsTestCase(TestBase):
num_watchpoint_threads=5,
num_breakpoint_threads=5)
+ @expectedFailureFreeBSD('llvm.org/pr16706') # Watchpoints fail on FreeBSD
@dwarf_test
def test_signal_watch_break_dwarf(self):
"""Test with 5 watchpoint and breakpoint threads."""
@@ -261,6 +275,7 @@ class ConcurrentEventsTestCase(TestBase):
self.buildDwarf(dictionary=self.getBuildFlags())
self.do_thread_actions(num_crash_threads=1, num_breakpoint_threads=1)
+ @expectedFailureFreeBSD('llvm.org/pr16706') # Watchpoints fail on FreeBSD
@dwarf_test
def test_crash_with_watchpoint_dwarf(self):
""" Test a thread that crashes while another thread hits a watchpoint."""
@@ -274,6 +289,7 @@ class ConcurrentEventsTestCase(TestBase):
self.buildDwarf(dictionary=self.getBuildFlags())
self.do_thread_actions(num_crash_threads=1, num_signal_threads=1)
+ @expectedFailureFreeBSD('llvm.org/pr16706') # Watchpoints fail on FreeBSD
@dwarf_test
def test_crash_with_watchpoint_breakpoint_signal_dwarf(self):
""" Test a thread that crashes while other threads generate a signal and hit a watchpoint and breakpoint. """
@@ -283,6 +299,7 @@ class ConcurrentEventsTestCase(TestBase):
num_signal_threads=1,
num_watchpoint_threads=1)
+ @expectedFailureFreeBSD('llvm.org/pr16706') # Watchpoints fail on FreeBSD
@dwarf_test
def test_delayed_crash_with_breakpoint_watchpoint_dwarf(self):
""" Test a thread with a delayed crash while other threads hit a watchpoint and a breakpoint. """
diff --git a/test/functionalities/watchpoint/hello_watchlocation/TestWatchLocation.py b/test/functionalities/watchpoint/hello_watchlocation/TestWatchLocation.py
index 1e0b93b55..bba5990cc 100644
--- a/test/functionalities/watchpoint/hello_watchlocation/TestWatchLocation.py
+++ b/test/functionalities/watchpoint/hello_watchlocation/TestWatchLocation.py
@@ -21,6 +21,7 @@ class HelloWatchLocationTestCase(TestBase):
self.setTearDownCleanup(dictionary=self.d)
self.hello_watchlocation()
+ @expectedFailureFreeBSD('llvm.org/pr16706') # Watchpoints fail on FreeBSD
@dwarf_test
def test_hello_watchlocation_with_dwarf(self):
"""Test watching a location with '-x size' option."""
diff --git a/test/functionalities/watchpoint/hello_watchpoint/TestMyFirstWatchpoint.py b/test/functionalities/watchpoint/hello_watchpoint/TestMyFirstWatchpoint.py
index ff6b0b2d8..4a65baad5 100644
--- a/test/functionalities/watchpoint/hello_watchpoint/TestMyFirstWatchpoint.py
+++ b/test/functionalities/watchpoint/hello_watchpoint/TestMyFirstWatchpoint.py
@@ -22,6 +22,7 @@ class HelloWatchpointTestCase(TestBase):
self.setTearDownCleanup(dictionary=self.d)
self.hello_watchpoint()
+ @expectedFailureFreeBSD('llvm.org/pr16706') # Watchpoints fail on FreeBSD
@dwarf_test
def test_hello_watchpoint_with_dwarf_using_watchpoint_set(self):
"""Test a simple sequence of watchpoint creation and watchpoint hit."""
diff --git a/test/functionalities/watchpoint/multiple_threads/TestWatchpointMultipleThreads.py b/test/functionalities/watchpoint/multiple_threads/TestWatchpointMultipleThreads.py
index c498d405b..597a308d7 100644
--- a/test/functionalities/watchpoint/multiple_threads/TestWatchpointMultipleThreads.py
+++ b/test/functionalities/watchpoint/multiple_threads/TestWatchpointMultipleThreads.py
@@ -21,6 +21,7 @@ class WatchpointForMultipleThreadsTestCase(TestBase):
self.setTearDownCleanup(dictionary=self.d)
self.hello_multiple_threads()
+ @expectedFailureFreeBSD('llvm.org/pr16706') # Watchpoints fail on FreeBSD
@skipIfGcc # causes intermittent gcc debian buildbot failures, skip until we can investigate
@dwarf_test
def test_watchpoint_multiple_threads_with_dwarf(self):
@@ -37,6 +38,7 @@ class WatchpointForMultipleThreadsTestCase(TestBase):
self.setTearDownCleanup(dictionary=self.d)
self.hello_multiple_threads_wp_set_and_then_delete()
+ @expectedFailureFreeBSD('llvm.org/pr16706') # Watchpoints fail on FreeBSD
@skipIfGcc # causes intermittent gcc debian buildbot failures, skip until we can investigate
@dwarf_test
def test_watchpoint_multiple_threads_wp_set_and_then_delete_with_dwarf(self):
diff --git a/test/functionalities/watchpoint/watchpoint_commands/TestWatchpointCommands.py b/test/functionalities/watchpoint/watchpoint_commands/TestWatchpointCommands.py
index 339e6330f..460cf86bf 100644
--- a/test/functionalities/watchpoint/watchpoint_commands/TestWatchpointCommands.py
+++ b/test/functionalities/watchpoint/watchpoint_commands/TestWatchpointCommands.py
@@ -34,6 +34,7 @@ class WatchpointCommandsTestCase(TestBase):
self.setTearDownCleanup(dictionary=self.d)
self.normal_read_write_watchpoint()
+ @expectedFailureFreeBSD('llvm.org/pr16706') # Watchpoints fail on FreeBSD
@dwarf_test
def test_rw_watchpoint_with_dwarf(self):
"""Test read_write watchpoint and expect to stop two times."""
@@ -49,6 +50,7 @@ class WatchpointCommandsTestCase(TestBase):
self.setTearDownCleanup(dictionary=self.d)
self.delete_read_write_watchpoint()
+ @expectedFailureFreeBSD('llvm.org/pr16706') # Watchpoints fail on FreeBSD
@dwarf_test
def test_rw_watchpoint_delete_with_dwarf(self):
"""Test delete watchpoint and expect not to stop for watchpoint."""
@@ -64,6 +66,7 @@ class WatchpointCommandsTestCase(TestBase):
self.setTearDownCleanup(dictionary=self.d)
self.ignore_read_write_watchpoint()
+ @expectedFailureFreeBSD('llvm.org/pr16706') # Watchpoints fail on FreeBSD
@dwarf_test
def test_rw_watchpoint_set_ignore_count_with_dwarf(self):
"""Test watchpoint ignore count and expect to not to stop at all."""
@@ -79,6 +82,7 @@ class WatchpointCommandsTestCase(TestBase):
self.setTearDownCleanup(dictionary=self.d)
self.read_write_watchpoint_disable_after_first_stop()
+ @expectedFailureFreeBSD('llvm.org/pr16706') # Watchpoints fail on FreeBSD
@dwarf_test
def test_rw_disable_after_first_stop__with_dwarf(self):
"""Test read_write watchpoint but disable it after the first stop."""
@@ -94,6 +98,7 @@ class WatchpointCommandsTestCase(TestBase):
self.setTearDownCleanup(dictionary=self.d)
self.read_write_watchpoint_disable_then_enable()
+ @expectedFailureFreeBSD('llvm.org/pr16706') # Watchpoints fail on FreeBSD
@dwarf_test
def test_rw_disable_then_enable_with_dwarf(self):
"""Test read_write watchpoint, disable initially, then enable it."""
diff --git a/test/functionalities/watchpoint/watchpoint_commands/command/TestWatchpointCommandLLDB.py b/test/functionalities/watchpoint/watchpoint_commands/command/TestWatchpointCommandLLDB.py
index 2a1911a33..d39f9d472 100644
--- a/test/functionalities/watchpoint/watchpoint_commands/command/TestWatchpointCommandLLDB.py
+++ b/test/functionalities/watchpoint/watchpoint_commands/command/TestWatchpointCommandLLDB.py
@@ -33,6 +33,7 @@ class WatchpointLLDBCommandTestCase(TestBase):
self.setTearDownCleanup(dictionary=self.d)
self.watchpoint_command()
+ @expectedFailureFreeBSD('llvm.org/pr16706') # Watchpoints fail on FreeBSD
@dwarf_test
def test_watchpoint_command_with_dwarf(self):
"""Test 'watchpoint command'."""
@@ -48,6 +49,7 @@ class WatchpointLLDBCommandTestCase(TestBase):
self.setTearDownCleanup(dictionary=self.d)
self.watchpoint_command_can_disable_a_watchpoint()
+ @expectedFailureFreeBSD('llvm.org/pr16706') # Watchpoints fail on FreeBSD
@dwarf_test
def test_watchpoint_command_can_disable_a_watchpoint_with_dwarf(self):
"""Test that 'watchpoint command' action can disable a watchpoint after it is triggered."""
diff --git a/test/functionalities/watchpoint/watchpoint_commands/command/TestWatchpointCommandPython.py b/test/functionalities/watchpoint/watchpoint_commands/command/TestWatchpointCommandPython.py
index c793a6a55..e56d060a0 100644
--- a/test/functionalities/watchpoint/watchpoint_commands/command/TestWatchpointCommandPython.py
+++ b/test/functionalities/watchpoint/watchpoint_commands/command/TestWatchpointCommandPython.py
@@ -33,6 +33,7 @@ class WatchpointPythonCommandTestCase(TestBase):
self.setTearDownCleanup(dictionary=self.d)
self.watchpoint_command()
+ @expectedFailureFreeBSD('llvm.org/pr16706') # Watchpoints fail on FreeBSD
@dwarf_test
def test_watchpoint_command_with_dwarf(self):
"""Test 'watchpoint command'."""
diff --git a/test/functionalities/watchpoint/watchpoint_commands/condition/TestWatchpointConditionCmd.py b/test/functionalities/watchpoint/watchpoint_commands/condition/TestWatchpointConditionCmd.py
index b4fafdc85..959b417dd 100644
--- a/test/functionalities/watchpoint/watchpoint_commands/condition/TestWatchpointConditionCmd.py
+++ b/test/functionalities/watchpoint/watchpoint_commands/condition/TestWatchpointConditionCmd.py
@@ -33,6 +33,7 @@ class WatchpointConditionCmdTestCase(TestBase):
self.setTearDownCleanup(dictionary=self.d)
self.watchpoint_condition()
+ @expectedFailureFreeBSD('llvm.org/pr16706') # Watchpoints fail on FreeBSD
@dwarf_test
def test_watchpoint_cond_with_dwarf(self):
"""Test watchpoint condition."""
diff --git a/test/functionalities/watchpoint/watchpoint_events/TestWatchpointEvents.py b/test/functionalities/watchpoint/watchpoint_events/TestWatchpointEvents.py
index 1198ae0d0..ccc35532e 100644
--- a/test/functionalities/watchpoint/watchpoint_events/TestWatchpointEvents.py
+++ b/test/functionalities/watchpoint/watchpoint_events/TestWatchpointEvents.py
@@ -18,6 +18,7 @@ class TestWatchpointEvents (TestBase):
self.buildDsym()
self.step_over_stepping()
+ @expectedFailureFreeBSD('llvm.org/pr16706') # Watchpoints fail on FreeBSD
@python_api_test
@dwarf_test
def test_with_dwarf_and_python_api(self):
diff --git a/test/functionalities/watchpoint/watchpoint_set_command/TestWatchLocationWithWatchSet.py b/test/functionalities/watchpoint/watchpoint_set_command/TestWatchLocationWithWatchSet.py
index 2172c5fa7..5f9199fbb 100644
--- a/test/functionalities/watchpoint/watchpoint_set_command/TestWatchLocationWithWatchSet.py
+++ b/test/functionalities/watchpoint/watchpoint_set_command/TestWatchLocationWithWatchSet.py
@@ -20,6 +20,7 @@ class WatchLocationUsingWatchpointSetTestCase(TestBase):
self.setTearDownCleanup(dictionary=self.d)
self.watchlocation_using_watchpoint_set()
+ @expectedFailureFreeBSD('llvm.org/pr16706') # Watchpoints fail on FreeBSD
@dwarf_test
def test_watchlocation_with_dwarf_using_watchpoint_set(self):
"""Test watching a location with 'watchpoint set expression -w write -x size' option."""
diff --git a/test/python_api/watchpoint/TestSetWatchpoint.py b/test/python_api/watchpoint/TestSetWatchpoint.py
index 124dec11c..8c090196d 100644
--- a/test/python_api/watchpoint/TestSetWatchpoint.py
+++ b/test/python_api/watchpoint/TestSetWatchpoint.py
@@ -28,6 +28,7 @@ class SetWatchpointAPITestCase(TestBase):
self.buildDsym()
self.do_set_watchpoint()
+ @expectedFailureFreeBSD('llvm.org/pr16706') # Watchpoints fail on FreeBSD
@python_api_test
@dwarf_test
def test_watch_val_with_dwarf(self):
diff --git a/test/python_api/watchpoint/TestWatchpointIgnoreCount.py b/test/python_api/watchpoint/TestWatchpointIgnoreCount.py
index ffe770852..db169e8b8 100644
--- a/test/python_api/watchpoint/TestWatchpointIgnoreCount.py
+++ b/test/python_api/watchpoint/TestWatchpointIgnoreCount.py
@@ -28,6 +28,7 @@ class WatchpointIgnoreCountTestCase(TestBase):
self.buildDsym()
self.do_watchpoint_ignore_count()
+ @expectedFailureFreeBSD('llvm.org/pr16706') # Watchpoints fail on FreeBSD
@python_api_test
@dwarf_test
def test_set_watch_ignore_count_with_dwarf(self):
diff --git a/test/python_api/watchpoint/TestWatchpointIter.py b/test/python_api/watchpoint/TestWatchpointIter.py
index c6d37502e..e0fd624a5 100644
--- a/test/python_api/watchpoint/TestWatchpointIter.py
+++ b/test/python_api/watchpoint/TestWatchpointIter.py
@@ -28,6 +28,7 @@ class WatchpointIteratorTestCase(TestBase):
self.buildDsym()
self.do_watchpoint_iter()
+ @expectedFailureFreeBSD('llvm.org/pr16706') # Watchpoints fail on FreeBSD
@python_api_test
@dwarf_test
def test_watch_iter_with_dwarf(self):
diff --git a/test/python_api/watchpoint/condition/TestWatchpointConditionAPI.py b/test/python_api/watchpoint/condition/TestWatchpointConditionAPI.py
index d3707bad2..f75662699 100644
--- a/test/python_api/watchpoint/condition/TestWatchpointConditionAPI.py
+++ b/test/python_api/watchpoint/condition/TestWatchpointConditionAPI.py
@@ -33,6 +33,7 @@ class WatchpointConditionAPITestCase(TestBase):
self.setTearDownCleanup(dictionary=self.d)
self.watchpoint_condition_api()
+ @expectedFailureFreeBSD('llvm.org/pr16706') # Watchpoints fail on FreeBSD
@dwarf_test
def test_watchpoint_cond_api_with_dwarf(self):
"""Test watchpoint condition API."""
diff --git a/test/python_api/watchpoint/watchlocation/TestSetWatchlocation.py b/test/python_api/watchpoint/watchlocation/TestSetWatchlocation.py
index f77e1e26a..d9904e891 100644
--- a/test/python_api/watchpoint/watchlocation/TestSetWatchlocation.py
+++ b/test/python_api/watchpoint/watchlocation/TestSetWatchlocation.py
@@ -30,6 +30,7 @@ class SetWatchlocationAPITestCase(TestBase):
self.buildDsym()
self.do_set_watchlocation()
+ @expectedFailureFreeBSD('llvm.org/pr16706') # Watchpoints fail on FreeBSD
@skipIfLinux # Sometimes passes, sometimes not.
@python_api_test
@dwarf_test
diff --git a/test/python_api/watchpoint/watchlocation/TestTargetWatchAddress.py b/test/python_api/watchpoint/watchlocation/TestTargetWatchAddress.py
index ffbdd04f3..050a6224a 100644
--- a/test/python_api/watchpoint/watchlocation/TestTargetWatchAddress.py
+++ b/test/python_api/watchpoint/watchlocation/TestTargetWatchAddress.py
@@ -30,6 +30,7 @@ class TargetWatchAddressAPITestCase(TestBase):
self.buildDsym()
self.do_set_watchaddress()
+ @expectedFailureFreeBSD('llvm.org/pr16706') # Watchpoints fail on FreeBSD
@skipIfLinux # llvm.org/pr14323 - skip due to incomplete multi-threaded debug support
@python_api_test
@dwarf_test