XFAIL watchpoint tests on Android arm/aarch64
authorTamas Berghammer <tberghammer@google.com>
Wed, 22 Jul 2015 11:00:06 +0000 (11:00 +0000)
committerTamas Berghammer <tberghammer@google.com>
Wed, 22 Jul 2015 11:00:06 +0000 (11:00 +0000)
Differential revision: http://reviews.llvm.org/D11409

llvm-svn: 242887

17 files changed:
lldb/test/functionalities/watchpoint/hello_watchlocation/TestWatchLocation.py
lldb/test/functionalities/watchpoint/hello_watchpoint/TestMyFirstWatchpoint.py
lldb/test/functionalities/watchpoint/multiple_threads/TestWatchpointMultipleThreads.py
lldb/test/functionalities/watchpoint/step_over_watchpoint/TestStepOverWatchpoint.py
lldb/test/functionalities/watchpoint/watchpoint_commands/TestWatchpointCommands.py
lldb/test/functionalities/watchpoint/watchpoint_commands/command/TestWatchpointCommandLLDB.py
lldb/test/functionalities/watchpoint/watchpoint_commands/command/TestWatchpointCommandPython.py
lldb/test/functionalities/watchpoint/watchpoint_commands/condition/TestWatchpointConditionCmd.py
lldb/test/functionalities/watchpoint/watchpoint_events/TestWatchpointEvents.py
lldb/test/functionalities/watchpoint/watchpoint_set_command/TestWatchLocationWithWatchSet.py
lldb/test/lldbtest.py
lldb/test/python_api/watchpoint/TestSetWatchpoint.py
lldb/test/python_api/watchpoint/TestWatchpointIgnoreCount.py
lldb/test/python_api/watchpoint/TestWatchpointIter.py
lldb/test/python_api/watchpoint/condition/TestWatchpointConditionAPI.py
lldb/test/python_api/watchpoint/watchlocation/TestSetWatchlocation.py
lldb/test/python_api/watchpoint/watchlocation/TestTargetWatchAddress.py

index b70b4f1..598e71d 100644 (file)
@@ -23,6 +23,7 @@ class HelloWatchLocationTestCase(TestBase):
 
     @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)
index b43228a..7a3cc29 100644 (file)
@@ -23,6 +23,7 @@ class HelloWatchpointTestCase(TestBase):
         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)
index a6d7a84..b818792 100644 (file)
@@ -22,6 +22,7 @@ class WatchpointForMultipleThreadsTestCase(TestBase):
         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()
@@ -37,6 +38,7 @@ class WatchpointForMultipleThreadsTestCase(TestBase):
         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()
index d4bccf9..d001390 100644 (file)
@@ -21,6 +21,7 @@ class TestStepOverWatchpoint(TestBase):
         self.step_over_watchpoint()
 
     @dwarf_test
+    @expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not supported
     def test_with_dwarf(self):
         """Test stepping over watchpoints."""
         self.buildDwarf()
index 74c5d11..cd8edf0 100644 (file)
@@ -35,6 +35,7 @@ class WatchpointCommandsTestCase(TestBase):
         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)
@@ -50,6 +51,7 @@ class WatchpointCommandsTestCase(TestBase):
         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)
@@ -65,6 +67,7 @@ class WatchpointCommandsTestCase(TestBase):
         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)
@@ -80,6 +83,7 @@ class WatchpointCommandsTestCase(TestBase):
         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)
@@ -95,6 +99,7 @@ class WatchpointCommandsTestCase(TestBase):
         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)
index 025d1f4..d2ba2ae 100644 (file)
@@ -34,6 +34,7 @@ class WatchpointLLDBCommandTestCase(TestBase):
         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)
@@ -49,6 +50,7 @@ class WatchpointLLDBCommandTestCase(TestBase):
         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)
index 0c6066d..f566fa1 100644 (file)
@@ -35,6 +35,7 @@ class WatchpointPythonCommandTestCase(TestBase):
 
     @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)
index 21e1d99..25080cd 100644 (file)
@@ -34,6 +34,7 @@ class WatchpointConditionCmdTestCase(TestBase):
         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)
index 25f10a9..c072d8d 100644 (file)
@@ -20,6 +20,7 @@ class TestWatchpointEvents (TestBase):
 
     @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()
index fa32db6..d2221de 100644 (file)
@@ -20,8 +20,9 @@ class WatchLocationUsingWatchpointSetTestCase(TestBase):
         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()
index cdd3a6f..483ddcf 100644 (file)
@@ -698,20 +698,23 @@ def expectedFailureWindows(bugnumber=None, compilers=None):
 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)
 
index 8c567c1..82c2aa9 100644 (file)
@@ -30,6 +30,7 @@ class SetWatchpointAPITestCase(TestBase):
 
     @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()
index 1412b9e..1fc32dd 100644 (file)
@@ -30,6 +30,7 @@ class WatchpointIgnoreCountTestCase(TestBase):
 
     @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()
index 592c040..1a39062 100644 (file)
@@ -30,6 +30,7 @@ class WatchpointIteratorTestCase(TestBase):
 
     @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()
index ae48e84..64abb36 100644 (file)
@@ -34,6 +34,7 @@ class WatchpointConditionAPITestCase(TestBase):
         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)
index 35f8f7d..c658393 100644 (file)
@@ -32,6 +32,7 @@ class SetWatchlocationAPITestCase(TestBase):
 
     @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()
index 65fd20c..2e3d77d 100644 (file)
@@ -32,6 +32,7 @@ class TargetWatchAddressAPITestCase(TestBase):
 
     @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()
@@ -47,6 +48,7 @@ class TargetWatchAddressAPITestCase(TestBase):
 
     @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()