@expectedFailureFreeBSD("llvm.org/pr18832")
@dwarf_test
+ @expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not supported
def test_hello_watchlocation_with_dwarf(self):
"""Test watching a location with '-s size' option."""
self.buildDwarf(dictionary=self.d)
self.hello_watchpoint()
@dwarf_test
+ @expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not supported
def test_hello_watchpoint_with_dwarf_using_watchpoint_set(self):
"""Test a simple sequence of watchpoint creation and watchpoint hit."""
self.buildDwarf(dictionary=self.d)
self.hello_multiple_threads()
@dwarf_test
+ @expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not supported
def test_watchpoint_multiple_threads_with_dwarf(self):
"""Test that lldb watchpoint works for multiple threads."""
self.buildDwarf()
self.hello_multiple_threads_wp_set_and_then_delete()
@dwarf_test
+ @expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not supported
def test_watchpoint_multiple_threads_wp_set_and_then_delete_with_dwarf(self):
"""Test that lldb watchpoint works for multiple threads, and after the watchpoint is deleted, the watchpoint event should no longer fires."""
self.buildDwarf()
self.step_over_watchpoint()
@dwarf_test
+ @expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not supported
def test_with_dwarf(self):
"""Test stepping over watchpoints."""
self.buildDwarf()
self.normal_read_write_watchpoint()
@dwarf_test
+ @expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not supported
def test_rw_watchpoint_with_dwarf(self):
"""Test read_write watchpoint and expect to stop two times."""
self.buildDwarf(dictionary=self.d)
self.delete_read_write_watchpoint()
@dwarf_test
+ @expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not supported
def test_rw_watchpoint_delete_with_dwarf(self):
"""Test delete watchpoint and expect not to stop for watchpoint."""
self.buildDwarf(dictionary=self.d)
self.ignore_read_write_watchpoint()
@dwarf_test
+ @expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not supported
def test_rw_watchpoint_set_ignore_count_with_dwarf(self):
"""Test watchpoint ignore count and expect to not to stop at all."""
self.buildDwarf(dictionary=self.d)
self.read_write_watchpoint_disable_after_first_stop()
@dwarf_test
+ @expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not supported
def test_rw_disable_after_first_stop__with_dwarf(self):
"""Test read_write watchpoint but disable it after the first stop."""
self.buildDwarf(dictionary=self.d)
self.read_write_watchpoint_disable_then_enable()
@dwarf_test
+ @expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not supported
def test_rw_disable_then_enable_with_dwarf(self):
"""Test read_write watchpoint, disable initially, then enable it."""
self.buildDwarf(dictionary=self.d)
self.watchpoint_command()
@dwarf_test
+ @expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not supported
def test_watchpoint_command_with_dwarf(self):
"""Test 'watchpoint command'."""
self.buildDwarf(dictionary=self.d)
self.watchpoint_command_can_disable_a_watchpoint()
@dwarf_test
+ @expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not supported
def test_watchpoint_command_can_disable_a_watchpoint_with_dwarf(self):
"""Test that 'watchpoint command' action can disable a watchpoint after it is triggered."""
self.buildDwarf(dictionary=self.d)
@dwarf_test
@skipIfFreeBSD # timing out on buildbot
+ @expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not supported
def test_watchpoint_command_with_dwarf(self):
"""Test 'watchpoint command'."""
self.buildDwarf(dictionary=self.d)
self.watchpoint_condition()
@dwarf_test
+ @expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not supported
def test_watchpoint_cond_with_dwarf(self):
"""Test watchpoint condition."""
self.buildDwarf(dictionary=self.d)
@python_api_test
@dwarf_test
+ @expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not supported
def test_with_dwarf_and_python_api(self):
"""Test that adding, deleting and modifying watchpoints sends the appropriate events."""
self.buildDwarf()
self.setTearDownCleanup()
self.watchlocation_using_watchpoint_set()
- @expectedFailureFreeBSD('llvm.org/pr18832')
@dwarf_test
+ @expectedFailureFreeBSD('llvm.org/pr18832')
+ @expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not supported
def test_watchlocation_with_dwarf_using_watchpoint_set(self):
"""Test watching a location with 'watchpoint set expression -w write -s size' option."""
self.buildDwarf()
def expectedFailureHostWindows(bugnumber=None, compilers=None):
return expectedFailureHostOS(['windows'], bugnumber, compilers)
-def expectedFailureAndroid(bugnumber=None, api_levels=None):
+def expectedFailureAndroid(bugnumber=None, api_levels=None, archs=None):
""" Mark a test as xfail for Android.
Arguments:
bugnumber - The LLVM pr associated with the problem.
api_levels - A sequence of numbers specifying the Android API levels
- for which a test is expected to fail.
+ for which a test is expected to fail. None means all API level.
+ arch - A sequence of architecture names specifying the architectures
+ for which a test is expected to fail. None means all architectures.
"""
def fn(self):
if target_is_android():
- if not api_levels:
- return True
- device_api = android_device_api()
- return device_api and (device_api in api_levels)
+ if archs is not None and self.getArchitecture() not in archs:
+ return False
+ if api_levels is not None and android_device_api() not in api_levels:
+ return False
+ return True
return expectedFailure(fn, bugnumber)
@python_api_test
@dwarf_test
+ @expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not supported
def test_watch_val_with_dwarf(self):
"""Exercise SBValue.Watch() API to set a watchpoint."""
self.buildDwarf()
@python_api_test
@dwarf_test
+ @expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not supported
def test_set_watch_ignore_count_with_dwarf(self):
"""Test SBWatchpoint.SetIgnoreCount() API."""
self.buildDwarf()
@python_api_test
@dwarf_test
+ @expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not supported
def test_watch_iter_with_dwarf(self):
"""Exercise SBTarget.watchpoint_iter() API to iterate on the available watchpoints."""
self.buildDwarf()
self.watchpoint_condition_api()
@dwarf_test
+ @expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not supported
def test_watchpoint_cond_api_with_dwarf(self):
"""Test watchpoint condition API."""
self.buildDwarf(dictionary=self.d)
@python_api_test
@dwarf_test
+ @expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not supported
def test_watch_location_with_dwarf(self):
"""Exercise SBValue.WatchPointee() API to set a watchpoint."""
self.buildDwarf()
@python_api_test
@dwarf_test
+ @expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not supported
def test_watch_address_with_dwarf(self):
"""Exercise SBTarget.WatchAddress() API to set a watchpoint."""
self.buildDwarf()
@python_api_test
@dwarf_test
+ @expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not supported
def test_watch_address_with_invalid_watch_size_with_dwarf(self):
"""Exercise SBTarget.WatchAddress() API but pass an invalid watch_size."""
self.buildDwarf()