git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 03/16] t5541: simplify and move "no empty path components" test

From
Jeff King <peff@peff.net>
Date
Feb 23, 2023, 10:51 UTC
Message-ID
<Y/dFN4GuCjqpIi2O@coredump.intra.peff.net>
In-Reply-To
<Y/dEYYWKy/o96vBG@coredump.intra.peff.net>

Commit 9ee6bcd398 (t5541-http-push: add test for URLs with trailing slash, 2010-04-08) added a test that clones a URL with a trailing slash, and confirms that we don't send a doubled slash (like "$url//info/refs") to the server.

But this test makes no sense in t5541, which is about pushing. It should have been added in t5551. Let's move it there.

But putting it at the end is tricky, since it checks the entire contents of the Apache access log. We could get around this by clearing the log before our test. But there's an even simpler solution: just make sure no doubled slashes appear in the log (fortunately, "http://" does not appear in the log itself).

As a bonus, this also lets us drop the check for the v0 protocol (which is otherwise necessary since v2 makes multiple requests, and check_access_log insists on exactly matching the number of requests, even though we don't care about that here).

Signed-off-by: Jeff King <peff@peff.net>
---
 t/t5541-http-push-smart.sh  | 18 ------------------
 t/t5551-http-fetch-smart.sh |  9 +++++++++
 2 files changed, 9 insertions(+), 18 deletions(-)
diff --git a/t/t5541-http-push-smart.sh b/t/t5541-http-push-smart.sh
index f8bf533c33..d0211cd8be 100755
--- a/t/t5541-http-push-smart.sh
+++ b/t/t5541-http-push-smart.sh
@@ -36,24 +36,6 @@ test_expect_success 'setup remote repository' '
 
 setup_askpass_helper
 
-cat >exp <<EOF
-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' '
-	# In the URL, add a trailing slash, and see if git appends yet another
-	# slash.
-	cd "$ROOT_PATH" &&
-	git clone $HTTPD_URL/smart/test_repo.git/ test_repo_clone &&
-
-	# NEEDSWORK: If the overspecification of the expected result is reduced, we
-	# might be able to run this test in all protocol versions.
-	if test "$GIT_TEST_PROTOCOL_VERSION" = 0
-	then
-		check_access_log exp
-	fi
-'
-
 test_expect_success 'clone remote repository' '
 	rm -rf test_repo_clone &&
 	git clone $HTTPD_URL/smart/test_repo.git test_repo_clone &&
diff --git a/t/t5551-http-fetch-smart.sh b/t/t5551-http-fetch-smart.sh
index bc0719a4fc..10b7e7cda2 100755
--- a/t/t5551-http-fetch-smart.sh
+++ b/t/t5551-http-fetch-smart.sh
@@ -666,4 +666,13 @@ test_expect_success 'push warns or fails when using username:password' '
 	test_line_count -ge 1 warnings
 '
 
+test_expect_success 'no empty path components' '
+	# In the URL, add a trailing slash, and see if git appends yet another
+	# slash.
+	git clone $HTTPD_URL/smart/repo.git/ clone-with-slash &&
+
+	strip_access_log >log &&
+	! grep "//" log
+'
+
 test_done
-- 
2.39.2.981.g6157336f25
Previous: Jeff KingNext: Junio C Hamano
Message 4 of 24 in “http test bug potpourri”
  1. 0/16 http test bug potpourriJeff King, Feb 23, 2023
  2. 01/16 t5541: run "used receive-pack service" test earlierJeff King, Feb 23, 2023
  3. 02/16 t5541: stop marking "used receive-pack service" test as v0 onlyJeff King, Feb 23, 2023
  4. 03/16 t5541: simplify and move "no empty path components" testJeff King, Feb 23, 2023
  5. Junio C HamanoFeb 23, 2023
  6. Jeff KingFeb 24, 2023
  7. 04/16 t5551: drop redundant grep for Accept-LanguageJeff King, Feb 23, 2023
  8. Junio C HamanoFeb 23, 2023
  9. 05/16 t5551: lower-case headers in expected curl traceJeff King, Feb 23, 2023
  10. 06/16 t5551: handle HTTP/2 when checking curl traceJeff King, Feb 23, 2023
  11. 07/16 t5551: stop forcing clone to run with v0 protocolJeff King, Feb 23, 2023
  12. 08/16 t5551: handle v2 protocol when checking curl traceJeff King, Feb 23, 2023
  13. 09/16 t5551: handle v2 protocol in upload-pack service testJeff King, Feb 23, 2023
  14. 10/16 t5551: simplify expected cookie fileJeff King, Feb 23, 2023
  15. 11/16 t5551: handle v2 protocol in cookie testJeff King, Feb 23, 2023
  16. 12/16 t5551: drop curl trace lines without headersJeff King, Feb 23, 2023
  17. 13/16 t/lib-httpd: respect $HTTPD_PROTO in expect_askpass()Jeff King, Feb 23, 2023
  18. 14/16 t/lib-httpd: enable HTTP/2 "h2" protocol, not just h2cJeff King, Feb 23, 2023
  19. Junio C HamanoFeb 23, 2023
  20. 15/16 t5559: fix test failures with LIB_HTTPD_SSLJeff King, Feb 23, 2023
  21. 16/16 t5559: make SSL/TLS the defaultJeff King, Feb 23, 2023
  22. Junio C HamanoFeb 23, 2023
  23. Jeff KingFeb 24, 2023
  24. Junio C HamanoFeb 24, 2023

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.