git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Jeff King <peff@peff.net>
To: git@vger.kernel.org
Subject: [PATCH 15/16] t5559: fix test failures with LIB_HTTPD_SSL
Date: Thu, 23 Feb 2023 06:07:29 -0500	[thread overview]
Message-ID: <Y/dI8UEP0DFqqB1Q@coredump.intra.peff.net> (raw)
In-Reply-To: <Y/dEYYWKy/o96vBG@coredump.intra.peff.net>

One test needs to be tweaked in order for t5559 to pass with SSL/TLS set
up. When we make our initial clone, we check that the curl trace of
requests is what we expected. But we need to fix two things:

  - along with ignoring "data" lines from the trace, we need to ignore
    "SSL data" lines

  - when TLS is used, the server is able to tell the client (via ALPN)
    that it supports HTTP/2 before the first HTTP request is made. So
    rather than request an upgrade using an HTTP header, it can just
    speak HTTP/2 immediately

With this patch, running:

  LIB_HTTPD_SSL=1 ./t5559-http-fetch-smart-http2.sh

works, whereas it did not before.

Signed-off-by: Jeff King <peff@peff.net>
---
 t/t5551-http-fetch-smart.sh | 23 ++++++++++++++++++-----
 1 file changed, 18 insertions(+), 5 deletions(-)

diff --git a/t/t5551-http-fetch-smart.sh b/t/t5551-http-fetch-smart.sh
index 13b38c7ef5..0908534f25 100755
--- a/t/t5551-http-fetch-smart.sh
+++ b/t/t5551-http-fetch-smart.sh
@@ -33,8 +33,19 @@ test_expect_success 'create http-accessible bare repository' '
 setup_askpass_helper
 
 test_expect_success 'clone http repository' '
+	if test_have_prereq HTTP2 && test "$HTTPD_PROTO" = "https"
+	then
+		# ALPN lets us immediately use HTTP/2; likewise, POSTs with
+		# bodies can use it because they do not need to upgrade
+		INITIAL_PROTO=HTTP/2
+	else
+		# either we are not using HTTP/2, or the initial
+		# request is sent via HTTP/1.1 and asks for upgrade
+		INITIAL_PROTO=HTTP/1.1
+	fi &&
+
 	cat >exp.raw <<-EOF &&
-	> GET /smart/repo.git/info/refs?service=git-upload-pack HTTP/1.1
+	> GET /smart/repo.git/info/refs?service=git-upload-pack $INITIAL_PROTO
 	> accept: */*
 	> accept-encoding: ENCODINGS
 	> accept-language: ko-KR, *;q=0.9
@@ -44,25 +55,25 @@ test_expect_success 'clone http repository' '
 	< pragma: no-cache
 	< cache-control: no-cache, max-age=0, must-revalidate
 	< content-type: application/x-git-upload-pack-advertisement
-	> POST /smart/repo.git/git-upload-pack HTTP/1.1
+	> POST /smart/repo.git/git-upload-pack $INITIAL_PROTO
 	> accept-encoding: ENCODINGS
 	> content-type: application/x-git-upload-pack-request
 	> accept: application/x-git-upload-pack-result
 	> accept-language: ko-KR, *;q=0.9
 	{V2} > git-protocol: version=2
 	> content-length: xxx
-	< HTTP/1.1 200 OK
+	< $INITIAL_PROTO 200 OK
 	< pragma: no-cache
 	< cache-control: no-cache, max-age=0, must-revalidate
 	< content-type: application/x-git-upload-pack-result
-	{V2} > POST /smart/repo.git/git-upload-pack HTTP/1.1
+	{V2} > POST /smart/repo.git/git-upload-pack $INITIAL_PROTO
 	{V2} > accept-encoding: ENCODINGS
 	{V2} > content-type: application/x-git-upload-pack-request
 	{V2} > accept: application/x-git-upload-pack-result
 	{V2} > accept-language: ko-KR, *;q=0.9
 	{V2} > git-protocol: version=2
 	{V2} > content-length: xxx
-	{V2} < HTTP/1.1 200 OK
+	{V2} < $INITIAL_PROTO 200 OK
 	{V2} < pragma: no-cache
 	{V2} < cache-control: no-cache, max-age=0, must-revalidate
 	{V2} < content-type: application/x-git-upload-pack-result
@@ -96,6 +107,8 @@ test_expect_success 'clone http repository' '
 		s/= Recv header://
 		/^<= Recv data/d
 		/^=> Send data/d
+		/^<= Recv SSL data/d
+		/^=> Send SSL data/d
 		/^$/d
 		/^< $/d
 
-- 
2.39.2.981.g6157336f25


  parent reply	other threads:[~2023-02-23 11:07 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-23 10:48 [PATCH 0/16] http test bug potpourri Jeff King
2023-02-23 10:49 ` [PATCH 01/16] t5541: run "used receive-pack service" test earlier Jeff King
2023-02-23 10:50 ` [PATCH 02/16] t5541: stop marking "used receive-pack service" test as v0 only Jeff King
2023-02-23 10:51 ` [PATCH 03/16] t5541: simplify and move "no empty path components" test Jeff King
2023-02-23 23:36   ` Junio C Hamano
2023-02-24  2:11     ` Jeff King
2023-02-23 10:52 ` [PATCH 04/16] t5551: drop redundant grep for Accept-Language Jeff King
2023-02-23 23:36   ` Junio C Hamano
2023-02-23 10:54 ` [PATCH 05/16] t5551: lower-case headers in expected curl trace Jeff King
2023-02-23 10:56 ` [PATCH 06/16] t5551: handle HTTP/2 when checking " Jeff King
2023-02-23 10:57 ` [PATCH 07/16] t5551: stop forcing clone to run with v0 protocol Jeff King
2023-02-23 10:59 ` [PATCH 08/16] t5551: handle v2 protocol when checking curl trace Jeff King
2023-02-23 11:00 ` [PATCH 09/16] t5551: handle v2 protocol in upload-pack service test Jeff King
2023-02-23 11:01 ` [PATCH 10/16] t5551: simplify expected cookie file Jeff King
2023-02-23 11:02 ` [PATCH 11/16] t5551: handle v2 protocol in cookie test Jeff King
2023-02-23 11:05 ` [PATCH 12/16] t5551: drop curl trace lines without headers Jeff King
2023-02-23 11:05 ` [PATCH 13/16] t/lib-httpd: respect $HTTPD_PROTO in expect_askpass() Jeff King
2023-02-23 11:06 ` [PATCH 14/16] t/lib-httpd: enable HTTP/2 "h2" protocol, not just h2c Jeff King
2023-02-23 23:37   ` Junio C Hamano
2023-02-23 11:07 ` Jeff King [this message]
2023-02-23 11:08 ` [PATCH 16/16] t5559: make SSL/TLS the default Jeff King
2023-02-23 23:37 ` [PATCH 0/16] http test bug potpourri Junio C Hamano
2023-02-24  2:13   ` Jeff King
2023-02-24  3:01     ` Junio C Hamano

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

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Y/dI8UEP0DFqqB1Q@coredump.intra.peff.net \
    --to=peff@peff.net \
    --cc=git@vger.kernel.org \
    /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.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).