1d0d07271SJordan Rupprechtimport re 2d0d07271SJordan Rupprecht 3d0d07271SJordan Rupprechtfrom lldbsuite.test.lldbtest import TestBase 4343f3de5SJonas Devliegherefrom lldbsuite.test.decorators import * 5343f3de5SJonas Devlieghere 6343f3de5SJonas Devlieghere 7d0d07271SJordan Rupprechtdef expectedFailureDwarf(bugnumber=None): 8d0d07271SJordan Rupprecht return expectedFailureAll(bugnumber, debug_info="dwarf") 9d0d07271SJordan Rupprecht 10d0d07271SJordan Rupprecht 11d0d07271SJordan Rupprechtclass TestDecoratorsNoDebugInfoClass(TestBase): 12343f3de5SJonas Devlieghere NO_DEBUG_INFO_TESTCASE = True 13343f3de5SJonas Devlieghere 14343f3de5SJonas Devlieghere @expectedFailureAll(debug_info="dwarf") 15d0d07271SJordan Rupprecht def test_decorator_xfail(self): 16343f3de5SJonas Devlieghere """Test that specifying a debug info category works for a NO_DEBUG_INFO_TESTCASE""" 17d0d07271SJordan Rupprecht 18d0d07271SJordan Rupprecht @expectedFailureDwarf 19d0d07271SJordan Rupprecht def test_decorator_xfail_bare_decorator(self): 20d0d07271SJordan Rupprecht """Same as test_decorator_xfail, but with a custom decorator w/ a bare syntax""" 21d0d07271SJordan Rupprecht 22d0d07271SJordan Rupprecht @expectedFailureDwarf() 23d0d07271SJordan Rupprecht def test_decorator_xfail_decorator_empty_args(self): 24d0d07271SJordan Rupprecht """Same as test_decorator_xfail, but with a custom decorator w/ no args""" 25d0d07271SJordan Rupprecht 26d0d07271SJordan Rupprecht @add_test_categories(["dwarf"]) 27d0d07271SJordan Rupprecht def test_add_test_categories(self): 28d0d07271SJordan Rupprecht # Note: the "dwarf" test category is ignored, because we don't generate any debug info test variants 29d0d07271SJordan Rupprecht self.assertIsNone(self.getDebugInfo()) 30d0d07271SJordan Rupprecht 31d0d07271SJordan Rupprecht @expectedFailureAll 32*a4c18137SMichael Buch def test_xfail_empty(self): 33d0d07271SJordan Rupprecht """Test that expectedFailureAll can be empty (but please just use expectedFailure)""" 34d0d07271SJordan Rupprecht self.fail() 35d0d07271SJordan Rupprecht 36d0d07271SJordan Rupprecht @expectedFailureAll(compiler=re.compile(".*")) 37d0d07271SJordan Rupprecht def test_xfail_regexp(self): 38d0d07271SJordan Rupprecht """Test that xfail can take a regex as a matcher""" 39d0d07271SJordan Rupprecht self.fail() 40d0d07271SJordan Rupprecht 41d0d07271SJordan Rupprecht @expectedFailureAll(compiler=no_match(re.compile(".*"))) 42d0d07271SJordan Rupprecht def test_xfail_no_match(self): 43d0d07271SJordan Rupprecht """Test that xfail can take a no_match matcher""" 44d0d07271SJordan Rupprecht pass 45d0d07271SJordan Rupprecht 46d0d07271SJordan Rupprecht @expectedFailureIf(condition=True) 47d0d07271SJordan Rupprecht def test_xfail_condition_true(self): 48d0d07271SJordan Rupprecht self.fail() 49d0d07271SJordan Rupprecht 50d0d07271SJordan Rupprecht @expectedFailureIf(condition=False) 51d0d07271SJordan Rupprecht def test_xfail_condition_false(self): 52d0d07271SJordan Rupprecht pass 53d0d07271SJordan Rupprecht 54d0d07271SJordan Rupprecht 55d0d07271SJordan Rupprechtclass TestDecorators(TestBase): 56d0d07271SJordan Rupprecht @expectedFailureAll(debug_info="dwarf") 57d0d07271SJordan Rupprecht def test_decorator_xfail(self): 58d0d07271SJordan Rupprecht """Test that expectedFailureAll fails for the debug_info variant""" 59d0d07271SJordan Rupprecht if self.getDebugInfo() == "dwarf": 60d0d07271SJordan Rupprecht self.fail() 61d0d07271SJordan Rupprecht 62d0d07271SJordan Rupprecht @skipIf(debug_info="dwarf") 63d0d07271SJordan Rupprecht def test_decorator_skip(self): 64d0d07271SJordan Rupprecht """Test that skipIf skips the debug_info variant""" 65d0d07271SJordan Rupprecht self.assertNotEqual(self.getDebugInfo(), "dwarf") 66d0d07271SJordan Rupprecht 67d0d07271SJordan Rupprecht @expectedFailureDwarf 68d0d07271SJordan Rupprecht def test_decorator_xfail2(self): 69d0d07271SJordan Rupprecht """Same as test_decorator_xfail, but with a custom decorator w/ a bare syntax""" 70d0d07271SJordan Rupprecht if self.getDebugInfo() == "dwarf": 71d0d07271SJordan Rupprecht self.fail() 72d0d07271SJordan Rupprecht 73d0d07271SJordan Rupprecht @expectedFailureDwarf() 74d0d07271SJordan Rupprecht def test_decorator_xfail3(self): 75d0d07271SJordan Rupprecht """Same as test_decorator_xfail, but with a custom decorator w/ no args""" 76d0d07271SJordan Rupprecht if self.getDebugInfo() == "dwarf": 77d0d07271SJordan Rupprecht self.fail() 78d0d07271SJordan Rupprecht 79d0d07271SJordan Rupprecht @add_test_categories(["dwarf"]) 80d0d07271SJordan Rupprecht def test_add_test_categories(self): 81d0d07271SJordan Rupprecht """Test that add_test_categories limits the kinds of debug info test variants""" 82d0d07271SJordan Rupprecht self.assertEqual(self.getDebugInfo(), "dwarf") 83d0d07271SJordan Rupprecht 84d0d07271SJordan Rupprecht @expectedFailureAll(compiler="fake", debug_info="dwarf") 85d0d07271SJordan Rupprecht def test_decorator_xfail_all(self): 86d0d07271SJordan Rupprecht """Test that expectedFailureAll requires all conditions to match to be xfail""" 87d0d07271SJordan Rupprecht 88d0d07271SJordan Rupprecht @skipIf(compiler="fake", debug_info="dwarf") 89d0d07271SJordan Rupprecht def test_decorator_skip2(self): 90d0d07271SJordan Rupprecht """Test that expectedFailureAll fails for the debug_info variant""" 91d0d07271SJordan Rupprecht # Note: the following assertion would fail, if this were not skipped: 92d0d07271SJordan Rupprecht # self.assertNotEqual(self.getDebugInfo(), "dwarf") 93d0d07271SJordan Rupprecht 94d0d07271SJordan Rupprecht @expectedFailureAll 95*a4c18137SMichael Buch def test_xfail_empty(self): 96d0d07271SJordan Rupprecht """Test that xfail can be empty""" 97d0d07271SJordan Rupprecht self.fail() 98d0d07271SJordan Rupprecht 99d0d07271SJordan Rupprecht @expectedFailureAll(compiler=re.compile(".*")) 100d0d07271SJordan Rupprecht def test_xfail_regexp(self): 101d0d07271SJordan Rupprecht """Test that xfail can take a regex as a matcher""" 102d0d07271SJordan Rupprecht self.fail() 103d0d07271SJordan Rupprecht 104d0d07271SJordan Rupprecht @expectedFailureAll(compiler=no_match(re.compile(".*"))) 105d0d07271SJordan Rupprecht def test_xfail_no_match(self): 106d0d07271SJordan Rupprecht """Test that xfail can take a no_match matcher""" 107d0d07271SJordan Rupprecht pass 108d0d07271SJordan Rupprecht 109d0d07271SJordan Rupprecht @expectedFailureIf(condition=True) 110d0d07271SJordan Rupprecht def test_xfail_condition_true(self): 111d0d07271SJordan Rupprecht self.fail() 112d0d07271SJordan Rupprecht 113d0d07271SJordan Rupprecht @expectedFailureIf(condition=False) 114d0d07271SJordan Rupprecht def test_xfail_condition_false(self): 115343f3de5SJonas Devlieghere pass 116