t5541: clean up truncating access log

In the second test of 't5541-http-push-smart.sh', 'no empty path components' we truncate Apache's access log by running: echo >.../access.log There are two issues with this approach: - This doesn't leave an empty file behind, like a proper truncation would, but a file with a lone newline in it. Consequently, a later test checking the log's contents must consider this improper truncation and include an empty line in the expected content. - This truncation is done in the middle of the test, because, quoting the in-code comment, "we do this [truncation] before the actual comparison to ensure the log is cleared" even when subsequent 'test_cmp' fails. Alas, this is not quite robust enough, as it is conceivable that 'git clone' fails after already having sent a request, in which case the access log would not be truncated and would leave stray log entries behind. Since there is no need for that newline at all, drop the 'echo' from the truncation and adjust the expected content accordingly. Furthermore, make sure that the truncation is performed no matter whether and how 'git clone' fails unexpectedly by specifying it as a 'test_when_finished' command. Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

SZEDER Gábor committed Jul 12, 2018 at 14:22 UTC a704c6439a9a34045f6d5bde78d5982b11e6d478
1 file changed +4 -8
t/t5541-http-push-smart.sh
+4 -8
@@ -38,6 +38,10 @@ GET /smart/test_repo.git/info/refs?service=git-upload-pack HTTP/1.1 200
38 POST /smart/test_repo.git/git-upload-pack HTTP/1.1 200
39 EOF
40 test_expect_success 'no empty path components' '
41 + # Clear the log, so that it does not affect the "used receive-pack
42 + # service" test which reads the log too.
43 + test_when_finished ">\"\$HTTPD_ROOT_PATH\"/access.log" &&
44 +
45 # In the URL, add a trailing slash, and see if git appends yet another
46 # slash.
47 cd "$ROOT_PATH" &&
@@ -49,13 +53,6 @@ test_expect_success 'no empty path components' '
53 s/ [1-9][0-9]*\$//
54 s/^GET /GET /
55 " >act <"$HTTPD_ROOT_PATH"/access.log &&
52 -
53 - # Clear the log, so that it does not affect the "used receive-pack
54 - # service" test which reads the log too.
55 - #
56 - # We do this before the actual comparison to ensure the log is cleared.
57 - echo > "$HTTPD_ROOT_PATH"/access.log &&
58 -
56 test_cmp exp act
57 '
58
@@ -124,7 +121,6 @@ test_expect_success 'rejected update prints status' '
121 rm -f "$HTTPD_DOCUMENT_ROOT_PATH/test_repo.git/hooks/update"
122
123 cat >exp <<EOF
127 -
124 GET /smart/test_repo.git/info/refs?service=git-upload-pack HTTP/1.1 200
125 POST /smart/test_repo.git/git-upload-pack HTTP/1.1 200
126 GET /smart/test_repo.git/info/refs?service=git-receive-pack HTTP/1.1 200