llvm-project/llvm/utils/lit/tests/googletest-crash.py
Yuanfang Chen d3efa577f5 [lit] Keep stdout/stderr when using GoogleTest format
When a unit test crashes or timeout, print the shard's stdout and
stderr. When a unit test fails, attaches the test's output to the LIT
output to help debugging.

While at it, concatenating shard's environment variables using space
instead of newline to make the reproducer script user friendly.

Based on D123797. (Thanks to @lenary)
2022-04-25 12:26:03 -07:00

27 lines
993 B
Python

# Check GoogleTest shard test crashes are handled.
# RUN: not %{lit} -v %{inputs}/googletest-crash | FileCheck %s
# CHECK: -- Testing:
# CHECK: FAIL: googletest-crash :: [[PATH:[Dd]ummy[Ss]ub[Dd]ir/]][[FILE:OneTest\.py]]/0
# CHECK: *** TEST 'googletest-crash :: [[PATH]][[FILE]]/0{{.*}} FAILED ***
# CHECK-NEXT: Script(shard):
# CHECK-NEXT: --
# CHECK-NEXT: GTEST_OUTPUT=json:[[JSON:[^[:space:]]*\.json]] GTEST_SHUFFLE=0 GTEST_TOTAL_SHARDS=6 GTEST_SHARD_INDEX=0 {{.*}}[[FILE]]
# CHECK-NEXT: --
# CHECK-EMPTY:
# CHECK-NEXT: [----------] 4 test from FirstTest
# CHECK-NEXT: [ RUN ] FirstTest.subTestA
# CHECK-NEXT: [ OK ] FirstTest.subTestA (18 ms)
# CHECK-NEXT: [ RUN ] FirstTest.subTestB
# CHECK-NEXT: I am about to crash
# CHECK-EMPTY:
# CHECK-NEXT: --
# CHECK-NEXT: exit:
# CHECK-NEXT: --
# CHECK-NEXT: shard JSON output does not exist: [[JSON]]
# CHECK-NEXT: ***
# CHECK: Failed Tests (1):
# CHECK-NEXT: googletest-crash :: [[PATH]][[FILE]]/0/6
# CHECK: Failed{{ *}}: 1