From: Chris Torek <chris.torek@gmail.com>
To: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
Cc: "Git List" <git@vger.kernel.org>,
"Junio C Hamano" <gitster@pobox.com>, "Jeff King" <peff@peff.net>,
"SZEDER Gábor" <szeder.dev@gmail.com>,
"Johannes Schindelin" <Johannes.Schindelin@gmx.de>
Subject: Re: [PATCH 6/7] test-lib: make --verbose output valid TAP
Date: Tue, 9 Mar 2021 23:42:05 -0800 [thread overview]
Message-ID: <CAPx1GvcDvCykfOJBBPq1vx19dx2zT4cvs=ZPGBtzzw87ZDagzQ@mail.gmail.com> (raw)
In-Reply-To: <20210309160219.13779-7-avarab@gmail.com>
There is a lot of historical stuff I can't really comment on
here, so I'll just point out this one tiny bit of shell oddity:
On Tue, Mar 9, 2021 at 8:04 AM Ævar Arnfjörð Bjarmason <avarab@gmail.com> wrote:
> Make the --verbose output be valid TAP, making it machine-readable for
> TAP parsers again.
[snippage]
> diff --git a/t/test-lib.sh b/t/test-lib.sh
> index aa7068b06b6..0070d05234b 100644
> --- a/t/test-lib.sh
> +++ b/t/test-lib.sh
[snippage]
> @@ -364,9 +366,22 @@ then
> (
> GIT_TEST_TEE_STARTED=done ${TEST_SHELL_PATH} "$0" "$@" 2>&1
> echo $? >"$TEST_RESULTS_BASE.exit"
> - ) | tee -a "$GIT_TEST_TEE_OUTPUT_FILE"
> + ) | "$GIT_BUILD_DIR"/t/helper/test-tool tee \
> + --tap --prefix="GIT_TEST_TEE_STARTED " \
> + --escape-stdout ${HARNESS_ACTIVE+--escape-file} \
> + "$GIT_TEST_TEE_OUTPUT_FILE"
> test "$(cat "$TEST_RESULTS_BASE.exit")" = 0
> exit
> +elif test -n "$verbose" -a -n "$HARNESS_ACTIVE"
> +then
> + ret=
> + (
> + GIT_TEST_TEE_STARTED=done ${TEST_SHELL_PATH} "$0" "$@" 2>&1
> + ret=$?
> + ) | "$GIT_BUILD_DIR"/t/helper/test-tool tee \
> + --tap --prefix="GIT_TEST_TEE_STARTED " \
> + --escape-stdout
> + exit $ret
> fi
>
> if test -n "$trace" && test -n "$test_untraceable"
[snippage]
In the block beginning with:
ret=
we have a subshell:
( ... ) | "$GIT_BUILD_DIR"/t/helper/test-tool tee ...
In the subshell itself, we set `ret=$?`. But this is inside a
subshell, which then exits, so the setting of `ret` will get lost.
Did you perhaps want `{ ...; }` instead here? Unfortunately the
pipe means that the whole left side may run in a subshell
anyway, so even that doesn't fix the problem. We need a
temp file, a la the code above that dumps $? into
"$TEST_RESULTS_BASE.exit".
Chris
next prev parent reply other threads:[~2021-03-10 7:43 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-10-21 4:14 Prove "Tests out of sequence" Error Lars Schneider
2016-10-21 6:10 ` Stefan Beller
2016-10-21 8:20 ` Jeff King
2016-10-21 8:43 ` Jeff King
2016-10-21 10:41 ` [PATCH 0/3] fix travis TAP/--verbose conflict Jeff King
2016-10-21 10:42 ` [PATCH 1/3] test-lib: handle TEST_OUTPUT_DIRECTORY with spaces Jeff King
2016-10-21 10:48 ` [PATCH 2/3] test-lib: add --verbose-log option Jeff King
2016-10-21 17:12 ` Junio C Hamano
2016-10-21 21:46 ` Jeff King
2021-02-28 20:25 ` [PATCH/RFC] test-lib: make --verbose work under prove Ævar Arnfjörð Bjarmason
2021-03-01 9:51 ` Jeff King
2021-03-01 13:54 ` Ævar Arnfjörð Bjarmason
2021-03-09 16:02 ` [PATCH 0/6 + 1] test-lib: make --verbose output valid TAP Ævar Arnfjörð Bjarmason
2021-03-09 17:52 ` SZEDER Gábor
2021-03-09 21:03 ` Ævar Arnfjörð Bjarmason
2021-03-09 22:07 ` SZEDER Gábor
2021-03-09 16:02 ` [PATCH 1/7] test-lib: remove test_external Ævar Arnfjörð Bjarmason
2021-03-10 1:04 ` Junio C Hamano
2021-03-10 2:22 ` Ævar Arnfjörð Bjarmason
2021-03-09 16:02 ` [PATCH 2/7] test-lib: add say_color_tap helper to emit TAP format Ævar Arnfjörð Bjarmason
2021-03-10 0:39 ` Junio C Hamano
2021-03-09 16:02 ` [PATCH 3/7] test-lib: color "ok" TAP directives green under --verbose (or -x) Ævar Arnfjörð Bjarmason
2021-03-09 16:02 ` [PATCH 4/7] test-lib: add tee with TAP support to test-tool Ævar Arnfjörð Bjarmason
2021-03-09 16:02 ` [PATCH 5/7] test-lib: indent and format GIT_TEST_TEE_OUTPUT_FILE code Ævar Arnfjörð Bjarmason
2021-03-09 16:02 ` [PATCH 6/7] test-lib: make --verbose output valid TAP Ævar Arnfjörð Bjarmason
2021-03-09 18:59 ` SZEDER Gábor
2021-03-09 20:57 ` Ævar Arnfjörð Bjarmason
2021-03-09 21:31 ` SZEDER Gábor
2021-03-10 2:35 ` Ævar Arnfjörð Bjarmason
2021-03-16 9:10 ` Ævar Arnfjörð Bjarmason
2021-03-09 19:12 ` SZEDER Gábor
2021-03-10 1:11 ` Junio C Hamano
2021-03-10 7:42 ` Chris Torek [this message]
2021-03-09 16:02 ` [RFC/PATCH 7/7] test-lib: generate JUnit output via TAP Ævar Arnfjörð Bjarmason
2021-03-19 14:14 ` Johannes Schindelin
2021-03-21 0:28 ` Ævar Arnfjörð Bjarmason
2021-03-22 13:46 ` Johannes Schindelin
2016-10-21 10:48 ` [PATCH 3/3] travis: use --verbose-log test option Jeff King
2016-10-21 17:19 ` [PATCH 0/3] fix travis TAP/--verbose conflict Stefan Beller
2016-10-24 18:06 ` Lars Schneider
2016-10-21 15:29 ` Prove "Tests out of sequence" Error Jacob Keller
2016-10-21 15:35 ` Jeff King
2016-10-21 15:42 ` Jacob Keller
2016-10-21 15:48 ` Jeff King
2016-10-21 16:15 ` Jacob Keller
2016-10-22 4:45 ` [PATCH 4/3] test-lib: bail out when "-v" used under "prove" Jeff King
2016-10-22 5:25 ` Jacob Keller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAPx1GvcDvCykfOJBBPq1vx19dx2zT4cvs=ZPGBtzzw87ZDagzQ@mail.gmail.com' \
--to=chris.torek@gmail.com \
--cc=Johannes.Schindelin@gmx.de \
--cc=avarab@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=peff@peff.net \
--cc=szeder.dev@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).