This makes the --verbose valid TAP. This is a non-RFC version of an RFC patch I sent in https://lore.kernel.org/git/87tupwj5y5.fsf@xxxxxxxxxxxxxxxxxxx/ There's a 7/7 patch that's an RFC at the end. It works for me, but since I haven't used the JUnit output it's likely subtly broken in some way (e.g. the new output doesn't include a timestamp attribute), but it shows how easy it is to add new output targets. The eventual goal not included in this series is to have multiple output targets, and e.g. convert ci/print-test-failures.sh to use a TAP parser. Machine-readable "TAP --verbose -x" output can bring us a lot of nice things down the line, I have some local WIP code that's a smarter version of ci/print-test-failures.sh that knows how to spew out only the output relevant to the failing test(s). Future improvements based on that could be showing what specific line in a &&-chain failed, as well as e.g. running a debug version of a failing "grep" if we detect that the failing line line was 'grep <pat> <filename>'. Ævar Arnfjörð Bjarmason (7): test-lib: remove test_external test-lib: add say_color_tap helper to emit TAP format test-lib: color "ok" TAP directives green under --verbose (or -x) test-lib: add tee with TAP support to test-tool test-lib: indent and format GIT_TEST_TEE_OUTPUT_FILE code test-lib: make --verbose output valid TAP test-lib: generate JUnit output via TAP Makefile | 2 +- .../netrc/t-git-credential-netrc.sh | 7 +- t/README | 35 +-- t/helper/test-date.c | 12 - t/helper/test-path-utils.c | 21 -- t/helper/test-tee.c | 85 +++++++ t/helper/test-tool.c | 2 +- t/helper/test-tool.h | 2 +- t/helper/test-xml-encode.c | 80 ------- t/t0000-basic.sh | 8 + t/t0202-gettext-perl.sh | 10 +- t/t9700-perl-git.sh | 10 +- t/test-lib-functions.sh | 89 +------ t/test-lib.sh | 226 +++++------------- 14 files changed, 177 insertions(+), 412 deletions(-) create mode 100644 t/helper/test-tee.c delete mode 100644 t/helper/test-xml-encode.c -- 2.31.0.rc1.210.g0f8085a843c