[PATCH] D80096: [lit] GoogleTest framework should report failures if test binary crashes

Stephen Neuendorffer via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue May 19 15:28:02 PDT 2020


stephenneuendorffer updated this revision to Diff 265063.

Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D80096/new/

https://reviews.llvm.org/D80096

Files:
  llvm/utils/lit/lit/formats/googletest.py
  llvm/utils/lit/tests/Inputs/googletest-brokendiscovery/DummySubDir/OneTest.py
  llvm/utils/lit/tests/Inputs/googletest-brokendiscovery/lit.cfg
  llvm/utils/lit/tests/googletest-brokendiscovery.py


Index: llvm/utils/lit/tests/googletest-brokendiscovery.py
===================================================================
--- /dev/null
+++ llvm/utils/lit/tests/googletest-brokendiscovery.py
@@ -0,0 +1,11 @@
+# Check that the per test timeout is enforced when running GTest tests.
+#
+# RUN: not %{lit} -j 1 -v %{inputs}/googletest-brokendiscovery > %t.cmd.out
+# RUN: FileCheck < %t.cmd.out %s
+
+
+# CHECK: -- Testing:
+# CHECK: Failing Tests (1):
+# CHECK:   googletest-brokendiscovery :: {{[Dd]ummy[Ss]ub[Dd]ir}}/OneTest.py/failed_to_discover_tests_from_gtest
+# CHECK: Unexpected Failures: 1
+
Index: llvm/utils/lit/tests/Inputs/googletest-brokendiscovery/lit.cfg
===================================================================
--- /dev/null
+++ llvm/utils/lit/tests/Inputs/googletest-brokendiscovery/lit.cfg
@@ -0,0 +1,4 @@
+import lit.formats
+config.name = 'googletest-brokendiscovery'
+config.test_format = lit.formats.GoogleTest('DummySubDir', 'Test')
+
Index: llvm/utils/lit/tests/Inputs/googletest-brokendiscovery/DummySubDir/OneTest.py
===================================================================
--- /dev/null
+++ llvm/utils/lit/tests/Inputs/googletest-brokendiscovery/DummySubDir/OneTest.py
@@ -0,0 +1,6 @@
+#!/usr/bin/env python
+
+import sys
+import time
+
+raise SystemExit("We are not a valid gtest executable!")
Index: llvm/utils/lit/lit/formats/googletest.py
===================================================================
--- llvm/utils/lit/lit/formats/googletest.py
+++ 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 = []


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D80096.265063.patch
Type: text/x-patch
Size: 2303 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200519/29602cea/attachment.bin>


More information about the llvm-commits mailing list