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