forked from llvm-mirror/llvm
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[lit][googletest] Handle upstream gtest output
Summary: Upstream googletest prints "Running main() from gtest_main.cc" to stdout prior to running tests. LLVM removed that print statement in r61540. If a user were to use lit to run tests that use upstream googletest, however, lit reports "Running main()" as an invalid test name. To avoid such a failure, add an extra conditional to `formats/googletest.py`. Also add tests to demonstrate the modified behavior. Reviewers: abdulras, ddunbar Subscribers: ddunbar, llvm-commits, kastiglione Differential Revision: http://reviews.llvm.org/D18606 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@265034 91177308-0d34-0410-b5e6-96231b3b80d8
- Loading branch information
Showing
4 changed files
with
67 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
38 changes: 38 additions & 0 deletions
38
utils/lit/tests/Inputs/googletest-upstream-format/DummySubDir/OneTest
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
#!/usr/bin/env python | ||
|
||
import sys | ||
|
||
if len(sys.argv) != 2: | ||
raise ValueError("unexpected number of args") | ||
|
||
if sys.argv[1] == "--gtest_list_tests": | ||
print("""\ | ||
Running main() from gtest_main.cc | ||
FirstTest. | ||
subTestA | ||
subTestB | ||
ParameterizedTest/0. | ||
subTest | ||
ParameterizedTest/1. | ||
subTest""") | ||
sys.exit(0) | ||
elif not sys.argv[1].startswith("--gtest_filter="): | ||
raise ValueError("unexpected argument: %r" % (sys.argv[1])) | ||
|
||
test_name = sys.argv[1].split('=',1)[1] | ||
print('Running main() from gtest_main.cc') | ||
if test_name == 'FirstTest.subTestA': | ||
print('I am subTest A, I PASS') | ||
print('[ PASSED ] 1 test.') | ||
sys.exit(0) | ||
elif test_name == 'FirstTest.subTestB': | ||
print('I am subTest B, I FAIL') | ||
print('And I have two lines of output') | ||
sys.exit(1) | ||
elif test_name in ('ParameterizedTest/0.subTest', | ||
'ParameterizedTest/1.subTest'): | ||
print('I am a parameterized test, I also PASS') | ||
print('[ PASSED ] 1 test.') | ||
sys.exit(0) | ||
else: | ||
raise SystemExit("error: invalid test name: %r" % (test_name,)) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
import lit.formats | ||
config.name = 'googletest-upstream-format' | ||
config.test_format = lit.formats.GoogleTest('DummySubDir', 'Test') |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
# Check the various features of the GoogleTest format. | ||
# | ||
# RUN: not %{lit} -j 1 -v %{inputs}/googletest-upstream-format > %t.out | ||
# RUN: FileCheck < %t.out %s | ||
# | ||
# END. | ||
|
||
# CHECK: -- Testing: | ||
# CHECK: PASS: googletest-upstream-format :: DummySubDir/OneTest/FirstTest.subTestA | ||
# CHECK: FAIL: googletest-upstream-format :: DummySubDir/OneTest/FirstTest.subTestB | ||
# CHECK-NEXT: *** TEST 'googletest-upstream-format :: DummySubDir/OneTest/FirstTest.subTestB' FAILED *** | ||
# CHECK-NEXT: Running main() from gtest_main.cc | ||
# CHECK-NEXT: I am subTest B, I FAIL | ||
# CHECK-NEXT: And I have two lines of output | ||
# CHECK: *** | ||
# CHECK: PASS: googletest-upstream-format :: DummySubDir/OneTest/ParameterizedTest/0.subTest | ||
# CHECK: PASS: googletest-upstream-format :: DummySubDir/OneTest/ParameterizedTest/1.subTest | ||
# CHECK: Failing Tests (1) | ||
# CHECK: Expected Passes : 3 | ||
# CHECK: Unexpected Failures: 1 |