diff options
-rw-r--r-- | llvm/utils/lit/tests/Inputs/xunit-output/bad&name.ini (renamed from llvm/utils/lit/tests/Inputs/test-data/bad&name.ini) | 2 | ||||
-rw-r--r-- | llvm/utils/lit/tests/Inputs/xunit-output/dummy_format.py | 38 | ||||
-rw-r--r-- | llvm/utils/lit/tests/Inputs/xunit-output/lit.cfg | 10 | ||||
-rw-r--r-- | llvm/utils/lit/tests/test-output.py | 8 | ||||
-rw-r--r-- | llvm/utils/lit/tests/xunit-output.py | 10 |
5 files changed, 59 insertions, 9 deletions
diff --git a/llvm/utils/lit/tests/Inputs/test-data/bad&name.ini b/llvm/utils/lit/tests/Inputs/xunit-output/bad&name.ini index 16b6b96d5f9..8dfc6852b24 100644 --- a/llvm/utils/lit/tests/Inputs/test-data/bad&name.ini +++ b/llvm/utils/lit/tests/Inputs/xunit-output/bad&name.ini @@ -1,5 +1,5 @@ [global] -result_code = PASS +result_code = FAIL result_output = & < > " [results] diff --git a/llvm/utils/lit/tests/Inputs/xunit-output/dummy_format.py b/llvm/utils/lit/tests/Inputs/xunit-output/dummy_format.py new file mode 100644 index 00000000000..93e48eeb839 --- /dev/null +++ b/llvm/utils/lit/tests/Inputs/xunit-output/dummy_format.py @@ -0,0 +1,38 @@ +import os +try: + import ConfigParser +except ImportError: + import configparser as ConfigParser + +import lit.formats +import lit.Test + +class DummyFormat(lit.formats.FileBasedTest): + def execute(self, test, lit_config): + # In this dummy format, expect that each test file is actually just a + # .ini format dump of the results to report. + + source_path = test.getSourcePath() + + cfg = ConfigParser.ConfigParser() + cfg.read(source_path) + + # Create the basic test result. + result_code = cfg.get('global', 'result_code') + result_output = cfg.get('global', 'result_output') + result = lit.Test.Result(getattr(lit.Test, result_code), + result_output) + + # Load additional metrics. + for key,value_str in cfg.items('results'): + value = eval(value_str) + if isinstance(value, int): + metric = lit.Test.IntMetricValue(value) + elif isinstance(value, float): + metric = lit.Test.RealMetricValue(value) + else: + raise RuntimeError("unsupported result type") + result.addMetric(key, metric) + + return result + diff --git a/llvm/utils/lit/tests/Inputs/xunit-output/lit.cfg b/llvm/utils/lit/tests/Inputs/xunit-output/lit.cfg new file mode 100644 index 00000000000..0191cc21888 --- /dev/null +++ b/llvm/utils/lit/tests/Inputs/xunit-output/lit.cfg @@ -0,0 +1,10 @@ +import site +site.addsitedir(os.path.dirname(__file__)) +import dummy_format + +config.name = 'test-data' +config.suffixes = ['.ini'] +config.test_format = dummy_format.DummyFormat() +config.test_source_root = None +config.test_exec_root = None +config.target_triple = None diff --git a/llvm/utils/lit/tests/test-output.py b/llvm/utils/lit/tests/test-output.py index 2539367b21a..a50442741b9 100644 --- a/llvm/utils/lit/tests/test-output.py +++ b/llvm/utils/lit/tests/test-output.py @@ -12,8 +12,8 @@ # CHECK-NEXT: "value0": 1, # CHECK-NEXT: "value1": 2.3456 # CHECK-NEXT: } -# CHECK: "name": "test-data :: bad&name.ini", -# CHECK: "output": "& < > \"" - -# CHECK: ] +# CHECK-NEXT: "name": "test-data :: metrics.ini", +# CHECK-NEXT: "output": "Test passed." +# CHECK-NEXT: } +# CHECK-NEXT: ] # CHECK-NEXT: } diff --git a/llvm/utils/lit/tests/xunit-output.py b/llvm/utils/lit/tests/xunit-output.py index 396f10e95c8..d628429a9b5 100644 --- a/llvm/utils/lit/tests/xunit-output.py +++ b/llvm/utils/lit/tests/xunit-output.py @@ -1,11 +1,13 @@ # Check xunit output -# RUN: %{lit} --xunit-xml-output %t.xunit.xml %{inputs}/test-data +# RUN: %{lit} --xunit-xml-output %t.xunit.xml %{inputs}/xunit-output || true # RUN: FileCheck < %t.xunit.xml %s # CHECK: <?xml version="1.0" encoding="UTF-8" ?> # CHECK: <testsuites> -# CHECK: <testsuite name='test-data' tests='2' failures='0'> -# CHECK: <testcase classname='test-data.test-data' name='bad&name.ini' time='{{[0-1]}}.{{[0-9]+}}'/> -# CHECK: <testcase classname='test-data.test-data' name='metrics.ini' time='{{[0-1]}}.{{[0-9]+}}'/> +# CHECK: <testsuite name='test-data' tests='1' failures='1'> +# CHECK: <testcase classname='test-data.test-data' name='bad&name.ini' time='{{[0-1]}}.{{[0-9]+}}'> +# CHECK-NEXT: <failure > +# CHECK-NEXT:& < > " +# CHECK-NEXT:</failure> # CHECK: </testsuite> # CHECK: </testsuites> |