test1800: first plain-text http2 test case

Verifies the upgrade request, but gets a plain 1.1 response
This commit is contained in:
Daniel Stenberg
2014-08-02 23:51:46 +02:00
parent 7d1f2ac769
commit 07e0957e1f
4 changed files with 75 additions and 0 deletions

View File

@@ -217,6 +217,7 @@ SSLpinning
TLS-SRP TLS-SRP
TrackMemory TrackMemory
unittest unittest
http2
as well as each protocol that curl supports. A protocol only needs to be 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 specified if it is different from the server (useful when the server

View File

@@ -150,6 +150,8 @@ test1516 \
\ \
test1525 test1526 test1527 test1528 \ test1525 test1526 test1527 test1528 \
\ \
test1800 \
\
test1900 test1901 test1902 test1903 \ test1900 test1901 test1902 test1903 \
\ \
test2000 test2001 test2002 test2003 test2004 test2005 test2006 test2007 \ test2000 test2001 test2002 test2003 test2004 test2005 test2006 test2007 \

55
tests/data/test1800 Normal file
View File

@@ -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>

View File

@@ -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_charconv;# set if libcurl is built with CharConv support
my $has_tls_srp; # set if libcurl is built with TLS-SRP 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_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_openssl; # built with a lib using an OpenSSL-like API
my $has_gnutls; # built with GnuTLS my $has_gnutls; # built with GnuTLS
@@ -2413,6 +2417,10 @@ sub checksystem {
$resolver="threaded"; $resolver="threaded";
} }
} }
if($feat =~ /HTTP2/) {
# http2 enabled
$has_http2=1;
}
} }
# #
# Test harness currently uses a non-stunnel server in order to # Test harness currently uses a non-stunnel server in order to
@@ -2645,6 +2653,10 @@ sub subVariables {
$$thing =~ s/%FTPTIME2/$ftp2/g; $$thing =~ s/%FTPTIME2/$ftp2/g;
$$thing =~ s/%FTPTIME3/$ftp3/g; $$thing =~ s/%FTPTIME3/$ftp3/g;
# HTTP2
$$thing =~ s/%H2CVER/$h2cver/g;
} }
sub fixarray { sub fixarray {
@@ -2867,6 +2879,11 @@ sub singletest {
next; next;
} }
} }
elsif($1 eq "http2") {
if($has_http2) {
next;
}
}
elsif($1 eq "socks") { elsif($1 eq "socks") {
next; next;
} }