diff options
author | Dan Fandrich <dan@coneharvesters.com> | 2007-03-09 21:01:39 +0000 |
---|---|---|
committer | Dan Fandrich <dan@coneharvesters.com> | 2007-03-09 21:01:39 +0000 |
commit | 1962ebf8e7f918638c1601f2b05a705f502150a3 (patch) | |
tree | cb8a18717d135d6054f8ad20fd8ecb70cb61f220 | |
parent | 7c144d5a7ec62f9191a3651705f2e8d80c2a7865 (diff) |
Updated the test harness to check for protocol support before running each
test, fixing KNOWN_BUGS #11. Fixed some tests to more accurately specify
their required servers and features.
-rw-r--r-- | CHANGES | 4 | ||||
-rw-r--r-- | docs/KNOWN_BUGS | 3 | ||||
-rw-r--r-- | tests/FILEFORMAT | 16 | ||||
-rw-r--r-- | tests/data/test19 | 3 | ||||
-rw-r--r-- | tests/data/test20 | 3 | ||||
-rw-r--r-- | tests/data/test200 | 2 | ||||
-rw-r--r-- | tests/data/test201 | 2 | ||||
-rw-r--r-- | tests/data/test202 | 2 | ||||
-rw-r--r-- | tests/data/test203 | 2 | ||||
-rw-r--r-- | tests/data/test204 | 2 | ||||
-rw-r--r-- | tests/data/test205 | 2 | ||||
-rw-r--r-- | tests/data/test208 | 3 | ||||
-rw-r--r-- | tests/data/test212 | 2 | ||||
-rw-r--r-- | tests/data/test501 | 5 | ||||
-rw-r--r-- | tests/data/test504 | 3 | ||||
-rw-r--r-- | tests/data/test75 | 3 | ||||
-rw-r--r-- | tests/data/test76 | 3 | ||||
-rw-r--r-- | tests/data/test79 | 3 | ||||
-rw-r--r-- | tests/data/test87 | 3 | ||||
-rwxr-xr-x | tests/runtests.pl | 23 |
20 files changed, 75 insertions, 14 deletions
@@ -6,6 +6,10 @@ Changelog +Dan F (9 March 2007) +- Updated the test harness to check for protocol support before running each + test, fixing KNOWN_BUGS #11. + Dan F (7 March 2007) - Reintroduced (after a 3 year hiatus) an FTPS test case (400) into the test harness. It is very limited as it supports only ftps:// URLs with diff --git a/docs/KNOWN_BUGS b/docs/KNOWN_BUGS index ae5fbd716..74bf092f8 100644 --- a/docs/KNOWN_BUGS +++ b/docs/KNOWN_BUGS @@ -106,9 +106,6 @@ may have been fixed since this was written! acknowledged after the actual TCP connect (during the SOCKS "negotiate" phase). -11. Using configure --disable-[protocol] may cause 'make test' to fail for - tests using the disabled protocol(s). - 10. To get HTTP Negotiate authentication to work fine, you need to provide a (fake) user name (this concerns both curl and the lib) because the code wrongly only considers authentication if there's a user name provided. diff --git a/tests/FILEFORMAT b/tests/FILEFORMAT index f1c803058..398915a70 100644 --- a/tests/FILEFORMAT +++ b/tests/FILEFORMAT @@ -117,7 +117,17 @@ pipe: [num] - tell the server to expect this many HTTP requests before <server> What server(s) this test case requires/uses: -'http' 'ftp', 'https', 'ftps', 'http-ipv6'. Give only one per line. + +file +ftp +ftp-ipv6 +ftps +http +http-ipv6 +https +none + +Give only one per line. This subsection is mandatory. </server> <features> @@ -134,6 +144,10 @@ libz netrc_debug OpenSSL SSL + +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 +is 'none'). </features> <killserver> diff --git a/tests/data/test19 b/tests/data/test19 index aba75d3ec..dd60b8cf3 100644 --- a/tests/data/test19 +++ b/tests/data/test19 @@ -17,6 +17,9 @@ FAILURE <server> none </server> +<features> +http +</features> <name> attempt connect to non-listening socket </name> diff --git a/tests/data/test20 b/tests/data/test20 index cd1536060..d3bf30509 100644 --- a/tests/data/test20 +++ b/tests/data/test20 @@ -16,6 +16,9 @@ FAILURE <server> none </server> +<features> +http +</features> <name> attempt connect to non-existing host name </name> diff --git a/tests/data/test200 b/tests/data/test200 index 7b5ec41ff..23ac26afc 100644 --- a/tests/data/test200 +++ b/tests/data/test200 @@ -13,7 +13,7 @@ moo # Client-side <client> <server> -none +file </server> <name> basic file:// file diff --git a/tests/data/test201 b/tests/data/test201 index e8ddb7fae..eb2422418 100644 --- a/tests/data/test201 +++ b/tests/data/test201 @@ -8,7 +8,7 @@ # Client-side <client> <server> -none +file </server> <name> missing file:// file diff --git a/tests/data/test202 b/tests/data/test202 index 5b578cbab..4344d64c8 100644 --- a/tests/data/test202 +++ b/tests/data/test202 @@ -8,7 +8,7 @@ # Client-side <client> <server> -none +file </server> <name> two file:// URLs to stdout diff --git a/tests/data/test203 b/tests/data/test203 index c1c04209b..c7cdce56e 100644 --- a/tests/data/test203 +++ b/tests/data/test203 @@ -13,7 +13,7 @@ moo # Client-side <client> <server> -none +file </server> <name> file:/path URL with a single slash diff --git a/tests/data/test204 b/tests/data/test204 index cb21c6d38..c4e219e98 100644 --- a/tests/data/test204 +++ b/tests/data/test204 @@ -4,7 +4,7 @@ # Client-side <client> <server> -none +file </server> <name> "upload" with file:// diff --git a/tests/data/test205 b/tests/data/test205 index 7bef1a868..edcf7fece 100644 --- a/tests/data/test205 +++ b/tests/data/test205 @@ -4,7 +4,7 @@ # Client-side <client> <server> -none +file </server> <name> "upload" with file:// diff --git a/tests/data/test208 b/tests/data/test208 index 97eacbc45..eac3d5572 100644 --- a/tests/data/test208 +++ b/tests/data/test208 @@ -16,6 +16,9 @@ blablabla <server> http </server> +<features> +ftp +</features> <name> HTTP PUT a to a FTP URL with username+password - over HTTP proxy </name> diff --git a/tests/data/test212 b/tests/data/test212 index d745011d6..655a32f38 100644 --- a/tests/data/test212 +++ b/tests/data/test212 @@ -12,7 +12,7 @@ data blobb ipv6 </features> <server> -ftp +ftp-ipv6 </server> <name> Get two FTP files with no remote EPRT support diff --git a/tests/data/test501 b/tests/data/test501 index f8a859157..99cd3b8f7 100644 --- a/tests/data/test501 +++ b/tests/data/test501 @@ -7,8 +7,11 @@ # Client-side <client> <server> -file +none </server> +<features> +http +</features> # tool is what to use instead of 'curl' <tool> lib501 diff --git a/tests/data/test504 b/tests/data/test504 index 488fb5c77..dadd64a14 100644 --- a/tests/data/test504 +++ b/tests/data/test504 @@ -8,6 +8,9 @@ <server> none </server> +<features> +http +</features> # tool is what to use instead of 'curl' <tool> lib504 diff --git a/tests/data/test75 b/tests/data/test75 index 25440f513..779f0d883 100644 --- a/tests/data/test75 +++ b/tests/data/test75 @@ -17,6 +17,9 @@ FAILURE <server> none </server> +<features> +http +</features> <name> HTTP, urlglob retrieval with bad range </name> diff --git a/tests/data/test76 b/tests/data/test76 index d4094038b..ada3a3359 100644 --- a/tests/data/test76 +++ b/tests/data/test76 @@ -15,6 +15,9 @@ FAILURE <server> none </server> +<features> +http +</features> <name> HTTP, -O with no file name part in the URL </name> diff --git a/tests/data/test79 b/tests/data/test79 index 382eddde7..db97635e0 100644 --- a/tests/data/test79 +++ b/tests/data/test79 @@ -27,6 +27,9 @@ contents <server> http </server> +<features> +ftp +</features> <name> FTP over HTTP proxy </name> diff --git a/tests/data/test87 b/tests/data/test87 index 773165690..40b274b2e 100644 --- a/tests/data/test87 +++ b/tests/data/test87 @@ -15,6 +15,9 @@ FAILURE <server> none </server> +<features> +http +</features> <name> urlglob with bad -o #[num] usage </name> diff --git a/tests/runtests.pl b/tests/runtests.pl index aeff8b4fa..5fb45b171 100755 --- a/tests/runtests.pl +++ b/tests/runtests.pl @@ -146,6 +146,7 @@ my $has_gnutls; # set if libcurl is built with GnuTLS my $has_nss; # set if libcurl is built with NSS my $has_textaware; # set if running on a system that has a text mode concept # on files. Windows for example +my @protocols; # array of supported protocols my $skipped=0; # number of tests skipped; reported in main loop my %skipped; # skipped{reason}=counter, reasons for skip @@ -1021,8 +1022,16 @@ sub checksystem { } } elsif($_ =~ /^Protocols: (.*)/i) { - # these are the supported protocols, we don't use this knowledge - # at this point + # these are the protocols compiled in to this libcurl + @protocols = split(' ', $1); + + # Generate a "proto-ipv6" version of each protocol to match the + # IPv6 <server> name. This works even if IPv6 support isn't + # compiled in because the <features> test will fail. + push @protocols, map($_ . "-ipv6", @protocols); + + # 'none' is used in test cases to mean no server + push @protocols, ('none'); } elsif($_ =~ /^Features: (.*)/i) { $feat = $1; @@ -1283,6 +1292,10 @@ sub singletest { next; } } + # See if this "feature" is in the list of supported protocols + elsif (grep /^$f$/, @protocols) { + next; + } $why = "curl lacks $f support"; last; @@ -2065,6 +2078,12 @@ sub serverfortest { return "no server specified"; } + my $proto = lc($what[0]); + chomp $proto; + if (! grep /^$proto$/, @protocols) { + return "curl lacks $proto support"; + } + return &startservers(@what); } |