[lit] Print full googletest commad line

Similar to regular output of LIT tests:
c162f086ba/llvm/utils/lit/lit/TestRunner.py (L1569)

Differential Revision: https://reviews.llvm.org/D102899
This commit is contained in:
Vitaly Buka 2021-05-21 11:27:44 -07:00
parent 033138ea45
commit 01c5904907
4 changed files with 50 additions and 22 deletions

View File

@ -122,27 +122,28 @@ class GoogleTest(TestFormat):
if litConfig.noExecute: if litConfig.noExecute:
return lit.Test.PASS, '' return lit.Test.PASS, ''
header = f"Script:\n--\n{' '.join(cmd)}\n--\n"
try: try:
out, err, exitCode = lit.util.executeCommand( out, err, exitCode = lit.util.executeCommand(
cmd, env=test.config.environment, cmd, env=test.config.environment,
timeout=litConfig.maxIndividualTestTime) timeout=litConfig.maxIndividualTestTime)
except lit.util.ExecuteCommandTimeoutException: except lit.util.ExecuteCommandTimeoutException:
return (lit.Test.TIMEOUT, return (lit.Test.TIMEOUT,
'Reached timeout of {} seconds'.format( f'{header}Reached timeout of '
litConfig.maxIndividualTestTime) f'{litConfig.maxIndividualTestTime} seconds')
)
if exitCode: if exitCode:
return lit.Test.FAIL, out + err return lit.Test.FAIL, header + out + err
if '[ SKIPPED ] 1 test,' in out: if '[ SKIPPED ] 1 test,' in out:
return lit.Test.SKIPPED, '' return lit.Test.SKIPPED, ''
passing_test_line = '[ PASSED ] 1 test.' passing_test_line = '[ PASSED ] 1 test.'
if passing_test_line not in out: if passing_test_line not in out:
msg = ('Unable to find %r in gtest output:\n\n%s%s' % return (lit.Test.UNRESOLVED,
(passing_test_line, out, err)) f'{header}Unable to find {passing_test_line} '
return lit.Test.UNRESOLVED, msg f'in gtest output:\n\n{out}{err}')
return lit.Test.PASS,'' return lit.Test.PASS,''

View File

@ -12,16 +12,27 @@
# END. # END.
# CHECK: -- Testing: # CHECK: -- Testing:
# CHECK: PASS: googletest-format :: {{[Dd]ummy[Ss]ub[Dd]ir}}/OneTest.py/FirstTest.subTestA # CHECK: PASS: googletest-format :: [[PATH:[Dd]ummy[Ss]ub[Dd]ir/]][[FILE:OneTest\.py]]/FirstTest.subTestA
# CHECK: FAIL: googletest-format :: {{[Dd]ummy[Ss]ub[Dd]ir}}/OneTest.py/FirstTest.subTestB # CHECK: FAIL: googletest-format :: [[PATH]][[FILE]]/[[TEST:FirstTest\.subTestB]]
# CHECK-NEXT: *** TEST 'googletest-format :: {{[Dd]ummy[Ss]ub[Dd]ir}}/OneTest.py/FirstTest.subTestB' FAILED *** # CHECK-NEXT: *** TEST 'googletest-format :: [[PATH]][[FILE]]/[[TEST]]' FAILED ***
# CHECK-NEXT: Script:
# CHECK-NEXT: --
# CHECK-NEXT: [[FILE]] --gtest_filter=[[TEST]]
# CHECK-NEXT: --
# CHECK-NEXT: I am subTest B, I FAIL # CHECK-NEXT: I am subTest B, I FAIL
# CHECK-NEXT: And I have two lines of output # CHECK-NEXT: And I have two lines of output
# CHECK: *** # CHECK: ***
# CHECK: SKIPPED: googletest-format :: {{[Dd]ummy[Ss]ub[Dd]ir}}/OneTest.py/FirstTest.subTestC # CHECK: SKIPPED: googletest-format :: [[PATH]][[FILE]]/FirstTest.subTestC
# CHECK: UNRESOLVED: googletest-format :: {{[Dd]ummy[Ss]ub[Dd]ir}}/OneTest.py/FirstTest.subTestD # CHECK: UNRESOLVED: googletest-format :: [[PATH]][[FILE]]/[[TEST:FirstTest\.subTestD]]
# CHECK: PASS: googletest-format :: {{[Dd]ummy[Ss]ub[Dd]ir}}/OneTest.py/ParameterizedTest/0.subTest # CHECK-NEXT: *** TEST 'googletest-format :: [[PATH]][[FILE]]/[[TEST]]' FAILED ***
# CHECK: PASS: googletest-format :: {{[Dd]ummy[Ss]ub[Dd]ir}}/OneTest.py/ParameterizedTest/1.subTest # CHECK-NEXT: Script:
# CHECK-NEXT: --
# CHECK-NEXT: [[FILE]] --gtest_filter=[[TEST]]
# CHECK-NEXT: --
# CHECK-NEXT: Unable to find [ PASSED ] 1 test. in gtest output
# CHECK: I am subTest D, I am UNRESOLVED
# CHECK: PASS: googletest-format :: [[PATH]][[FILE]]/ParameterizedTest/0.subTest
# CHECK: PASS: googletest-format :: [[PATH]][[FILE]]/ParameterizedTest/1.subTest
# CHECK: Failed Tests (1) # CHECK: Failed Tests (1)
# CHECK: Skipped{{ *}}: 1 # CHECK: Skipped{{ *}}: 1
# CHECK: Passed{{ *}}: 3 # CHECK: Passed{{ *}}: 3

