tests: record more stderr with --write-junit-xml in case of failure

Sometimes, failures in a test case are actually caused by issues in
earlier test cases.

To make it easier to see those issues, let's attach the output from
before the failing test case (i.e. stdout/stderr since the previous
failing test case, or the start of the test script). This will be
visible in the "Attachments" of the details of the failed test.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
This commit is contained in:
Johannes Schindelin
2018-08-31 16:26:32 +02:00
parent 1c1df59732
commit a0970ebd42

View File

@@ -481,6 +481,9 @@ test_failure_ () {
"$(cat "$GIT_TEST_TEE_OUTPUT_FILE")")"
>"$GIT_TEST_TEE_OUTPUT_FILE"
junit_insert="$junit_insert</failure>"
junit_insert="$junit_insert<system-err>$(xml_attr_encode \
"$(cat "$GIT_TEST_TEE_OUTPUT_FILE.err")")</system-err>"
>"$GIT_TEST_TEE_OUTPUT_FILE.err"
write_junit_xml_testcase "$1" " $junit_insert"
fi
test_failure=$(($test_failure + 1))
@@ -765,9 +768,12 @@ test_start_ () {
then
junit_start=$(test-tool date getnanos)
# truncate output
test -z "$GIT_TEST_TEE_OUTPUT_FILE" ||
>"$GIT_TEST_TEE_OUTPUT_FILE"
# append to future <system-err>; truncate output
test -z "$GIT_TEST_TEE_OUTPUT_FILE" || {
cat "$GIT_TEST_TEE_OUTPUT_FILE" \
>>"$GIT_TEST_TEE_OUTPUT_FILE.err"
>"$GIT_TEST_TEE_OUTPUT_FILE"
}
fi
}