From: Johannes Sixt <j6t@kdbg.org>
To: tboegi@web.de
Cc: git@vger.kernel.org, peff@peff.net, Johannes.Schindelin@gmx.de
Subject: Re: [PATCH v1 1/2] t0027: Correct raciness in NNO test
Date: Sat, 13 Aug 2016 18:50:19 +0200 [thread overview]
Message-ID: <57AF4FCB.7090409@kdbg.org> (raw)
In-Reply-To: <1471020662-20746-1-git-send-email-tboegi@web.de>
Am 12.08.2016 um 18:51 schrieb tboegi@web.de:
> From: Torsten Bögershausen <tboegi@web.de>
>
> When a non-reversible CRLF conversion is done in "git add",
> a warning is printed on stderr (or Git dies, depending on checksafe)
>
> The function commit_chk_wrnNNO() in t0027 was written to test this,
> but did the wrong thing: Instead of looking at the warning
> from "git add", it looked at the warning from "git commit".
>
> This is racy because "git commit" may not have to do CRLF conversion
> at all if it can use the sha1 value from the index (which depends on
> whether "add" and "commit" run in a single second).
>
> Correct this and replace the commit for each and every file with a commit
> of all files in one go.
The new test code does not only fix the race condition, but also tests
different things, or prepares test cases in a different manner. I would
have appreciated an explanation why this is necessary. Is it "on my
machine, the race condition was triggered consistently for a bunch of
tests, and so I recorded the wrong expected output in the test cases"?
>
> The function commit_chk_wrnNNO() will to be renamed in a separate commit.
> Thanks to Jeff King <peff@peff.net> for analyzing t0027.
>
> Reported-By: Johannes Schindelin <Johannes.Schindelin@gmx.de>
> ---
> t/t0027-auto-crlf.sh | 14 +++++++-------
> 1 file changed, 7 insertions(+), 7 deletions(-)
>
> diff --git a/t/t0027-auto-crlf.sh b/t/t0027-auto-crlf.sh
> index 2860d2d..ab6e962 100755
> --- a/t/t0027-auto-crlf.sh
> +++ b/t/t0027-auto-crlf.sh
> @@ -119,8 +119,7 @@ commit_chk_wrnNNO () {
> fname=${pfx}_$f.txt &&
> cp $f $fname &&
> printf Z >>"$fname" &&
> - git -c core.autocrlf=$crlf add $fname 2>/dev/null &&
> - git -c core.autocrlf=$crlf commit -m "commit_$fname" $fname >"${pfx}_$f.err" 2>&1
> + git -c core.autocrlf=$crlf add $fname 2>"${pfx}_$f.err"
> done
>
> test_expect_success "commit NNO files crlf=$crlf attr=$attr LF" '
> @@ -394,11 +393,11 @@ test_expect_success 'commit files attr=crlf' '
>
> # attr LF CRLF CRLFmixLF LF_mix_CR CRLFNUL
> commit_chk_wrnNNO "" "" false "" "" "" "" ""
> -commit_chk_wrnNNO "" "" true LF_CRLF "" "" "" ""
> +commit_chk_wrnNNO "" "" true "" "" "" "" ""
> commit_chk_wrnNNO "" "" input "" "" "" "" ""
>
> -commit_chk_wrnNNO "auto" "" false "$WILC" "" "" "" ""
> -commit_chk_wrnNNO "auto" "" true LF_CRLF "" "" "" ""
> +commit_chk_wrnNNO "auto" "" false "" "" "" "" ""
> +commit_chk_wrnNNO "auto" "" true "" "" "" "" ""
> commit_chk_wrnNNO "auto" "" input "" "" "" "" ""
> for crlf in true false input
> do
> @@ -408,7 +407,7 @@ do
> commit_chk_wrnNNO "" lf $crlf "" CRLF_LF CRLF_LF "" CRLF_LF
> commit_chk_wrnNNO "" crlf $crlf LF_CRLF "" LF_CRLF LF_CRLF ""
> commit_chk_wrnNNO auto lf $crlf "" "" "" "" ""
> - commit_chk_wrnNNO auto crlf $crlf LF_CRLF "" "" "" ""
> + commit_chk_wrnNNO auto crlf $crlf "" "" "" "" ""
> commit_chk_wrnNNO text lf $crlf "" CRLF_LF CRLF_LF "" CRLF_LF
> commit_chk_wrnNNO text crlf $crlf LF_CRLF "" LF_CRLF LF_CRLF ""
> done
> @@ -417,7 +416,8 @@ commit_chk_wrnNNO "text" "" false "$WILC" "$WICL" "$WAMIX" "$WILC
> commit_chk_wrnNNO "text" "" true LF_CRLF "" LF_CRLF LF_CRLF ""
> commit_chk_wrnNNO "text" "" input "" CRLF_LF CRLF_LF "" CRLF_LF
>
> -test_expect_success 'create files cleanup' '
> +test_expect_success 'commit NNO and cleanup' '
> + git commit -m "commit files on top of NNO" &&
> rm -f *.txt &&
> git -c core.autocrlf=false reset --hard
> '
>
next prev parent reply other threads:[~2016-08-13 16:50 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-08-08 15:05 t0027 racy? Johannes Schindelin
2016-08-08 15:29 ` Jeff King
2016-08-08 20:32 ` Torsten Bögershausen
2016-08-09 6:51 ` Jeff King
2016-08-09 7:03 ` Jeff King
2016-08-09 11:27 ` Johannes Schindelin
2016-08-09 11:33 ` Torsten Bögershausen
2016-08-09 11:49 ` Jeff King
2016-08-09 12:59 ` Torsten Bögershausen
2016-08-09 13:27 ` Jeff King
2016-08-09 21:28 ` Torsten Bögershausen
2016-08-10 12:28 ` Johannes Schindelin
2016-08-11 18:58 ` Torsten Bögershausen
2016-08-11 19:34 ` Junio C Hamano
2016-08-12 7:24 ` Jeff King
2016-08-12 16:50 ` [PATCH v1 0/2] Fix conversion warnings tboegi
2016-08-12 16:51 ` [PATCH v1 1/2] t0027: Correct raciness in NNO test tboegi
2016-08-12 17:56 ` Junio C Hamano
2016-08-13 16:50 ` Johannes Sixt [this message]
2016-08-13 21:18 ` Torsten Bögershausen
2016-08-14 20:37 ` Junio C Hamano
2016-08-12 16:51 ` [PATCH v1 2/2] convert: missing `LF will be replaced by CRLF tboegi
2016-08-12 17:52 ` Junio C Hamano
2016-08-13 21:29 ` [PATCH v2 0/1] convert: Correct NNO tests and missing `LF will be replaced by CRLF` tboegi
2016-08-17 12:46 ` Johannes Schindelin
2016-08-13 21:29 ` [PATCH v2 1/1] " tboegi
2016-08-19 9:41 ` [PATCH v1 0/1] Rename NotNormalized (NNO) into CRLF in index tboegi
2016-08-19 16:39 ` Junio C Hamano
2016-08-19 9:41 ` [PATCH v1 1/1] t0027: " tboegi
2016-08-25 15:52 ` [PATCH v1 0/3] Update eol documentation tboegi
2016-08-25 20:31 ` Junio C Hamano
2016-08-26 1:00 ` Jacob Keller
2016-08-26 7:03 ` Torsten Bögershausen
2016-08-25 15:52 ` [PATCH v1 1/2] git ls-files: text=auto eol=lf is supported in Git 2.10 tboegi
2016-08-25 20:38 ` Junio C Hamano
2016-08-25 15:52 ` [PATCH v1 2/2] gitattributes: Document the unified "auto" handling tboegi
2016-08-25 20:46 ` Junio C Hamano
2016-08-26 20:18 ` [PATCH v2 0/2] Adjust the documentation to " tboegi
2016-08-26 20:18 ` [PATCH v2 1/2] git ls-files: text=auto eol=lf is supported in Git 2.10 tboegi
2016-08-26 20:18 ` [PATCH v2 2/2] gitattributes: Document the unified "auto" handling tboegi
2016-08-26 20:53 ` Junio C Hamano
2016-08-09 11:33 ` t0027 racy? Johannes Schindelin
2016-08-09 11:38 ` Jeff King
2016-08-08 18:24 ` Torsten Bögershausen
2016-08-09 11:25 ` Johannes Schindelin
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=57AF4FCB.7090409@kdbg.org \
--to=j6t@kdbg.org \
--cc=Johannes.Schindelin@gmx.de \
--cc=git@vger.kernel.org \
--cc=peff@peff.net \
--cc=tboegi@web.de \
/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.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.