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 @@ -122,24 +122,25 @@ if litConfig.noExecute: return lit.Test.PASS, '' + header = f"Script:\n--\n{' '.join(cmd)}\n--\n" + try: out, err, exitCode = lit.util.executeCommand( cmd, env=test.config.environment, timeout=litConfig.maxIndividualTestTime) except lit.util.ExecuteCommandTimeoutException: return (lit.Test.TIMEOUT, - 'Reached timeout of {} seconds'.format( - litConfig.maxIndividualTestTime) - ) + f'{header}Reached timeout of ' + f'{litConfig.maxIndividualTestTime} seconds') if exitCode: - return lit.Test.FAIL, out + err + return lit.Test.FAIL, header + out + err passing_test_line = '[ PASSED ] 1 test.' if passing_test_line not in out: - msg = ('Unable to find %r in gtest output:\n\n%s%s' % - (passing_test_line, out, err)) - return lit.Test.UNRESOLVED, msg + return (lit.Test.UNRESOLVED, + f'{header}Unable to find {passing_test_line} ' + f'in gtest output:\n\n{out}{err}') return lit.Test.PASS,'' diff --git a/llvm/utils/lit/tests/Inputs/googletest-format/DummySubDir/OneTest.py b/llvm/utils/lit/tests/Inputs/googletest-format/DummySubDir/OneTest.py --- a/llvm/utils/lit/tests/Inputs/googletest-format/DummySubDir/OneTest.py +++ b/llvm/utils/lit/tests/Inputs/googletest-format/DummySubDir/OneTest.py @@ -10,6 +10,7 @@ FirstTest. subTestA subTestB + subTestC ParameterizedTest/0. subTest ParameterizedTest/1. @@ -27,6 +28,9 @@ print('I am subTest B, I FAIL') print('And I have two lines of output') sys.exit(1) +elif test_name == 'FirstTest.subTestC': + print('I am subTest C, I am UNRESOLVED') + sys.exit(0) elif test_name in ('ParameterizedTest/0.subTest', 'ParameterizedTest/1.subTest'): print('I am a parameterized test, I also PASS') diff --git a/llvm/utils/lit/tests/Inputs/googletest-upstream-format/DummySubDir/OneTest.py b/llvm/utils/lit/tests/Inputs/googletest-upstream-format/DummySubDir/OneTest.py --- a/llvm/utils/lit/tests/Inputs/googletest-upstream-format/DummySubDir/OneTest.py +++ b/llvm/utils/lit/tests/Inputs/googletest-upstream-format/DummySubDir/OneTest.py @@ -11,6 +11,7 @@ FirstTest. subTestA subTestB + subTestC ParameterizedTest/0. subTest ParameterizedTest/1. @@ -29,6 +30,9 @@ print('I am subTest B, I FAIL') print('And I have two lines of output') sys.exit(1) +elif test_name == 'FirstTest.subTestC': + print('I am subTest C, I am UNRESOLVED') + sys.exit(0) elif test_name in ('ParameterizedTest/0.subTest', 'ParameterizedTest/1.subTest'): print('I am a parameterized test, I also PASS') diff --git a/llvm/utils/lit/tests/googletest-format.py b/llvm/utils/lit/tests/googletest-format.py --- a/llvm/utils/lit/tests/googletest-format.py +++ b/llvm/utils/lit/tests/googletest-format.py @@ -13,14 +13,27 @@ # CHECK: -- Testing: # CHECK: PASS: googletest-format :: {{[Dd]ummy[Ss]ub[Dd]ir}}/OneTest.py/FirstTest.subTestA -# CHECK: FAIL: googletest-format :: {{[Dd]ummy[Ss]ub[Dd]ir}}/OneTest.py/FirstTest.subTestB -# CHECK-NEXT: *** TEST 'googletest-format :: {{[Dd]ummy[Ss]ub[Dd]ir}}/OneTest.py/FirstTest.subTestB' FAILED *** +# CHECK: FAIL: googletest-format :: [[TEST:[Dd]ummy[Ss]ub[Dd]ir/OneTest.py]]/[[FILTER:FirstTest.subTestB]] +# CHECK-NEXT: *** TEST 'googletest-format :: [[TEST]]/[[FILTER]]' FAILED *** +# CHECK-NEXT: Script: +# CHECK-NEXT: -- +# CHECK-NEXT: [[TEST]] --gtest_filter=[[FILTER]] +# CHECK-NEXT: -- # CHECK-NEXT: I am subTest B, I FAIL # CHECK-NEXT: And I have two lines of output +# CHECK: UNRESOLVED: googletest-format :: [[TEST:[Dd]ummy[Ss]ub[Dd]ir/OneTest.py]]/[[FILTER:FirstTest.subTestC]] +# CHECK-NEXT: *** TEST 'googletest-format :: [[TEST]]/[[FILTER]]' FAILED *** +# CHECK-NEXT: Script: +# CHECK-NEXT: -- +# CHECK-NEXT: [[TEST]] --gtest_filter=[[FILTER]] +# CHECK-NEXT: -- +# CHECK-NEXT: Unable to find [ PASSED ] 1 test. in gtest output +# CHECK: I am subTest C, I am UNRESOLVED # CHECK: *** # CHECK: PASS: googletest-format :: {{[Dd]ummy[Ss]ub[Dd]ir}}/OneTest.py/ParameterizedTest/0.subTest # CHECK: PASS: googletest-format :: {{[Dd]ummy[Ss]ub[Dd]ir}}/OneTest.py/ParameterizedTest/1.subTest # CHECK: Failed Tests (1) -# CHECK: Passed: 3 -# CHECK: Failed: 1 +# CHECK: Passed : 3 +# CHECK: Unresolved: 1 +# CHECK: Failed : 1 diff --git a/llvm/utils/lit/tests/googletest-timeout.py b/llvm/utils/lit/tests/googletest-timeout.py --- a/llvm/utils/lit/tests/googletest-timeout.py +++ b/llvm/utils/lit/tests/googletest-timeout.py @@ -19,7 +19,12 @@ # RUN: FileCheck --check-prefix=CHECK-INF < %t.cfgset.out %s # CHECK-INF: -- Testing: -# CHECK-INF: TIMEOUT: googletest-timeout :: {{[Dd]ummy[Ss]ub[Dd]ir}}/OneTest.py/T.InfiniteLoopSubTest +# CHECK-INF: TIMEOUT: googletest-timeout :: [[TEST:[Dd]ummy[Ss]ub[Dd]ir/OneTest\.py]]/[[FILTER:T\.InfiniteLoopSubTest]] +# CHECK-INF-NEXT: ******************** TEST 'googletest-timeout :: [[TEST]]/[[FILTER]]' FAILED ******************** +# CHECK-INF-NEXT: Script: +# CHECK-INF-NEXT: -- +# CHECK-INF-NEXT: [[TEST]] --gtest_filter=[[FILTER]] +# CHECK-INF-NEXT: -- # CHECK-INF: Timed Out: 1 ############################################################################### diff --git a/llvm/utils/lit/tests/googletest-upstream-format.py b/llvm/utils/lit/tests/googletest-upstream-format.py --- a/llvm/utils/lit/tests/googletest-upstream-format.py +++ b/llvm/utils/lit/tests/googletest-upstream-format.py @@ -10,14 +10,27 @@ # CHECK: -- Testing: # CHECK: PASS: googletest-upstream-format :: {{[Dd]ummy[Ss]ub[Dd]ir}}/OneTest.py/FirstTest.subTestA -# CHECK: FAIL: googletest-upstream-format :: {{[Dd]ummy[Ss]ub[Dd]ir}}/OneTest.py/FirstTest.subTestB -# CHECK-NEXT: *** TEST 'googletest-upstream-format :: {{[Dd]ummy[Ss]ub[Dd]ir}}/OneTest.py/FirstTest.subTestB' FAILED *** +# CHECK: FAIL: googletest-upstream-format :: [[TEST:[Dd]ummy[Ss]ub[Dd]ir/OneTest.py]]/[[FILTER:FirstTest.subTestB]] +# CHECK-NEXT: *** TEST 'googletest-upstream-format :: [[TEST]]/[[FILTER]]' FAILED *** +# CHECK-NEXT: Script: +# CHECK-NEXT: -- +# CHECK-NEXT: [[TEST]] --gtest_filter=[[FILTER]] +# CHECK-NEXT: -- # 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: UNRESOLVED: googletest-upstream-format :: [[TEST:[Dd]ummy[Ss]ub[Dd]ir/OneTest.py]]/[[FILTER:FirstTest.subTestC]] +# CHECK-NEXT: *** TEST 'googletest-upstream-format :: [[TEST]]/[[FILTER]]' FAILED *** +# CHECK-NEXT: Script: +# CHECK-NEXT: -- +# CHECK-NEXT: [[TEST]] --gtest_filter=[[FILTER]] +# CHECK-NEXT: -- +# CHECK-NEXT: Unable to find [ PASSED ] 1 test. in gtest output +# CHECK: I am subTest C, I am UNRESOLVED # CHECK: *** # 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: Passed: 3 -# CHECK: Failed: 1 +# CHECK: Passed : 3 +# CHECK: Unresolved: 1 +# CHECK: Failed : 1