diff options
author | Daniel Stenberg <daniel@haxx.se> | 2014-08-02 23:51:46 +0200 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2014-11-20 23:33:34 +0100 |
commit | 07e0957e1f3198b8c0de917926f2937f49990f76 (patch) | |
tree | 2234e77efa14ea582a173d6f981079c693c91834 /tests | |
parent | 7d1f2ac7691c2d30eaf73ace2176ca1383b5f72b (diff) |
test1800: first plain-text http2 test case
Verifies the upgrade request, but gets a plain 1.1 response
Diffstat (limited to 'tests')
-rw-r--r-- | tests/FILEFORMAT | 1 | ||||
-rw-r--r-- | tests/data/Makefile.inc | 2 | ||||
-rw-r--r-- | tests/data/test1800 | 55 | ||||
-rwxr-xr-x | tests/runtests.pl | 17 |
4 files changed, 75 insertions, 0 deletions
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 @@ +<testcase> +<info> +<keywords> +HTTP +http2 +</keywords> +</info> + +# Server-side +<reply> +<data> +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- +</data> +</reply> + +# Client-side +<client> +<server> +http +</server> +<features> +http2 +</features> + <name> +HTTP/2 upgrade refused + </name> + <command> +http://%HOSTIP:%HTTPPORT/1800 --http2 +</command> + +</client> + +<verify> +<strip> +^User-Agent:.* +</strip> +<protocol> +GET /1800 HTTP/1.1
+Host: %HOSTIP:%HTTPPORT
+Accept: */*
+Connection: Upgrade, HTTP2-Settings
+Upgrade: %H2CVER
+HTTP2-Settings: AAMAAABkAAQAAP__
+
+</protocol> +</verify> +</testcase> 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; } |