Subject: [PATCH v3 0/3] Fix occasional test failures in http tests

From: SZEDER Gábor <[email-masked]>
Date: Thu, 12 Jul 2018 14:22:13 +0200

To recap: 't5561-http-backend.sh' is prone to occasional failures;
luckily it's not 'git-http-backend's fault, but the test script is a
bit racy; patch 3/3's commit message discusses the details at length.

Changes since v2:

  - Use 'test_when_finished' to clear the access log in the first
    patch.  (and necessary adjustments to the subsequent patches
    because of conflicts)
  
Interdiff included below.  (I wanted to include range-diff, but it
didn't make any sense)

SZEDER Gábor (3):
  t5541: clean up truncating access log
  t/lib-httpd: add the strip_access_log() helper function
  t/lib-httpd: avoid occasional failures when checking access.log

 t/lib-httpd.sh              | 21 +++++++++++++++++++++
 t/t5541-http-push-smart.sh  | 28 ++++++----------------------
 t/t5551-http-fetch-smart.sh |  8 +-------
 t/t5561-http-backend.sh     |  8 +-------
 4 files changed, 29 insertions(+), 36 deletions(-)

-- 
2.18.0.305.g66e9e0a543

diff --git a/t/t5541-http-push-smart.sh b/t/t5541-http-push-smart.sh
index a481e3989a..a9836e4af0 100755
--- a/t/t5541-http-push-smart.sh
+++ b/t/t5541-http-push-smart.sh
@@ -38,6 +38,10 @@ GET  /smart/test_repo.git/info/refs?service=git-upload-pack HTTP/1.1 200
 POST /smart/test_repo.git/git-upload-pack HTTP/1.1 200
 EOF
 test_expect_success 'no empty path components' '
+	# Clear the log, so that it does not affect the "used receive-pack
+	# service" test which reads the log too.
+	test_when_finished ">\"$HTTPD_ROOT_PATH\"/access.log" &&
+
 	# In the URL, add a trailing slash, and see if git appends yet another
 	# slash.
 	cd "$ROOT_PATH" &&
@@ -46,12 +50,6 @@ test_expect_success 'no empty path components' '
 	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.
-	>"$HTTPD_ROOT_PATH"/access.log
-'
-
 test_expect_success 'clone remote repository' '
 	rm -rf test_repo_clone &&
 	git clone $HTTPD_URL/smart/test_repo.git test_repo_clone &&