diff options
Diffstat (limited to 'gnu/llvm/utils/lit/tests/unit/TestRunner.py')
| -rw-r--r-- | gnu/llvm/utils/lit/tests/unit/TestRunner.py | 172 |
1 files changed, 0 insertions, 172 deletions
diff --git a/gnu/llvm/utils/lit/tests/unit/TestRunner.py b/gnu/llvm/utils/lit/tests/unit/TestRunner.py deleted file mode 100644 index 89209d80f55..00000000000 --- a/gnu/llvm/utils/lit/tests/unit/TestRunner.py +++ /dev/null @@ -1,172 +0,0 @@ -# RUN: %{python} %s -# -# END. - - -import unittest -import platform -import os.path -import tempfile - -import lit -from lit.TestRunner import ParserKind, IntegratedTestKeywordParser, \ - parseIntegratedTestScript - - -class TestIntegratedTestKeywordParser(unittest.TestCase): - inputTestCase = None - - @staticmethod - def load_keyword_parser_lit_tests(): - """ - Create and load the LIT test suite and test objects used by - TestIntegratedTestKeywordParser - """ - # Create the global config object. - lit_config = lit.LitConfig.LitConfig(progname='lit', - path=[], - quiet=False, - useValgrind=False, - valgrindLeakCheck=False, - singleProcess=False, - valgrindArgs=[], - noExecute=False, - debug=False, - isWindows=( - platform.system() == 'Windows'), - params={}) - TestIntegratedTestKeywordParser.litConfig = lit_config - # Perform test discovery. - test_path = os.path.dirname(os.path.dirname(__file__)) - inputs = [os.path.join(test_path, 'Inputs/testrunner-custom-parsers/')] - assert os.path.isdir(inputs[0]) - run = lit.run.Run(lit_config, - lit.discovery.find_tests_for_inputs(lit_config, inputs)) - assert len(run.tests) == 1 and "there should only be one test" - TestIntegratedTestKeywordParser.inputTestCase = run.tests[0] - - @staticmethod - def make_parsers(): - def custom_parse(line_number, line, output): - if output is None: - output = [] - output += [part for part in line.split(' ') if part.strip()] - return output - - return [ - IntegratedTestKeywordParser("MY_TAG.", ParserKind.TAG), - IntegratedTestKeywordParser("MY_DNE_TAG.", ParserKind.TAG), - IntegratedTestKeywordParser("MY_LIST:", ParserKind.LIST), - IntegratedTestKeywordParser("MY_RUN:", ParserKind.COMMAND), - IntegratedTestKeywordParser("MY_CUSTOM:", ParserKind.CUSTOM, - custom_parse) - ] - - @staticmethod - def get_parser(parser_list, keyword): - for p in parser_list: - if p.keyword == keyword: - return p - assert False and "parser not found" - - @staticmethod - def parse_test(parser_list): - script = parseIntegratedTestScript( - TestIntegratedTestKeywordParser.inputTestCase, - additional_parsers=parser_list, require_script=False) - assert not isinstance(script, lit.Test.Result) - assert isinstance(script, list) - assert len(script) == 0 - - def test_tags(self): - parsers = self.make_parsers() - self.parse_test(parsers) - tag_parser = self.get_parser(parsers, 'MY_TAG.') - dne_tag_parser = self.get_parser(parsers, 'MY_DNE_TAG.') - self.assertTrue(tag_parser.getValue()) - self.assertFalse(dne_tag_parser.getValue()) - - def test_lists(self): - parsers = self.make_parsers() - self.parse_test(parsers) - list_parser = self.get_parser(parsers, 'MY_LIST:') - self.assertEqual(list_parser.getValue(), - ['one', 'two', 'three', 'four']) - - def test_commands(self): - parsers = self.make_parsers() - self.parse_test(parsers) - cmd_parser = self.get_parser(parsers, 'MY_RUN:') - value = cmd_parser.getValue() - self.assertEqual(len(value), 2) # there are only two run lines - self.assertEqual(value[0].strip(), "%dbg(MY_RUN: at line 4) baz") - self.assertEqual(value[1].strip(), "%dbg(MY_RUN: at line 7) foo bar") - - def test_custom(self): - parsers = self.make_parsers() - self.parse_test(parsers) - custom_parser = self.get_parser(parsers, 'MY_CUSTOM:') - value = custom_parser.getValue() - self.assertEqual(value, ['a', 'b', 'c']) - - def test_bad_keywords(self): - def custom_parse(line_number, line, output): - return output - - try: - IntegratedTestKeywordParser("TAG_NO_SUFFIX", ParserKind.TAG), - self.fail("TAG_NO_SUFFIX failed to raise an exception") - except ValueError as e: - pass - except BaseException as e: - self.fail("TAG_NO_SUFFIX raised the wrong exception: %r" % e) - - try: - IntegratedTestKeywordParser("TAG_WITH_COLON:", ParserKind.TAG), - self.fail("TAG_WITH_COLON: failed to raise an exception") - except ValueError as e: - pass - except BaseException as e: - self.fail("TAG_WITH_COLON: raised the wrong exception: %r" % e) - - try: - IntegratedTestKeywordParser("LIST_WITH_DOT.", ParserKind.LIST), - self.fail("LIST_WITH_DOT. failed to raise an exception") - except ValueError as e: - pass - except BaseException as e: - self.fail("LIST_WITH_DOT. raised the wrong exception: %r" % e) - - try: - IntegratedTestKeywordParser("CUSTOM_NO_SUFFIX", - ParserKind.CUSTOM, custom_parse), - self.fail("CUSTOM_NO_SUFFIX failed to raise an exception") - except ValueError as e: - pass - except BaseException as e: - self.fail("CUSTOM_NO_SUFFIX raised the wrong exception: %r" % e) - - # Both '.' and ':' are allowed for CUSTOM keywords. - try: - IntegratedTestKeywordParser("CUSTOM_WITH_DOT.", - ParserKind.CUSTOM, custom_parse), - except BaseException as e: - self.fail("CUSTOM_WITH_DOT. raised an exception: %r" % e) - try: - IntegratedTestKeywordParser("CUSTOM_WITH_COLON:", - ParserKind.CUSTOM, custom_parse), - except BaseException as e: - self.fail("CUSTOM_WITH_COLON: raised an exception: %r" % e) - - try: - IntegratedTestKeywordParser("CUSTOM_NO_PARSER:", - ParserKind.CUSTOM), - self.fail("CUSTOM_NO_PARSER: failed to raise an exception") - except ValueError as e: - pass - except BaseException as e: - self.fail("CUSTOM_NO_PARSER: raised the wrong exception: %r" % e) - -if __name__ == '__main__': - TestIntegratedTestKeywordParser.load_keyword_parser_lit_tests() - unittest.main(verbosity=2) |
