diff --git a/llvm/utils/lit/lit/formats/googletest.py b/llvm/utils/lit/lit/formats/googletest.py --- a/llvm/utils/lit/lit/formats/googletest.py +++ b/llvm/utils/lit/lit/formats/googletest.py @@ -41,6 +41,14 @@ litConfig.warning( "unable to discover google-tests in %r: %s. Process output: %s" % (path, sys.exc_info()[1], exc.output)) + # This doesn't look like a valid gtest file. This can + # have a number of causes, none of them good. For + # instance, we could have created a broken executable. + # Alternatively, someone has cruft in their test + # directory. If we don't return a test here, then no + # failures will get reported, so return a dummy test name + # so that the failure is reported later. + yield 'failed_to_discover_tests_from_gtest' return nested_tests = [] diff --git a/llvm/utils/lit/tests/Inputs/googletest-discovery-failed/lit.cfg b/llvm/utils/lit/tests/Inputs/googletest-discovery-failed/lit.cfg new file mode 100644 --- /dev/null +++ b/llvm/utils/lit/tests/Inputs/googletest-discovery-failed/lit.cfg @@ -0,0 +1,3 @@ +import lit.formats +config.name = 'googletest-discovery-failed' +config.test_format = lit.formats.GoogleTest('subdir', 'Test') diff --git a/llvm/utils/lit/tests/Inputs/googletest-discovery-failed/subdir/OneTest.py b/llvm/utils/lit/tests/Inputs/googletest-discovery-failed/subdir/OneTest.py new file mode 100644 --- /dev/null +++ b/llvm/utils/lit/tests/Inputs/googletest-discovery-failed/subdir/OneTest.py @@ -0,0 +1,3 @@ +#!/usr/bin/env python + +raise SystemExit("We are not a valid gtest executable!") diff --git a/llvm/utils/lit/tests/googletest-discovery-failed.py b/llvm/utils/lit/tests/googletest-discovery-failed.py new file mode 100644 --- /dev/null +++ b/llvm/utils/lit/tests/googletest-discovery-failed.py @@ -0,0 +1,10 @@ +# Check for correct error message when discovery of tests fails. +# +# RUN: not %{lit} -j 1 -v %{inputs}/googletest-discovery-failed > %t.cmd.out +# RUN: FileCheck < %t.cmd.out %s + + +# CHECK: -- Testing: +# CHECK: Failing Tests (1): +# CHECK: googletest-discovery-failed :: subdir/OneTest.py/failed_to_discover_tests_from_gtest +# CHECK: Unexpected Failures: 1