From 07e0957e1f3198b8c0de917926f2937f49990f76 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Sat, 2 Aug 2014 23:51:46 +0200 Subject: test1800: first plain-text http2 test case Verifies the upgrade request, but gets a plain 1.1 response --- tests/FILEFORMAT | 1 + tests/data/Makefile.inc | 2 ++ tests/data/test1800 | 55 +++++++++++++++++++++++++++++++++++++++++++++++++ tests/runtests.pl | 17 +++++++++++++++ 4 files changed, 75 insertions(+) create mode 100644 tests/data/test1800 diff --git a/tests/FILEFORMAT b/tests/FILEFORMAT index 9fd179e65..9cb31ba08 100644 --- a/tests/FILEFORMAT +++ b/tests/FILEFORMAT @@ -217,6 +217,7 @@ SSLpinning TLS-SRP TrackMemory unittest +http2 as well as each protocol that curl supports. A protocol only needs to be specified if it is different from the server (useful when the server diff --git a/tests/data/Makefile.inc b/tests/data/Makefile.inc index ee9585742..dbd6dfcea 100644 --- a/tests/data/Makefile.inc +++ b/tests/data/Makefile.inc @@ -150,6 +150,8 @@ test1516 \ \ test1525 test1526 test1527 test1528 \ \ +test1800 \ +\ test1900 test1901 test1902 test1903 \ \ test2000 test2001 test2002 test2003 test2004 test2005 test2006 test2007 \ diff --git a/tests/data/test1800 b/tests/data/test1800 new file mode 100644 index 000000000..b7d534edd --- /dev/null +++ b/tests/data/test1800 @@ -0,0 +1,55 @@ + + + +HTTP +http2 + + + +# Server-side + + +HTTP/1.1 200 Ignored! +Date: Thu, 09 Nov 2010 14:49:00 GMT +Server: test-server/fake +Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT +Content-Length: 6 +Connection: close +Content-Type: text/html + +-foo- + + + +# Client-side + + +http + + +http2 + + +HTTP/2 upgrade refused + + +http://%HOSTIP:%HTTPPORT/1800 --http2 + + + + + + +^User-Agent:.* + + +GET /1800 HTTP/1.1 +Host: %HOSTIP:%HTTPPORT +Accept: */* +Connection: Upgrade, HTTP2-Settings +Upgrade: %H2CVER +HTTP2-Settings: AAMAAABkAAQAAP__ + + + + diff --git a/tests/runtests.pl b/tests/runtests.pl index 8802c0c98..ce962a957 100755 --- a/tests/runtests.pl +++ b/tests/runtests.pl @@ -214,6 +214,10 @@ my $has_sspi; # set if libcurl is built with SSPI support my $has_charconv;# set if libcurl is built with CharConv support my $has_tls_srp; # set if libcurl is built with TLS-SRP support my $has_metalink;# set if curl is built with Metalink support +my $has_http2; # set if libcurl is built with HTTP2 support + +# this version is decided by the particular nghttp2 library that is being used +my $h2cver = "h2c-14"; my $has_openssl; # built with a lib using an OpenSSL-like API my $has_gnutls; # built with GnuTLS @@ -2413,6 +2417,10 @@ sub checksystem { $resolver="threaded"; } } + if($feat =~ /HTTP2/) { + # http2 enabled + $has_http2=1; + } } # # Test harness currently uses a non-stunnel server in order to @@ -2645,6 +2653,10 @@ sub subVariables { $$thing =~ s/%FTPTIME2/$ftp2/g; $$thing =~ s/%FTPTIME3/$ftp3/g; + + # HTTP2 + + $$thing =~ s/%H2CVER/$h2cver/g; } sub fixarray { @@ -2867,6 +2879,11 @@ sub singletest { next; } } + elsif($1 eq "http2") { + if($has_http2) { + next; + } + } elsif($1 eq "socks") { next; } -- cgit v1.2.3