Re: [PATCH v2 3/3] t/lib-httpd: avoid occasional failures when checking access.log
- From
Jeff King <peff@peff.net>
- Date
- Jul 11, 2018, 14:57 UTC
- Message-ID
- <20180711145730.GB15269@sigill.intra.peff.net>
- In-Reply-To
- <20180711125647.16512-4-szeder.dev@gmail.com>
On Wed, Jul 11, 2018 at 02:56:47PM +0200, SZEDER Gábor wrote:
Show 11 quoted lines
> +# Requires one argument: the name of a file containing the expected stripped
> +# access log entries.
> +check_access_log() {
> + sort "$1" >"$1".sorted &&
> + strip_access_log >access.log.stripped &&
> + sort access.log.stripped >access.log.sorted &&
> + if ! test_cmp "$1".sorted access.log.sorted
> + then
> + test_cmp "$1" access.log.stripped
> + fi
> +}This will generate output showing both the unsorted and sorted differences. Do we want to suppress the sorted ones (e.g., by just using "cmp" directly)? I guess it doesn't matter unless there is an actual test failure, but I just wonder if it would be confusing to see both.
Show 22 quoted lines
> diff --git a/t/t5541-http-push-smart.sh b/t/t5541-http-push-smart.sh > index 6cd986797d..a481e3989a 100755 > --- a/t/t5541-http-push-smart.sh > +++ b/t/t5541-http-push-smart.sh > @@ -43,15 +43,13 @@ test_expect_success 'no empty path components' ' > cd "$ROOT_PATH" && > git clone $HTTPD_URL/smart/test_repo.git/ test_repo_clone && > > - strip_access_log >act && > + check_access_log exp > +' > > +test_expect_success 'clear access log' ' > # Clear the log, so that it does not affect the "used receive-pack > # service" test which reads the log too. > - # > - # We do this before the actual comparison to ensure the log is cleared. > - >"$HTTPD_ROOT_PATH"/access.log && > - > - test_cmp exp act > + >"$HTTPD_ROOT_PATH"/access.log > '
This took some head-scratching, mostly because of the original comment. I thought the "before" here was referring to a timing issue (maybe because we're talking about timing ;) ).
But it is really "make sure that a failed test here does not prevent us from doing this cleanup". So the original really should have just dropped that comment and added a test_when_finished. Bumping it into a separate test as you have here accomplishes the same thing.
-Peff