View File

@ -19,7 +19,12 @@
# RUN: FileCheck --check-prefix=CHECK-INF < %t.cfgset.out %s # RUN: FileCheck --check-prefix=CHECK-INF < %t.cfgset.out %s
# CHECK-INF: -- Testing: # CHECK-INF: -- Testing:
# CHECK-INF: TIMEOUT: googletest-timeout :: {{[Dd]ummy[Ss]ub[Dd]ir}}/OneTest.py/T.InfiniteLoopSubTest # CHECK-INF: TIMEOUT: googletest-timeout :: [[PATH:[Dd]ummy[Ss]ub[Dd]ir/]][[FILE:OneTest\.py]]/[[TEST:T\.InfiniteLoopSubTest]]
# CHECK-INF-NEXT: ******************** TEST 'googletest-timeout :: [[PATH]][[FILE]]/[[TEST]]' FAILED ********************
# CHECK-INF-NEXT: Script:
# CHECK-INF-NEXT: --
# CHECK-INF-NEXT: [[FILE]] --gtest_filter=[[TEST]]
# CHECK-INF-NEXT: --
# CHECK-INF: Timed Out: 1 # CHECK-INF: Timed Out: 1
############################################################################### ###############################################################################

View File

@ -9,17 +9,28 @@
# END. # END.
# CHECK: -- Testing: # CHECK: -- Testing:
# CHECK: PASS: googletest-upstream-format :: {{[Dd]ummy[Ss]ub[Dd]ir}}/OneTest.py/FirstTest.subTestA # CHECK: PASS: googletest-upstream-format :: [[PATH:[Dd]ummy[Ss]ub[Dd]ir/]][[FILE:OneTest\.py]]/FirstTest.subTestA
# CHECK: FAIL: googletest-upstream-format :: {{[Dd]ummy[Ss]ub[Dd]ir}}/OneTest.py/FirstTest.subTestB # CHECK: FAIL: googletest-upstream-format :: [[PATH]][[FILE]]/[[TEST:FirstTest\.subTestB]]
# CHECK-NEXT: *** TEST 'googletest-upstream-format :: {{[Dd]ummy[Ss]ub[Dd]ir}}/OneTest.py/FirstTest.subTestB' FAILED *** # CHECK-NEXT: *** TEST 'googletest-upstream-format :: [[PATH]][[FILE]]/[[TEST]]' FAILED ***
# CHECK-NEXT: Script:
# CHECK-NEXT: --
# CHECK-NEXT: [[FILE]] --gtest_filter=[[TEST]]
# CHECK-NEXT: --
# CHECK-NEXT: Running main() from gtest_main.cc # CHECK-NEXT: Running main() from gtest_main.cc
# CHECK-NEXT: I am subTest B, I FAIL # CHECK-NEXT: I am subTest B, I FAIL
# CHECK-NEXT: And I have two lines of output # CHECK-NEXT: And I have two lines of output
# CHECK: SKIPPED: googletest-upstream-format :: [[PATH]][[FILE]]/FirstTest.subTestC
# CHECK: UNRESOLVED: googletest-upstream-format :: [[PATH]][[FILE]]/[[TEST:FirstTest\.subTestD]]
# CHECK-NEXT: *** TEST 'googletest-upstream-format :: [[PATH]][[FILE]]/[[TEST]]' FAILED ***
# CHECK-NEXT: Script:
# CHECK-NEXT: --
# CHECK-NEXT: [[FILE]] --gtest_filter=[[TEST]]
# CHECK-NEXT: --
# CHECK-NEXT: Unable to find [ PASSED ] 1 test. in gtest output
# CHECK: I am subTest D, I am UNRESOLVED
# CHECK: *** # CHECK: ***
# CHECK: SKIPPED: googletest-upstream-format :: {{[Dd]ummy[Ss]ub[Dd]ir}}/OneTest.py/FirstTest.subTestC # CHECK: PASS: googletest-upstream-format :: [[PATH]][[FILE]]/ParameterizedTest/0.subTest
# CHECK: UNRESOLVED: googletest-upstream-format :: {{[Dd]ummy[Ss]ub[Dd]ir}}/OneTest.py/FirstTest.subTestD # CHECK: PASS: googletest-upstream-format :: [[PATH]][[FILE]]/ParameterizedTest/1.subTest
# CHECK: PASS: googletest-upstream-format :: {{[Dd]ummy[Ss]ub[Dd]ir}}/OneTest.py/ParameterizedTest/0.subTest
# CHECK: PASS: googletest-upstream-format :: {{[Dd]ummy[Ss]ub[Dd]ir}}/OneTest.py/ParameterizedTest/1.subTest
# CHECK: Failed Tests (1) # CHECK: Failed Tests (1)
# CHECK: Skipped{{ *}}: 1 # CHECK: Skipped{{ *}}: 1
# CHECK: Passed{{ *}}: 3 # CHECK: Passed{{ *}}: 3