Imported libcurl source code.
This commit is contained in:
@@ -0,0 +1,324 @@
|
||||
The test suite's file format is very simple and extensible, closely
|
||||
resembling XML. All data for a single test case resides in a single
|
||||
ASCII file. Labels mark the beginning and the end of all sections, and each
|
||||
label must be written in its own line. Comments are either XML-style
|
||||
(enclosed with <!-- and -->) or C-style (beginning with #) and must appear
|
||||
on their own lines and not alongside actual test data. Most test data files
|
||||
are syntactically valid XML, although a few files are not (lack of
|
||||
support for character entities and the preservation of CR/LF characters at
|
||||
the end of lines are the biggest differences).
|
||||
|
||||
The file begins with a 'testcase' tag, which encompasses the remainder of
|
||||
the file.
|
||||
|
||||
<testcase>
|
||||
|
||||
Each file is split up in three main sections: reply, client and verify. The
|
||||
reply section is used for the server to know what to send as a reply for the
|
||||
requests curl sends, the client section defines how the client should behave
|
||||
while the verify section defines how to verify that the data stored after a
|
||||
command has been run ended up correctly.
|
||||
|
||||
Each main section has a number of available subsections that can be
|
||||
specified, that will be checked/used if specified. This document includes all
|
||||
the subsections currently supported.
|
||||
|
||||
Main sections are 'info', 'reply', 'client' and 'verify'.
|
||||
|
||||
<info>
|
||||
<keywords>
|
||||
A newline-separated list of keywords describing what this test case uses and
|
||||
tests. Try to use an already used keyword. These keywords will be used for
|
||||
statistical/informational purposes and for choosing or skipping classes
|
||||
of tests. "Keywords" must begin with an alphabetic character, "-", "["
|
||||
or "{" and may actually consist of multiple words separated by spaces
|
||||
which are treated together as a single identifier.
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
<reply>
|
||||
<data [nocheck="1"] [sendzero="yes"] [base64="yes"]>
|
||||
data to be sent to the client on its request and later verified that it arrived
|
||||
safely. Set nocheck="1" to prevent the test script from verifying the arrival
|
||||
of this data.
|
||||
|
||||
If the data contains 'swsclose' anywhere within the start and end tag, and
|
||||
this is a HTTP test, then the connection will be closed by the server after
|
||||
this response is sent. If not, the connection will be kept persistent.
|
||||
|
||||
If the data contains 'swsbounce' anywhere within the start and end tag, the
|
||||
HTTP server will detect if this is a second request using the same test and
|
||||
part number and will then increase the part number with one. This is useful
|
||||
for auth tests and similar.
|
||||
|
||||
'sendzero' set to yes means that the (FTP) server will "send" the data even if
|
||||
the size is zero bytes. Used to verify curl's behaviour on zero bytes
|
||||
transfers.
|
||||
|
||||
'base64' set to yes means that the data provided in the test-file is a chunk
|
||||
of data encoded with base64. It is the only way a test case can contain binary
|
||||
data. (This attribute can in fact be used on any section, but it doesn't make
|
||||
much sense for other sections than "data").
|
||||
</data>
|
||||
<dataNUM>
|
||||
Send back this contents instead of the <data> one. The num is set by:
|
||||
A) The test number in the request line is >10000 and this is the remainder
|
||||
of [test case number]%10000.
|
||||
B) The request was HTTP and included digest details, which adds 1000 to NUM
|
||||
C) If a HTTP request is NTLM type-1, it adds 1001 to num
|
||||
D) If a HTTP request is NTLM type-3, it adds 1002 to num
|
||||
</dataNUM>
|
||||
<datacheck [nonewline="yes"]>
|
||||
if the data is sent but this is what should be checked afterwards. If
|
||||
'nonewline' is set, we will cut off the trailing newline of this given data
|
||||
before comparing with the one actually received by the client
|
||||
</datacheck>
|
||||
<size>
|
||||
number to return on a ftp SIZE command (set to -1 to make this command fail)
|
||||
</size>
|
||||
<mdtm>
|
||||
what to send back if the client sends a (FTP) MDTM command, set to -1 to
|
||||
have it return that the file doesn't exist
|
||||
</mdtm>
|
||||
<postcmd>
|
||||
special purpose server-command to control its behavior *after* the
|
||||
reply is sent
|
||||
For HTTP/HTTPS, these are supported:
|
||||
|
||||
wait [secs]
|
||||
- Pause for the given time
|
||||
</postcmd>
|
||||
<servercmd>
|
||||
Special-commands for the server.
|
||||
For FTP, these are supported:
|
||||
|
||||
REPLY [command] [return value] [response string]
|
||||
- Changes how the server responds to the [command]. [response string] is
|
||||
evaluated as a perl string, so it can contain embedded \r\n, for example.
|
||||
COUNT [command] [num]
|
||||
- Do the REPLY change for [command] only [num] times and then go back to the
|
||||
built-in approach
|
||||
DELAY [command] [secs]
|
||||
- Delay responding to this command for the given time
|
||||
RETRWEIRDO
|
||||
- Enable the "weirdo" RETR case when multiple response lines appear at once
|
||||
when a file is transfered
|
||||
RETRNOSIZE
|
||||
- Make sure the RETR response doesn't contain the size of the file
|
||||
NOSAVE
|
||||
- Don't actually save what is received
|
||||
SLOWDOWN
|
||||
- Send FTP responses with 0.01 sec delay between each byte
|
||||
PASVBADIP
|
||||
- makes PASV send back an illegal IP in its 227 response
|
||||
|
||||
For HTTP/HTTPS:
|
||||
auth_required if this is set and a POST/PUT is made without auth, the
|
||||
server will NOT wait for the full request body to get sent
|
||||
idle do nothing after receiving the request, just "sit idle"
|
||||
stream continuously send data to the client, never-ending
|
||||
pipe: [num] tell the server to expect this many HTTP requests before
|
||||
sending back anything, to allow pipelining tests
|
||||
skip: [num] instructs the server to ignore reading this many bytes from a PUT
|
||||
or POST request
|
||||
</servercmd>
|
||||
</reply>
|
||||
|
||||
<client>
|
||||
|
||||
<server>
|
||||
What server(s) this test case requires/uses:
|
||||
|
||||
file
|
||||
ftp
|
||||
ftp-ipv6
|
||||
ftps
|
||||
http
|
||||
http-ipv6
|
||||
https
|
||||
none
|
||||
scp
|
||||
sftp
|
||||
socks4
|
||||
socks5
|
||||
|
||||
Give only one per line. This subsection is mandatory.
|
||||
</server>
|
||||
|
||||
<features>
|
||||
A list of features that MUST be present in the client/library for this test to
|
||||
be able to run (if these features are not present, the test will be
|
||||
SKIPPED). Features testable here are:
|
||||
|
||||
crypto
|
||||
getrlimit
|
||||
GnuTLS
|
||||
idn
|
||||
ipv6
|
||||
large_file
|
||||
libz
|
||||
netrc_debug
|
||||
NSS
|
||||
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>
|
||||
Using the same syntax as in <server> but when mentioned here these servers
|
||||
are explicitly KILLED when this test case is completed. Only use this if there
|
||||
is no other alternatives. Using this of course requires subsequent tests to
|
||||
restart servers.
|
||||
</killserver>
|
||||
|
||||
<precheck>
|
||||
A command line that if set gets run by the test script before the test. If an
|
||||
output is displayed by the command or if the return code is non-zero, the test
|
||||
will be skipped and the (single-line) output will be displayed as reason for
|
||||
not running the test. Variables are substituted as in the <command> section.
|
||||
</precheck>
|
||||
|
||||
<postcheck>
|
||||
A command line that if set gets run by the test script after the test. If
|
||||
the command exists with a non-zero status code, the test will be considered
|
||||
to have failed. Variables are substituted as in the <command> section.
|
||||
</postcheck>
|
||||
|
||||
<tool>
|
||||
Name of tool to use instead of "curl". This tool must be built and exist
|
||||
in the libtest/ directory.
|
||||
</tool>
|
||||
|
||||
<name>
|
||||
test case description
|
||||
</name>
|
||||
|
||||
<setenv>
|
||||
variable1=contents1
|
||||
variable2=contents2
|
||||
|
||||
Set the given environment variables to the specified value before the actual
|
||||
command is run. They are cleared again after the command has been run.
|
||||
Variables are first substituted as in the <command> section.
|
||||
</setenv>
|
||||
|
||||
<command [option="no-output"] [timeout="secs"] [delay="secs"]>
|
||||
command line to run, there's a bunch of %variables that get replaced
|
||||
accordingly.
|
||||
|
||||
Note that the URL that gets passed to the server actually controls what data
|
||||
that is returned. The last slash in the URL must be followed by a number. That
|
||||
number (N) will be used by the test-server to load test case N and return the
|
||||
data that is defined within the <reply><data></data></reply> section.
|
||||
|
||||
If a CONNECT is used to the server (to emulate HTTPS etc over proxy), the port
|
||||
number given in the CONNECT request will be used to identify which test that
|
||||
is being run, if the proxy host name is said to start with 'test'.
|
||||
|
||||
Set option="no-output" to prevent the test script to slap on the --output
|
||||
argument that directs the output to a file. The --output is also not added if
|
||||
the verify/stdout section is used.
|
||||
|
||||
Set timeout="secs" to override default server logs advisor read lock timeout.
|
||||
This timeout is used by the test harness, once that the command has completed
|
||||
execution, to wait for the test server to write out server side log files and
|
||||
remove the lock that advised not to read them. The "secs" parameter is the not
|
||||
negative integer number of seconds for the timeout. This 'timeout' attribute
|
||||
is documented for completeness sake, but is deep test harness stuff and only
|
||||
needed for very singular and specific test cases. Avoid using it.
|
||||
|
||||
Set delay="secs" to introduce a time delay once that the command has completed
|
||||
execution and before the <postcheck> section runs. The "secs" parameter is the
|
||||
not negative integer number of seconds for the delay. This 'delay' attribute
|
||||
is intended for very specific test cases, and normally not needed.
|
||||
|
||||
Available substitute variables include:
|
||||
%CLIENTIP - IPv4 address of the client running curl
|
||||
%CLIENT6IP - IPv6 address of the client running curl
|
||||
%HOSTIP - IPv4 address of the host running this test
|
||||
%HOSTPORT - Port number of the HTTP server
|
||||
%HOST6IP - IPv6 address of the host running this test
|
||||
%HOST6PORT - IPv6 port number of the HTTP server
|
||||
%HTTPSPORT - Port number of the HTTPS server
|
||||
%FTPPORT - Port number of the FTP server
|
||||
%FTP6PORT - IPv6 port number of the FTP server
|
||||
%FTPSPORT - Port number of the FTPS server
|
||||
%FTP2PORT - Port number of the FTP server 2
|
||||
%FTPTIME2 - Timeout in seconds that should be just sufficient to receive
|
||||
a response from the test FTP server
|
||||
%TFTPPORT - Port number of the TFTP server
|
||||
%TFTP6PORT - IPv6 port number of the TFTP server
|
||||
%SSHPORT - Port number of the SCP/SFTP server
|
||||
%SOCKSPORT - Port number of the SOCKS4/5 server
|
||||
%SRCDIR - Full path to the source dir
|
||||
%PWD - Current directory
|
||||
%CURL - Path to the curl executable
|
||||
%USER - Login ID of the user running the test
|
||||
</command>
|
||||
|
||||
<file name="log/filename">
|
||||
This creates the named file with this content before the test case is run,
|
||||
which is useful if the test case needs a file to act on.
|
||||
Variables are substituted on the contents of the file as in the <command>
|
||||
section.
|
||||
</file>
|
||||
|
||||
<stdin>
|
||||
Pass this given data on stdin to the tool.
|
||||
</stdin>
|
||||
|
||||
</client>
|
||||
|
||||
<verify>
|
||||
<errorcode>
|
||||
numerical error code curl is supposed to return. Specify a list of accepted
|
||||
error codes by separating multiple numbers with comma. See test 237 for an
|
||||
example.
|
||||
</errorcode>
|
||||
<strip>
|
||||
One regex per line that is removed from the protocol dumps before the
|
||||
comparison is made. This is very useful to remove dependencies on dynamically
|
||||
changing protocol data such as port numbers or user-agent strings.
|
||||
</strip>
|
||||
<strippart>
|
||||
One perl op per line that operates on the protocol dump. This is pretty
|
||||
advanced. Example: "s/^EPRT .*/EPRT stripped/"
|
||||
</strippart>
|
||||
<protocol [nonewline="yes"]>
|
||||
the protocol dump curl should transmit, if 'nonewline' is set, we will cut
|
||||
off the trailing newline of this given data before comparing with the one
|
||||
actually sent by the client
|
||||
Variables are substituted as in the <command> section.
|
||||
</protocol>
|
||||
<stdout [mode="text"] [nonewline="yes"]>
|
||||
This verifies that this data was passed to stdout. Variables are
|
||||
substituted as in the <command> section.
|
||||
|
||||
Use the mode="text" attribute if the output is in text mode on platforms that
|
||||
have a text/binary difference.
|
||||
|
||||
If 'nonewline' is set, we will cut off the trailing newline of this given data
|
||||
before comparing with the one actually received by the client
|
||||
</stdout>
|
||||
<file name="log/filename" [mode="text"]>
|
||||
The file's contents must be identical to this after the test is complete.
|
||||
Use the mode="text" attribute if the output is in text mode on platforms that
|
||||
have a text/binary difference.
|
||||
Variables are substituted as in the <command> section.
|
||||
</file>
|
||||
<stripfile>
|
||||
One perl op per line that operates on the file before being compared. This is
|
||||
pretty advanced. Example: "s/^EPRT .*/EPRT stripped/"
|
||||
</stripfile>
|
||||
<upload>
|
||||
the contents of the upload data curl should have sent
|
||||
</upload>
|
||||
<valgrind>
|
||||
disable - disables the valgrind log check for this test
|
||||
</valgrind>
|
||||
</verify>
|
||||
|
||||
</testcase>
|
||||
@@ -0,0 +1,74 @@
|
||||
#***************************************************************************
|
||||
# _ _ ____ _
|
||||
# Project ___| | | | _ \| |
|
||||
# / __| | | | |_) | |
|
||||
# | (__| |_| | _ <| |___
|
||||
# \___|\___/|_| \_\_____|
|
||||
#
|
||||
# Copyright (C) 1998 - 2008, Daniel Stenberg, <[email protected]>, et al.
|
||||
#
|
||||
# This software is licensed as described in the file COPYING, which
|
||||
# you should have received as part of this distribution. The terms
|
||||
# are also available at http://curl.haxx.se/docs/copyright.html.
|
||||
#
|
||||
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
# copies of the Software, and permit persons to whom the Software is
|
||||
# furnished to do so, under the terms of the COPYING file.
|
||||
#
|
||||
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
# KIND, either express or implied.
|
||||
#
|
||||
# $Id: Makefile.am,v 1.47 2008-01-03 20:48:22 yangtse Exp $
|
||||
###########################################################################
|
||||
|
||||
HTMLPAGES = testcurl.html runtests.html
|
||||
PDFPAGES = testcurl.pdf runtests.pdf
|
||||
|
||||
EXTRA_DIST = ftpserver.pl httpserver.pl httpsserver.pl runtests.pl getpart.pm \
|
||||
FILEFORMAT README stunnel.pem memanalyze.pl testcurl.pl valgrind.pm ftp.pm \
|
||||
sshserver.pl sshhelp.pm testcurl.1 runtests.1 $(HTMLPAGES) $(PDFPAGES)
|
||||
|
||||
SUBDIRS = data server libtest
|
||||
|
||||
PERLFLAGS = -I$(srcdir)
|
||||
|
||||
CLEANFILES = .http.pid .https.pid .ftp.pid .ftps.pid
|
||||
|
||||
MAN2HTML= roffit < $< >$@
|
||||
|
||||
curl:
|
||||
@cd $(top_builddir) && $(MAKE)
|
||||
|
||||
if CROSSCOMPILING
|
||||
TEST = @echo "NOTICE: we can't run the tests when cross-compiling!"
|
||||
TEST_Q =
|
||||
TEST_F =
|
||||
TEST_T =
|
||||
else # if not cross-compiling:
|
||||
TEST = srcdir=$(srcdir) $(PERL) $(PERLFLAGS) $(srcdir)/runtests.pl
|
||||
TEST_Q = -a -s
|
||||
TEST_F = -a -p
|
||||
TEST_T = -a -t
|
||||
endif
|
||||
|
||||
test: all
|
||||
$(TEST)
|
||||
|
||||
quiet-test: all
|
||||
$(TEST) $(TEST_Q)
|
||||
|
||||
full-test: all
|
||||
$(TEST) $(TEST_F)
|
||||
|
||||
torture-test: all
|
||||
$(TEST) $(TEST_T)
|
||||
|
||||
.1.html:
|
||||
$(MAN2HTML)
|
||||
|
||||
.1.pdf:
|
||||
@(foo=`echo $@ | sed -e 's/\.[0-9]$$//g'`; \
|
||||
groff -Tps -man $< >$$foo.ps; \
|
||||
ps2pdf $$foo.ps $@; \
|
||||
rm $$foo.ps; \
|
||||
echo "converted $< to $@")
|
||||
@@ -0,0 +1,596 @@
|
||||
# Makefile.in generated by automake 1.9.6 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
#***************************************************************************
|
||||
# _ _ ____ _
|
||||
# Project ___| | | | _ \| |
|
||||
# / __| | | | |_) | |
|
||||
# | (__| |_| | _ <| |___
|
||||
# \___|\___/|_| \_\_____|
|
||||
#
|
||||
# Copyright (C) 1998 - 2008, Daniel Stenberg, <[email protected]>, et al.
|
||||
#
|
||||
# This software is licensed as described in the file COPYING, which
|
||||
# you should have received as part of this distribution. The terms
|
||||
# are also available at http://curl.haxx.se/docs/copyright.html.
|
||||
#
|
||||
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
# copies of the Software, and permit persons to whom the Software is
|
||||
# furnished to do so, under the terms of the COPYING file.
|
||||
#
|
||||
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
# KIND, either express or implied.
|
||||
#
|
||||
# $Id: Makefile.am,v 1.47 2008-01-03 20:48:22 yangtse Exp $
|
||||
###########################################################################
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
top_builddir = ..
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
INSTALL = @INSTALL@
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = $(program_transform_name)
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
subdir = tests
|
||||
DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
|
||||
$(top_srcdir)/m4/curl-confopts.m4 \
|
||||
$(top_srcdir)/m4/curl-functions.m4 \
|
||||
$(top_srcdir)/m4/curl-reentrant.m4 $(top_srcdir)/acinclude.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
||||
CONFIG_HEADER = $(top_builddir)/lib/config.h \
|
||||
$(top_builddir)/src/config.h \
|
||||
$(top_builddir)/include/curl/curlbuild.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
|
||||
html-recursive info-recursive install-data-recursive \
|
||||
install-exec-recursive install-info-recursive \
|
||||
install-recursive installcheck-recursive installdirs-recursive \
|
||||
pdf-recursive ps-recursive uninstall-info-recursive \
|
||||
uninstall-recursive
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DIST_SUBDIRS = $(SUBDIRS)
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMDEP_FALSE = @AMDEP_FALSE@
|
||||
AMDEP_TRUE = @AMDEP_TRUE@
|
||||
AMTAR = @AMTAR@
|
||||
AR = @AR@
|
||||
AS = @AS@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CROSSCOMPILING_FALSE = @CROSSCOMPILING_FALSE@
|
||||
CROSSCOMPILING_TRUE = @CROSSCOMPILING_TRUE@
|
||||
CURL_CA_BUNDLE = @CURL_CA_BUNDLE@
|
||||
CURL_DISABLE_DICT = @CURL_DISABLE_DICT@
|
||||
CURL_DISABLE_FILE = @CURL_DISABLE_FILE@
|
||||
CURL_DISABLE_FTP = @CURL_DISABLE_FTP@
|
||||
CURL_DISABLE_HTTP = @CURL_DISABLE_HTTP@
|
||||
CURL_DISABLE_LDAP = @CURL_DISABLE_LDAP@
|
||||
CURL_DISABLE_LDAPS = @CURL_DISABLE_LDAPS@
|
||||
CURL_DISABLE_PROXY = @CURL_DISABLE_PROXY@
|
||||
CURL_DISABLE_TELNET = @CURL_DISABLE_TELNET@
|
||||
CURL_DISABLE_TFTP = @CURL_DISABLE_TFTP@
|
||||
CURL_LIBS = @CURL_LIBS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DLLTOOL = @DLLTOOL@
|
||||
DSYMUTIL = @DSYMUTIL@
|
||||
ECHO = @ECHO@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
GREP = @GREP@
|
||||
HAVE_ARES = @HAVE_ARES@
|
||||
HAVE_LIBZ = @HAVE_LIBZ@
|
||||
HAVE_LIBZ_FALSE = @HAVE_LIBZ_FALSE@
|
||||
HAVE_LIBZ_TRUE = @HAVE_LIBZ_TRUE@
|
||||
HAVE_PK11_CREATEGENERICOBJECT = @HAVE_PK11_CREATEGENERICOBJECT@
|
||||
IDN_ENABLED = @IDN_ENABLED@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
IPV6_ENABLED = @IPV6_ENABLED@
|
||||
KRB4_ENABLED = @KRB4_ENABLED@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBCURL_LIBS = @LIBCURL_LIBS@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LIBTOOL = @LIBTOOL@
|
||||
LN_S = @LN_S@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAINT = @MAINT@
|
||||
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
|
||||
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MANOPT = @MANOPT@
|
||||
MIMPURE_FALSE = @MIMPURE_FALSE@
|
||||
MIMPURE_TRUE = @MIMPURE_TRUE@
|
||||
NMEDIT = @NMEDIT@
|
||||
NO_UNDEFINED_FALSE = @NO_UNDEFINED_FALSE@
|
||||
NO_UNDEFINED_TRUE = @NO_UNDEFINED_TRUE@
|
||||
NROFF = @NROFF@
|
||||
OBJDUMP = @OBJDUMP@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PERL = @PERL@
|
||||
PKGADD_NAME = @PKGADD_NAME@
|
||||
PKGADD_PKG = @PKGADD_PKG@
|
||||
PKGADD_VENDOR = @PKGADD_VENDOR@
|
||||
PKGCONFIG = @PKGCONFIG@
|
||||
RANDOM_FILE = @RANDOM_FILE@
|
||||
RANLIB = @RANLIB@
|
||||
REQUIRE_LIB_DEPS = @REQUIRE_LIB_DEPS@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
SONAME_BUMP_FALSE = @SONAME_BUMP_FALSE@
|
||||
SONAME_BUMP_TRUE = @SONAME_BUMP_TRUE@
|
||||
SSL_ENABLED = @SSL_ENABLED@
|
||||
STATICLIB_FALSE = @STATICLIB_FALSE@
|
||||
STATICLIB_TRUE = @STATICLIB_TRUE@
|
||||
STRIP = @STRIP@
|
||||
SUPPORT_FEATURES = @SUPPORT_FEATURES@
|
||||
SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@
|
||||
TEST_SERVER_LIBS = @TEST_SERVER_LIBS@
|
||||
USE_GNUTLS = @USE_GNUTLS@
|
||||
USE_LIBSSH2 = @USE_LIBSSH2@
|
||||
USE_MANUAL_FALSE = @USE_MANUAL_FALSE@
|
||||
USE_MANUAL_TRUE = @USE_MANUAL_TRUE@
|
||||
USE_NSS = @USE_NSS@
|
||||
USE_SSLEAY = @USE_SSLEAY@
|
||||
USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
|
||||
VERSION = @VERSION@
|
||||
VERSIONNUM = @VERSIONNUM@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
||||
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
build = @build@
|
||||
build_alias = @build_alias@
|
||||
build_cpu = @build_cpu@
|
||||
build_os = @build_os@
|
||||
build_vendor = @build_vendor@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host = @host@
|
||||
host_alias = @host_alias@
|
||||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
htmldir = @htmldir@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
libext = @libext@
|
||||
localedir = @localedir@
|
||||
localstatedir = @localstatedir@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
oldincludedir = @oldincludedir@
|
||||
pdfdir = @pdfdir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
subdirs = @subdirs@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
HTMLPAGES = testcurl.html runtests.html
|
||||
PDFPAGES = testcurl.pdf runtests.pdf
|
||||
EXTRA_DIST = ftpserver.pl httpserver.pl httpsserver.pl runtests.pl getpart.pm \
|
||||
FILEFORMAT README stunnel.pem memanalyze.pl testcurl.pl valgrind.pm ftp.pm \
|
||||
sshserver.pl sshhelp.pm testcurl.1 runtests.1 $(HTMLPAGES) $(PDFPAGES)
|
||||
|
||||
SUBDIRS = data server libtest
|
||||
PERLFLAGS = -I$(srcdir)
|
||||
CLEANFILES = .http.pid .https.pid .ftp.pid .ftps.pid
|
||||
MAN2HTML = roffit < $< >$@
|
||||
@CROSSCOMPILING_FALSE@TEST = srcdir=$(srcdir) $(PERL) $(PERLFLAGS) $(srcdir)/runtests.pl
|
||||
@CROSSCOMPILING_TRUE@TEST = @echo "NOTICE: we can't run the tests when cross-compiling!"
|
||||
@CROSSCOMPILING_FALSE@TEST_Q = -a -s
|
||||
@CROSSCOMPILING_TRUE@TEST_Q =
|
||||
@CROSSCOMPILING_FALSE@TEST_F = -a -p
|
||||
@CROSSCOMPILING_TRUE@TEST_F =
|
||||
@CROSSCOMPILING_FALSE@TEST_T = -a -t
|
||||
@CROSSCOMPILING_TRUE@TEST_T =
|
||||
all: all-recursive
|
||||
|
||||
.SUFFIXES:
|
||||
.SUFFIXES: .1 .html .pdf
|
||||
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
|
||||
&& exit 0; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --foreign tests/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
|
||||
distclean-libtool:
|
||||
-rm -f libtool
|
||||
uninstall-info-am:
|
||||
|
||||
# This directory's subdirectories are mostly independent; you can cd
|
||||
# into them and run `make' without going through this Makefile.
|
||||
# To change the values of `make' variables: instead of editing Makefiles,
|
||||
# (1) if the variable is set in `config.status', edit `config.status'
|
||||
# (which will cause the Makefiles to be regenerated when you run `make');
|
||||
# (2) otherwise, pass the desired values on the `make' command line.
|
||||
$(RECURSIVE_TARGETS):
|
||||
@failcom='exit 1'; \
|
||||
for f in x $$MAKEFLAGS; do \
|
||||
case $$f in \
|
||||
*=* | --[!k]*);; \
|
||||
*k*) failcom='fail=yes';; \
|
||||
esac; \
|
||||
done; \
|
||||
dot_seen=no; \
|
||||
target=`echo $@ | sed s/-recursive//`; \
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
echo "Making $$target in $$subdir"; \
|
||||
if test "$$subdir" = "."; then \
|
||||
dot_seen=yes; \
|
||||
local_target="$$target-am"; \
|
||||
else \
|
||||
local_target="$$target"; \
|
||||
fi; \
|
||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
|| eval $$failcom; \
|
||||
done; \
|
||||
if test "$$dot_seen" = "no"; then \
|
||||
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
|
||||
fi; test -z "$$fail"
|
||||
|
||||
mostlyclean-recursive clean-recursive distclean-recursive \
|
||||
maintainer-clean-recursive:
|
||||
@failcom='exit 1'; \
|
||||
for f in x $$MAKEFLAGS; do \
|
||||
case $$f in \
|
||||
*=* | --[!k]*);; \
|
||||
*k*) failcom='fail=yes';; \
|
||||
esac; \
|
||||
done; \
|
||||
dot_seen=no; \
|
||||
case "$@" in \
|
||||
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
|
||||
*) list='$(SUBDIRS)' ;; \
|
||||
esac; \
|
||||
rev=''; for subdir in $$list; do \
|
||||
if test "$$subdir" = "."; then :; else \
|
||||
rev="$$subdir $$rev"; \
|
||||
fi; \
|
||||
done; \
|
||||
rev="$$rev ."; \
|
||||
target=`echo $@ | sed s/-recursive//`; \
|
||||
for subdir in $$rev; do \
|
||||
echo "Making $$target in $$subdir"; \
|
||||
if test "$$subdir" = "."; then \
|
||||
local_target="$$target-am"; \
|
||||
else \
|
||||
local_target="$$target"; \
|
||||
fi; \
|
||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
|| eval $$failcom; \
|
||||
done && test -z "$$fail"
|
||||
tags-recursive:
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
|
||||
done
|
||||
ctags-recursive:
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
|
||||
done
|
||||
|
||||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
mkid -fID $$unique
|
||||
tags: TAGS
|
||||
|
||||
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
|
||||
include_option=--etags-include; \
|
||||
empty_fix=.; \
|
||||
else \
|
||||
include_option=--include; \
|
||||
empty_fix=; \
|
||||
fi; \
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
test ! -f $$subdir/TAGS || \
|
||||
tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
|
||||
fi; \
|
||||
done; \
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$tags $$unique; \
|
||||
fi
|
||||
ctags: CTAGS
|
||||
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|
||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
$$tags $$unique
|
||||
|
||||
GTAGS:
|
||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
&& cd $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) $$here
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
|
||||
list='$(DISTFILES)'; for file in $$list; do \
|
||||
case $$file in \
|
||||
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
|
||||
esac; \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
|
||||
dir="/$$dir"; \
|
||||
$(mkdir_p) "$(distdir)$$dir"; \
|
||||
else \
|
||||
dir=''; \
|
||||
fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
fi; \
|
||||
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
|
||||
else \
|
||||
test -f $(distdir)/$$file \
|
||||
|| cp -p $$d/$$file $(distdir)/$$file \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
test -d "$(distdir)/$$subdir" \
|
||||
|| $(mkdir_p) "$(distdir)/$$subdir" \
|
||||
|| exit 1; \
|
||||
distdir=`$(am__cd) $(distdir) && pwd`; \
|
||||
top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
|
||||
(cd $$subdir && \
|
||||
$(MAKE) $(AM_MAKEFLAGS) \
|
||||
top_distdir="$$top_distdir" \
|
||||
distdir="$$distdir/$$subdir" \
|
||||
distdir) \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
check-am: all-am
|
||||
check: check-recursive
|
||||
all-am: Makefile
|
||||
installdirs: installdirs-recursive
|
||||
installdirs-am:
|
||||
install: install-recursive
|
||||
install-exec: install-exec-recursive
|
||||
install-data: install-data-recursive
|
||||
uninstall: uninstall-recursive
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
|
||||
installcheck: installcheck-recursive
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
clean: clean-recursive
|
||||
|
||||
clean-am: clean-generic clean-libtool mostlyclean-am
|
||||
|
||||
distclean: distclean-recursive
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-generic distclean-libtool \
|
||||
distclean-tags
|
||||
|
||||
dvi: dvi-recursive
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-recursive
|
||||
|
||||
info: info-recursive
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am:
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-info: install-info-recursive
|
||||
|
||||
install-man:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-recursive
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-recursive
|
||||
|
||||
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
|
||||
|
||||
pdf: pdf-recursive
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-recursive
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am: uninstall-info-am
|
||||
|
||||
uninstall-info: uninstall-info-recursive
|
||||
|
||||
.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \
|
||||
clean clean-generic clean-libtool clean-recursive ctags \
|
||||
ctags-recursive distclean distclean-generic distclean-libtool \
|
||||
distclean-recursive distclean-tags distdir dvi dvi-am html \
|
||||
html-am info info-am install install-am install-data \
|
||||
install-data-am install-exec install-exec-am install-info \
|
||||
install-info-am install-man install-strip installcheck \
|
||||
installcheck-am installdirs installdirs-am maintainer-clean \
|
||||
maintainer-clean-generic maintainer-clean-recursive \
|
||||
mostlyclean mostlyclean-generic mostlyclean-libtool \
|
||||
mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \
|
||||
uninstall uninstall-am uninstall-info-am
|
||||
|
||||
|
||||
curl:
|
||||
@cd $(top_builddir) && $(MAKE)
|
||||
|
||||
test: all
|
||||
$(TEST)
|
||||
|
||||
quiet-test: all
|
||||
$(TEST) $(TEST_Q)
|
||||
|
||||
full-test: all
|
||||
$(TEST) $(TEST_F)
|
||||
|
||||
torture-test: all
|
||||
$(TEST) $(TEST_T)
|
||||
|
||||
.1.html:
|
||||
$(MAN2HTML)
|
||||
|
||||
.1.pdf:
|
||||
@(foo=`echo $@ | sed -e 's/\.[0-9]$$//g'`; \
|
||||
groff -Tps -man $< >$$foo.ps; \
|
||||
ps2pdf $$foo.ps $@; \
|
||||
rm $$foo.ps; \
|
||||
echo "converted $< to $@")
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
||||
@@ -0,0 +1,153 @@
|
||||
_ _ ____ _
|
||||
___| | | | _ \| |
|
||||
/ __| | | | |_) | |
|
||||
| (__| |_| | _ <| |___
|
||||
\___|\___/|_| \_\_____|
|
||||
|
||||
The cURL Test Suite
|
||||
|
||||
Requires:
|
||||
perl (and a unix-style shell)
|
||||
diff (when a test fails, a diff is shown)
|
||||
stunnel (for HTTPS and FTPS tests)
|
||||
OpenSSH or SunSSH (for SCP, SFTP and SOCKS4/5 tests)
|
||||
|
||||
TCP ports used by default:
|
||||
|
||||
- 8990 on localhost for HTTP tests
|
||||
- 8991 on localhost for HTTPS tests
|
||||
- 8994 on localhost for HTTP IPv6 tests
|
||||
- 8992 on localhost for FTP tests
|
||||
- 8995 on localhost for FTP (2) tests
|
||||
- 8993 on localhost for FTPS tests
|
||||
- 8996 on localhost for FTP IPv6 tests
|
||||
- 8997 on localhost for TFTP tests
|
||||
- 8999 on localhost for SCP/SFTP tests
|
||||
- 9000 on localhost for SOCKS tests
|
||||
|
||||
The test suite runs simple FTP, HTTP and TFTP servers on these ports to
|
||||
which it makes requests. For SSL tests, it runs stunnel to handle
|
||||
encryption to the regular servers. For SSH, it runs a standard OpenSSH
|
||||
server. For SOCKS4/5 tests SSH is used to perform the SOCKS functionality
|
||||
and requires a SSH client and server.
|
||||
|
||||
The base port number shown above can be changed using runtests' -b option
|
||||
to allow running more than one instance of the test suite simultaneously
|
||||
on one machine.
|
||||
|
||||
Run:
|
||||
'make test'. This builds the test suite support code and invokes the
|
||||
'runtests.pl' perl script to run all the tests. Edit the top variables
|
||||
of that script in case you have some specific needs, or run the script
|
||||
manually (after the support code has been built).
|
||||
|
||||
The script breaks on the first test that doesn't do OK. Use -a to prevent
|
||||
the script from abort on the first error. Run the script with -v for more
|
||||
verbose output. Use -d to run the test servers with debug output enabled as
|
||||
well. Specifying -k keeps all the log files generated by the test intact.
|
||||
|
||||
Use -s for shorter output, or pass test numbers to run specific tests only
|
||||
(like "./runtests.pl 3 4" to test 3 and 4 only). It also supports test case
|
||||
ranges with 'to', as in "./runtests 3 to 9" which runs the seven tests from
|
||||
3 to 9. Any test numbers starting with ! are disabled, as are any test
|
||||
numbers found in the file data/DISABLED (one per line).
|
||||
|
||||
Shell startup scripts:
|
||||
Tests which use the ssh test server, SCP/SFTP/SOCKS tests, might be badly
|
||||
influenced by the output of system wide or user specific shell startup scripts,
|
||||
.bashrc, .profile, /etc/csh.cshrc, .login, /etc/bashrc, etc. which output text
|
||||
messages or escape sequences on user login. When these shell startup messages
|
||||
or escape sequences are output they might corrupt the expected stream of data
|
||||
which flows to the sftp-server or from the ssh client which can result in bad
|
||||
test behaviour or even prevent the test server from running.
|
||||
|
||||
If the test suite ssh or sftp server fails to start up and logs the message
|
||||
'Received message too long' then you are certainly suffering the unwanted
|
||||
output of a shell startup script. Locate, cleanup or adjust the shell script.
|
||||
|
||||
Memory:
|
||||
The test script will check that all allocated memory is freed properly IF
|
||||
curl has been built with the CURLDEBUG define set. The script will
|
||||
automatically detect if that is the case, and it will use the ../memanalyze
|
||||
script to analyze the memory debugging output.
|
||||
|
||||
The -t option will enable torture testing mode, which runs each test
|
||||
many times but causes a different memory allocation to fail on each
|
||||
successive run. This tests the out of memory error handling code to
|
||||
ensure that memory leaks do not occur even in those situations.
|
||||
|
||||
Debug:
|
||||
If a test case fails, you can conveniently get the script to invoke the
|
||||
debugger (gdb) for you with the server running and the exact same command
|
||||
line parameters that failed. Just invoke 'runtests.pl <test number> -g' and
|
||||
then just type 'run' in the debugger to perform the command through the
|
||||
debugger.
|
||||
|
||||
If a test case causes a core dump, analyze it by running gdb like:
|
||||
|
||||
# gdb ../curl/src core
|
||||
|
||||
... and get a stack trace with the gdb command:
|
||||
|
||||
(gdb) where
|
||||
|
||||
Logs:
|
||||
All logs are generated in the logs/ subdirectory (it is emptied first
|
||||
in the runtests.pl script). Use runtests.pl -k to keep the temporary files
|
||||
after the test run.
|
||||
|
||||
Data:
|
||||
All test cases are put in the data/ subdirectory. Each test is stored in the
|
||||
file named according to the test number.
|
||||
|
||||
See FILEFORMAT for the description of the test case files.
|
||||
|
||||
Code coverage:
|
||||
gcc provides a tool that can determine the code coverage figures for
|
||||
the test suite. To use it, configure curl with
|
||||
CFLAGS='-fprofile-arcs -ftest-coverage -g -O0'. Make sure you run the normal
|
||||
and torture tests to get more full coverage, i.e. do:
|
||||
|
||||
make test
|
||||
make test-torture
|
||||
|
||||
The graphical tool ggcov can be used to browse the source and create
|
||||
coverage reports on *NIX hosts:
|
||||
|
||||
ggcov -r lib src
|
||||
|
||||
The text mode tool gcov may also be used, but it doesn't handle object files
|
||||
in more than one directory very well.
|
||||
|
||||
Remote testing:
|
||||
The runtests.pl script provides some hooks to allow curl to be tested on a
|
||||
machine where perl can not be run. The test framework in this case runs on
|
||||
a workstation where perl is available, while curl itself is run on a remote
|
||||
system using ssh or some other remote execution method. See the comments at
|
||||
the beginning of runtests.pl for details.
|
||||
|
||||
TEST CASE NUMBERS
|
||||
|
||||
So far, I've used this system:
|
||||
|
||||
1 - 99 HTTP
|
||||
100 - 199 FTP*
|
||||
200 - 299 FILE*
|
||||
300 - 399 HTTPS
|
||||
400 - 499 FTPS
|
||||
500 - 599 libcurl source code tests, not using the curl command tool
|
||||
600 - 699 SCP/SFTP
|
||||
700 - 799 SOCKS4 (even numbers) and SOCK5 (odd numbers)
|
||||
1000 - 1999 miscellaneous*
|
||||
2000 - x multiple sequential protocols per test case*
|
||||
|
||||
Since 30-apr-2003, there's nothing in the system that requires us to keep
|
||||
within these number series, and those sections marked with * actually
|
||||
contain tests for a variety of protocols. Each test case now specifies
|
||||
its own server requirements, independent of test number.
|
||||
|
||||
TODO:
|
||||
|
||||
* Add tests for TELNET, LDAP, DICT...
|
||||
* SOCKS4/5 test deficiencies - no proxy authentication tests as SSH (the
|
||||
test mechanism) doesn't support them
|
||||
@@ -0,0 +1,5 @@
|
||||
# $Id: DISABLED,v 1.36 2008-10-21 07:10:25 danf Exp $
|
||||
# This file can be used to specify test cases that should not run when all
|
||||
# test cases are run by runtests.pl. Just add the plain test case numbers, one
|
||||
# per line.
|
||||
# Lines starting with '#' letters are treated as comments.
|
||||
@@ -0,0 +1,81 @@
|
||||
iall:
|
||||
install:
|
||||
test:
|
||||
|
||||
EXTRA_DIST = test1 test108 test117 test127 test20 test27 test34 test46 \
|
||||
test10 test109 test118 test13 test200 test28 test36 test47 test100 test11 \
|
||||
test119 test14 test201 test29 test37 test5 test101 test110 test12 test15 \
|
||||
test202 test3 test4 test6 test102 test111 test120 test16 test21 test30 \
|
||||
test7 test103 test112 test121 test17 test22 test300 test8 test104 test113 \
|
||||
test122 test18 test23 test301 test9 test105 test114 test123 test19 test24 \
|
||||
test302 test43 test31 test106 test115 test124 test190 test25 test303 \
|
||||
test44 test38 test107 test116 test125 test2 test26 test33 test45 test126 \
|
||||
test304 test39 test32 test128 test48 test306 test130 test131 test132 \
|
||||
test133 test134 test135 test305 test49 test50 test51 test52 test53 test54 \
|
||||
test55 test56 test500 test501 test502 test503 test504 test136 test57 \
|
||||
test137 test138 test58 test139 test140 test141 test59 test60 test61 \
|
||||
test142 test143 test62 test63 test64 test65 test66 test144 test145 test67 \
|
||||
test68 test41 test40 test42 test69 test70 test71 test72 test73 test146 \
|
||||
test505 test74 test75 test76 test77 test78 test147 test148 test506 test79 \
|
||||
test80 test81 test82 test83 test84 test85 test86 test87 test507 test149 \
|
||||
test88 test89 test90 test508 test91 test92 test203 test93 test94 test95 \
|
||||
test510 test97 test98 test99 test150 test151 test152 test153 \
|
||||
test154 test155 test156 test157 test158 test159 test511 test160 test161 \
|
||||
test162 test163 test164 test512 test165 test166 test167 test168 test169 \
|
||||
test170 test171 test172 test204 test205 test173 test174 test175 test176 \
|
||||
test177 test513 test514 test178 test179 test180 test181 test182 test183 \
|
||||
test184 test185 test186 test187 test188 test189 test191 test192 test193 \
|
||||
test194 test195 test196 test197 test198 test515 test516 test517 test518 \
|
||||
test210 test211 test212 test220 test221 test222 test223 test224 test206 \
|
||||
test207 test208 test209 test213 test240 test241 test242 test519 test214 \
|
||||
test215 test216 test217 test218 test199 test225 test226 test227 test228 \
|
||||
test229 test233 test234 test235 test236 test520 test237 test238 test239 \
|
||||
test243 test245 test246 test247 test248 test249 test250 test251 test252 \
|
||||
test253 test254 test255 test521 test522 test523 test256 test257 test258 \
|
||||
test259 test260 test261 test262 test263 test264 test265 test266 test267 \
|
||||
test268 test269 test270 test271 test272 test273 test274 test275 test524 \
|
||||
test525 test276 test277 test526 test527 test528 test530 DISABLED test278 \
|
||||
test279 test531 test280 test529 test532 test533 test534 test535 test281 \
|
||||
test537 test282 test283 test284 test538 test285 test286 test307 test308 \
|
||||
test287 test400 test288 test600 test601 test602 test603 test401 test402 \
|
||||
test290 test291 test292 test293 test403 test404 test405 test604 test605 \
|
||||
test606 test607 test608 test609 test294 test295 test296 test297 test298 \
|
||||
test610 test611 test612 test406 test407 test408 test409 test613 test614 \
|
||||
test700 test701 test702 test704 test705 test703 test706 test707 test350 \
|
||||
test351 test352 test353 test289 test540 test354 test231 test1000 test1001 \
|
||||
test1002 test1003 test1004 test1005 test1006 test615 test1007 test541 \
|
||||
test1010 test1011 test1012 test542 test543 test536 test1008 test1009 \
|
||||
test2000 test2001 test2002 test2003 test35 test544 test545 test2004 \
|
||||
test546 test1013 test1014 test1015 test547 test548 test549 test550 \
|
||||
test551 test552 test1016 test1017 test1018 test1019 test1020 test553 \
|
||||
test1021 test1022 test1023 test309 test616 test617 test618 test619 \
|
||||
test620 test621 test622 test623 test624 test625 test626 test627 test554 \
|
||||
test1024 test1025 test555 test1026 test1027 test1028 test1029 test1030 \
|
||||
test556 test557 test1031 test628 test629 test630 test631 test632 test1032 \
|
||||
test1033 test539 test1034 test1035 test1036 test1037 test1038 test1039 \
|
||||
test1040 test1041 test1042 test1043 test1044 test1045 test1046 test1047 \
|
||||
test1048 test1049 test1050 test1051 test1052 test1053 test1054 test1055 \
|
||||
test1056 test1057 test1058 test1059 test1060 test1061 test1062 test1063 \
|
||||
test1064 test1065 test1066 test1067 test1068 test1069 test1070 test1071 \
|
||||
test1072 test1073 test1074 test1075 test1076 test1077 test1078 test1079 \
|
||||
test1080 test1081 test1082 test1083 test1084 test1085 test633 test634 \
|
||||
test635 test636 test637 test558 test559 test1086
|
||||
|
||||
filecheck:
|
||||
@mkdir test-place; \
|
||||
cp "$(top_srcdir)"/tests/data/test[0-9]* test-place/; \
|
||||
rm test-place/*~; \
|
||||
for f in $(EXTRA_DIST); do \
|
||||
if test -f "$(top_srcdir)/tests/data/$$f"; then \
|
||||
rm -f "test-place/$$f"; \
|
||||
else \
|
||||
echo "$$f is listed but missing!"; \
|
||||
fi \
|
||||
done; \
|
||||
echo "Local files not present in EXTRA_DIST:" ; \
|
||||
ls test-place; \
|
||||
! ls test-place | grep . >/dev/null ; \
|
||||
RC=$$? ; \
|
||||
rm -rf test-place ; \
|
||||
exit $$RC
|
||||
|
||||
@@ -0,0 +1,450 @@
|
||||
# Makefile.in generated by automake 1.9.6 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
@SET_MAKE@
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
top_builddir = ../..
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
INSTALL = @INSTALL@
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = $(program_transform_name)
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
subdir = tests/data
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \
|
||||
$(top_srcdir)/m4/curl-confopts.m4 \
|
||||
$(top_srcdir)/m4/curl-functions.m4 \
|
||||
$(top_srcdir)/m4/curl-reentrant.m4 $(top_srcdir)/acinclude.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
||||
CONFIG_HEADER = $(top_builddir)/lib/config.h \
|
||||
$(top_builddir)/src/config.h \
|
||||
$(top_builddir)/include/curl/curlbuild.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMDEP_FALSE = @AMDEP_FALSE@
|
||||
AMDEP_TRUE = @AMDEP_TRUE@
|
||||
AMTAR = @AMTAR@
|
||||
AR = @AR@
|
||||
AS = @AS@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CROSSCOMPILING_FALSE = @CROSSCOMPILING_FALSE@
|
||||
CROSSCOMPILING_TRUE = @CROSSCOMPILING_TRUE@
|
||||
CURL_CA_BUNDLE = @CURL_CA_BUNDLE@
|
||||
CURL_DISABLE_DICT = @CURL_DISABLE_DICT@
|
||||
CURL_DISABLE_FILE = @CURL_DISABLE_FILE@
|
||||
CURL_DISABLE_FTP = @CURL_DISABLE_FTP@
|
||||
CURL_DISABLE_HTTP = @CURL_DISABLE_HTTP@
|
||||
CURL_DISABLE_LDAP = @CURL_DISABLE_LDAP@
|
||||
CURL_DISABLE_LDAPS = @CURL_DISABLE_LDAPS@
|
||||
CURL_DISABLE_PROXY = @CURL_DISABLE_PROXY@
|
||||
CURL_DISABLE_TELNET = @CURL_DISABLE_TELNET@
|
||||
CURL_DISABLE_TFTP = @CURL_DISABLE_TFTP@
|
||||
CURL_LIBS = @CURL_LIBS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DLLTOOL = @DLLTOOL@
|
||||
DSYMUTIL = @DSYMUTIL@
|
||||
ECHO = @ECHO@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
GREP = @GREP@
|
||||
HAVE_ARES = @HAVE_ARES@
|
||||
HAVE_LIBZ = @HAVE_LIBZ@
|
||||
HAVE_LIBZ_FALSE = @HAVE_LIBZ_FALSE@
|
||||
HAVE_LIBZ_TRUE = @HAVE_LIBZ_TRUE@
|
||||
HAVE_PK11_CREATEGENERICOBJECT = @HAVE_PK11_CREATEGENERICOBJECT@
|
||||
IDN_ENABLED = @IDN_ENABLED@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
IPV6_ENABLED = @IPV6_ENABLED@
|
||||
KRB4_ENABLED = @KRB4_ENABLED@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBCURL_LIBS = @LIBCURL_LIBS@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LIBTOOL = @LIBTOOL@
|
||||
LN_S = @LN_S@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAINT = @MAINT@
|
||||
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
|
||||
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MANOPT = @MANOPT@
|
||||
MIMPURE_FALSE = @MIMPURE_FALSE@
|
||||
MIMPURE_TRUE = @MIMPURE_TRUE@
|
||||
NMEDIT = @NMEDIT@
|
||||
NO_UNDEFINED_FALSE = @NO_UNDEFINED_FALSE@
|
||||
NO_UNDEFINED_TRUE = @NO_UNDEFINED_TRUE@
|
||||
NROFF = @NROFF@
|
||||
OBJDUMP = @OBJDUMP@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PERL = @PERL@
|
||||
PKGADD_NAME = @PKGADD_NAME@
|
||||
PKGADD_PKG = @PKGADD_PKG@
|
||||
PKGADD_VENDOR = @PKGADD_VENDOR@
|
||||
PKGCONFIG = @PKGCONFIG@
|
||||
RANDOM_FILE = @RANDOM_FILE@
|
||||
RANLIB = @RANLIB@
|
||||
REQUIRE_LIB_DEPS = @REQUIRE_LIB_DEPS@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
SONAME_BUMP_FALSE = @SONAME_BUMP_FALSE@
|
||||
SONAME_BUMP_TRUE = @SONAME_BUMP_TRUE@
|
||||
SSL_ENABLED = @SSL_ENABLED@
|
||||
STATICLIB_FALSE = @STATICLIB_FALSE@
|
||||
STATICLIB_TRUE = @STATICLIB_TRUE@
|
||||
STRIP = @STRIP@
|
||||
SUPPORT_FEATURES = @SUPPORT_FEATURES@
|
||||
SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@
|
||||
TEST_SERVER_LIBS = @TEST_SERVER_LIBS@
|
||||
USE_GNUTLS = @USE_GNUTLS@
|
||||
USE_LIBSSH2 = @USE_LIBSSH2@
|
||||
USE_MANUAL_FALSE = @USE_MANUAL_FALSE@
|
||||
USE_MANUAL_TRUE = @USE_MANUAL_TRUE@
|
||||
USE_NSS = @USE_NSS@
|
||||
USE_SSLEAY = @USE_SSLEAY@
|
||||
USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
|
||||
VERSION = @VERSION@
|
||||
VERSIONNUM = @VERSIONNUM@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
||||
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
build = @build@
|
||||
build_alias = @build_alias@
|
||||
build_cpu = @build_cpu@
|
||||
build_os = @build_os@
|
||||
build_vendor = @build_vendor@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host = @host@
|
||||
host_alias = @host_alias@
|
||||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
htmldir = @htmldir@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
libext = @libext@
|
||||
localedir = @localedir@
|
||||
localstatedir = @localstatedir@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
oldincludedir = @oldincludedir@
|
||||
pdfdir = @pdfdir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
subdirs = @subdirs@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
EXTRA_DIST = test1 test108 test117 test127 test20 test27 test34 test46 \
|
||||
test10 test109 test118 test13 test200 test28 test36 test47 test100 test11 \
|
||||
test119 test14 test201 test29 test37 test5 test101 test110 test12 test15 \
|
||||
test202 test3 test4 test6 test102 test111 test120 test16 test21 test30 \
|
||||
test7 test103 test112 test121 test17 test22 test300 test8 test104 test113 \
|
||||
test122 test18 test23 test301 test9 test105 test114 test123 test19 test24 \
|
||||
test302 test43 test31 test106 test115 test124 test190 test25 test303 \
|
||||
test44 test38 test107 test116 test125 test2 test26 test33 test45 test126 \
|
||||
test304 test39 test32 test128 test48 test306 test130 test131 test132 \
|
||||
test133 test134 test135 test305 test49 test50 test51 test52 test53 test54 \
|
||||
test55 test56 test500 test501 test502 test503 test504 test136 test57 \
|
||||
test137 test138 test58 test139 test140 test141 test59 test60 test61 \
|
||||
test142 test143 test62 test63 test64 test65 test66 test144 test145 test67 \
|
||||
test68 test41 test40 test42 test69 test70 test71 test72 test73 test146 \
|
||||
test505 test74 test75 test76 test77 test78 test147 test148 test506 test79 \
|
||||
test80 test81 test82 test83 test84 test85 test86 test87 test507 test149 \
|
||||
test88 test89 test90 test508 test91 test92 test203 test93 test94 test95 \
|
||||
test510 test97 test98 test99 test150 test151 test152 test153 \
|
||||
test154 test155 test156 test157 test158 test159 test511 test160 test161 \
|
||||
test162 test163 test164 test512 test165 test166 test167 test168 test169 \
|
||||
test170 test171 test172 test204 test205 test173 test174 test175 test176 \
|
||||
test177 test513 test514 test178 test179 test180 test181 test182 test183 \
|
||||
test184 test185 test186 test187 test188 test189 test191 test192 test193 \
|
||||
test194 test195 test196 test197 test198 test515 test516 test517 test518 \
|
||||
test210 test211 test212 test220 test221 test222 test223 test224 test206 \
|
||||
test207 test208 test209 test213 test240 test241 test242 test519 test214 \
|
||||
test215 test216 test217 test218 test199 test225 test226 test227 test228 \
|
||||
test229 test233 test234 test235 test236 test520 test237 test238 test239 \
|
||||
test243 test245 test246 test247 test248 test249 test250 test251 test252 \
|
||||
test253 test254 test255 test521 test522 test523 test256 test257 test258 \
|
||||
test259 test260 test261 test262 test263 test264 test265 test266 test267 \
|
||||
test268 test269 test270 test271 test272 test273 test274 test275 test524 \
|
||||
test525 test276 test277 test526 test527 test528 test530 DISABLED test278 \
|
||||
test279 test531 test280 test529 test532 test533 test534 test535 test281 \
|
||||
test537 test282 test283 test284 test538 test285 test286 test307 test308 \
|
||||
test287 test400 test288 test600 test601 test602 test603 test401 test402 \
|
||||
test290 test291 test292 test293 test403 test404 test405 test604 test605 \
|
||||
test606 test607 test608 test609 test294 test295 test296 test297 test298 \
|
||||
test610 test611 test612 test406 test407 test408 test409 test613 test614 \
|
||||
test700 test701 test702 test704 test705 test703 test706 test707 test350 \
|
||||
test351 test352 test353 test289 test540 test354 test231 test1000 test1001 \
|
||||
test1002 test1003 test1004 test1005 test1006 test615 test1007 test541 \
|
||||
test1010 test1011 test1012 test542 test543 test536 test1008 test1009 \
|
||||
test2000 test2001 test2002 test2003 test35 test544 test545 test2004 \
|
||||
test546 test1013 test1014 test1015 test547 test548 test549 test550 \
|
||||
test551 test552 test1016 test1017 test1018 test1019 test1020 test553 \
|
||||
test1021 test1022 test1023 test309 test616 test617 test618 test619 \
|
||||
test620 test621 test622 test623 test624 test625 test626 test627 test554 \
|
||||
test1024 test1025 test555 test1026 test1027 test1028 test1029 test1030 \
|
||||
test556 test557 test1031 test628 test629 test630 test631 test632 test1032 \
|
||||
test1033 test539 test1034 test1035 test1036 test1037 test1038 test1039 \
|
||||
test1040 test1041 test1042 test1043 test1044 test1045 test1046 test1047 \
|
||||
test1048 test1049 test1050 test1051 test1052 test1053 test1054 test1055 \
|
||||
test1056 test1057 test1058 test1059 test1060 test1061 test1062 test1063 \
|
||||
test1064 test1065 test1066 test1067 test1068 test1069 test1070 test1071 \
|
||||
test1072 test1073 test1074 test1075 test1076 test1077 test1078 test1079 \
|
||||
test1080 test1081 test1082 test1083 test1084 test1085 test633 test634 \
|
||||
test635 test636 test637 test558 test559 test1086
|
||||
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
|
||||
&& exit 0; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/data/Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --foreign tests/data/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
|
||||
distclean-libtool:
|
||||
-rm -f libtool
|
||||
uninstall-info-am:
|
||||
tags: TAGS
|
||||
TAGS:
|
||||
|
||||
ctags: CTAGS
|
||||
CTAGS:
|
||||
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
|
||||
list='$(DISTFILES)'; for file in $$list; do \
|
||||
case $$file in \
|
||||
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
|
||||
esac; \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
|
||||
dir="/$$dir"; \
|
||||
$(mkdir_p) "$(distdir)$$dir"; \
|
||||
else \
|
||||
dir=''; \
|
||||
fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
fi; \
|
||||
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
|
||||
else \
|
||||
test -f $(distdir)/$$file \
|
||||
|| cp -p $$d/$$file $(distdir)/$$file \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
check-am: all-am
|
||||
check: check-am
|
||||
all-am: Makefile
|
||||
installdirs:
|
||||
install-exec: install-exec-am
|
||||
install-data: install-data-am
|
||||
uninstall: uninstall-am
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
|
||||
installcheck: installcheck-am
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
clean: clean-am
|
||||
|
||||
clean-am: clean-generic clean-libtool mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-generic distclean-libtool
|
||||
|
||||
dvi: dvi-am
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am:
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-man:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-am
|
||||
|
||||
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
|
||||
|
||||
pdf: pdf-am
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-am
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am: uninstall-info-am
|
||||
|
||||
.PHONY: all all-am check check-am clean clean-generic clean-libtool \
|
||||
distclean distclean-generic distclean-libtool distdir dvi \
|
||||
dvi-am html html-am info info-am install install-am \
|
||||
install-data install-data-am install-exec install-exec-am \
|
||||
install-info install-info-am install-man install-strip \
|
||||
installcheck installcheck-am installdirs maintainer-clean \
|
||||
maintainer-clean-generic mostlyclean mostlyclean-generic \
|
||||
mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
|
||||
uninstall-info-am
|
||||
|
||||
iall:
|
||||
install:
|
||||
test:
|
||||
|
||||
filecheck:
|
||||
@mkdir test-place; \
|
||||
cp "$(top_srcdir)"/tests/data/test[0-9]* test-place/; \
|
||||
rm test-place/*~; \
|
||||
for f in $(EXTRA_DIST); do \
|
||||
if test -f "$(top_srcdir)/tests/data/$$f"; then \
|
||||
rm -f "test-place/$$f"; \
|
||||
else \
|
||||
echo "$$f is listed but missing!"; \
|
||||
fi \
|
||||
done; \
|
||||
echo "Local files not present in EXTRA_DIST:" ; \
|
||||
ls test-place; \
|
||||
! ls test-place | grep . >/dev/null ; \
|
||||
RC=$$? ; \
|
||||
rm -rf test-place ; \
|
||||
exit $$RC
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
||||
@@ -0,0 +1,55 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
HTTP
|
||||
HTTP GET
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
#
|
||||
# Server-side
|
||||
<reply name="1">
|
||||
<data>
|
||||
HTTP/1.1 200 OK
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Server: test-server/fake
|
||||
Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT
|
||||
ETag: "21025-dc7-39462498"
|
||||
Accept-Ranges: bytes
|
||||
Content-Length: 6
|
||||
Connection: close
|
||||
Content-Type: text/html
|
||||
Funny-head: yesyes
|
||||
|
||||
-foo-
|
||||
</data>
|
||||
</reply>
|
||||
|
||||
#
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
http
|
||||
</server>
|
||||
<name>
|
||||
HTTP GET
|
||||
</name>
|
||||
<command>
|
||||
http://%HOSTIP:%HTTPPORT/1
|
||||
</command>
|
||||
</client>
|
||||
|
||||
#
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<strip>
|
||||
^User-Agent:.*
|
||||
</strip>
|
||||
<protocol>
|
||||
GET /1 HTTP/1.1
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,67 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
HTTP
|
||||
HTTP PUT
|
||||
</keywords>
|
||||
</info>
|
||||
# Server-side
|
||||
<reply>
|
||||
<data>
|
||||
HTTP/1.0 200 OK swsclose
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Server: test-server/fake
|
||||
|
||||
blablabla
|
||||
|
||||
</data>
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
http
|
||||
</server>
|
||||
<name>
|
||||
simple HTTP PUT from file
|
||||
</name>
|
||||
<command>
|
||||
http://%HOSTIP:%HTTPPORT/we/want/10 -T log/test10.txt
|
||||
</command>
|
||||
<file name="log/test10.txt">
|
||||
Weird
|
||||
file
|
||||
to
|
||||
upload
|
||||
for
|
||||
testing
|
||||
the
|
||||
PUT
|
||||
feature
|
||||
</file>
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<strip>
|
||||
^User-Agent:.*
|
||||
</strip>
|
||||
<protocol>
|
||||
PUT /we/want/10 HTTP/1.1
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
Content-Length: 78
|
||||
Expect: 100-continue
|
||||
|
||||
Weird
|
||||
file
|
||||
to
|
||||
upload
|
||||
for
|
||||
testing
|
||||
the
|
||||
PUT
|
||||
feature
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,56 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
FTP
|
||||
PASV
|
||||
LIST
|
||||
</keywords>
|
||||
</info>
|
||||
#
|
||||
# Server-side
|
||||
<reply>
|
||||
# When doing LIST, we get the default list output hard-coded in the test
|
||||
# FTP server
|
||||
<datacheck>
|
||||
total 20
|
||||
drwxr-xr-x 8 98 98 512 Oct 22 13:06 .
|
||||
drwxr-xr-x 8 98 98 512 Oct 22 13:06 ..
|
||||
drwxr-xr-x 2 98 98 512 May 2 1996 .NeXT
|
||||
-r--r--r-- 1 0 1 35 Jul 16 1996 README
|
||||
lrwxrwxrwx 1 0 1 7 Dec 9 1999 bin -> usr/bin
|
||||
dr-xr-xr-x 2 0 1 512 Oct 1 1997 dev
|
||||
drwxrwxrwx 2 98 98 512 May 29 16:04 download.html
|
||||
dr-xr-xr-x 2 0 1 512 Nov 30 1995 etc
|
||||
drwxrwxrwx 2 98 1 512 Oct 30 14:33 pub
|
||||
dr-xr-xr-x 5 0 1 512 Oct 1 1997 usr
|
||||
</datacheck>
|
||||
</reply>
|
||||
|
||||
#
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
ftp
|
||||
</server>
|
||||
<name>
|
||||
FTP dir list PASV
|
||||
</name>
|
||||
<command>
|
||||
ftp://%HOSTIP:%FTPPORT/
|
||||
</command>
|
||||
</client>
|
||||
|
||||
#
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<protocol>
|
||||
USER anonymous
|
||||
PASS [email protected]
|
||||
PWD
|
||||
EPSV
|
||||
TYPE A
|
||||
LIST
|
||||
QUIT
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,42 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
FTP
|
||||
PASV
|
||||
LIST
|
||||
NOBODY
|
||||
</keywords>
|
||||
</info>
|
||||
#
|
||||
# Server-side
|
||||
<reply>
|
||||
<datacheck>
|
||||
</datacheck>
|
||||
</reply>
|
||||
|
||||
#
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
ftp
|
||||
</server>
|
||||
<name>
|
||||
FTP dir list PASV with -I
|
||||
</name>
|
||||
<command>
|
||||
ftp://%HOSTIP:%FTPPORT/1000/ -I
|
||||
</command>
|
||||
</client>
|
||||
|
||||
#
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<protocol>
|
||||
USER anonymous
|
||||
PASS [email protected]
|
||||
PWD
|
||||
CWD 1000
|
||||
QUIT
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,106 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
HTTP
|
||||
HTTP PUT
|
||||
HTTP proxy
|
||||
HTTP Digest auth
|
||||
Resume
|
||||
Content-Range
|
||||
CUSTOMREQUEST
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
# Server-side
|
||||
<reply>
|
||||
<data>
|
||||
HTTP/1.1 100 Continue
|
||||
Server: Microsoft-IIS/5.0
|
||||
Date: Sun, 03 Apr 2005 14:57:45 GMT
|
||||
X-Powered-By: ASP.NET
|
||||
|
||||
HTTP/1.1 401 authentication please swsbounce
|
||||
Server: Microsoft-IIS/6.0
|
||||
WWW-Authenticate: Digest realm="testrealm", nonce="1053604144"
|
||||
Content-Type: text/html; charset=iso-8859-1
|
||||
Content-Length: 0
|
||||
|
||||
</data>
|
||||
<data1000>
|
||||
HTTP/1.1 200 A OK
|
||||
Server: Microsoft-IIS/6.0
|
||||
Content-Type: text/html; charset=iso-8859-1
|
||||
Content-Length: 3
|
||||
|
||||
ok
|
||||
</data1000>
|
||||
|
||||
<datacheck>
|
||||
HTTP/1.1 100 Continue
|
||||
Server: Microsoft-IIS/5.0
|
||||
Date: Sun, 03 Apr 2005 14:57:45 GMT
|
||||
X-Powered-By: ASP.NET
|
||||
|
||||
HTTP/1.1 401 authentication please swsbounce
|
||||
Server: Microsoft-IIS/6.0
|
||||
WWW-Authenticate: Digest realm="testrealm", nonce="1053604144"
|
||||
Content-Type: text/html; charset=iso-8859-1
|
||||
Content-Length: 0
|
||||
|
||||
HTTP/1.1 200 A OK
|
||||
Server: Microsoft-IIS/6.0
|
||||
Content-Type: text/html; charset=iso-8859-1
|
||||
Content-Length: 3
|
||||
|
||||
ok
|
||||
</datacheck>
|
||||
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
#
|
||||
<server>
|
||||
http
|
||||
</server>
|
||||
<name>
|
||||
HTTP POST --digest with PUT and resumed upload and modified method
|
||||
</name>
|
||||
<command>
|
||||
http://%HOSTIP:%HTTPPORT/1001 -u auser:apasswd --digest -T log/1001 -x http://%HOSTIP:%HTTPPORT -C 2 -X GET
|
||||
</command>
|
||||
<file name="log/1001">
|
||||
test
|
||||
</file>
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<strip>
|
||||
^User-Agent:.*
|
||||
</strip>
|
||||
<protocol>
|
||||
GET http://%HOSTIP:%HTTPPORT/1001 HTTP/1.1
|
||||
Content-Range: bytes 2-4/5
|
||||
User-Agent: curl/7.12.1-CVS (i686-pc-linux-gnu) libcurl/7.12.1-CVS OpenSSL/0.9.6b ipv6 zlib/1.1.4 GSS libidn/0.4.6
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Pragma: no-cache
|
||||
Accept: */*
|
||||
Proxy-Connection: Keep-Alive
|
||||
Content-Length: 0
|
||||
Expect: 100-continue
|
||||
|
||||
GET http://%HOSTIP:%HTTPPORT/1001 HTTP/1.1
|
||||
Authorization: Digest username="auser", realm="testrealm", nonce="1053604144", uri="/1001", response="6af4d89c952f4dd4cc215a6878dc499d"
|
||||
Content-Range: bytes 2-4/5
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Pragma: no-cache
|
||||
Accept: */*
|
||||
Proxy-Connection: Keep-Alive
|
||||
Content-Length: 3
|
||||
Expect: 100-continue
|
||||
|
||||
st
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,117 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
HTTP
|
||||
HTTP PUT
|
||||
HTTP proxy
|
||||
HTTP Digest auth
|
||||
Resume
|
||||
Content-Range
|
||||
CUSTOMREQUEST
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
<reply>
|
||||
<data>
|
||||
HTTP/1.1 100 Continue
|
||||
Server: Microsoft-IIS/5.0
|
||||
Date: Sun, 03 Apr 2005 14:57:45 GMT
|
||||
X-Powered-By: ASP.NET
|
||||
|
||||
HTTP/1.1 401 authentication please swsbounce
|
||||
Server: Microsoft-IIS/6.0
|
||||
WWW-Authenticate: Digest realm="testrealm", nonce="1053604144"
|
||||
Content-Type: text/html; charset=iso-8859-1
|
||||
Content-Length: 0
|
||||
|
||||
</data>
|
||||
<data1000>
|
||||
HTTP/1.1 200 A OK
|
||||
Server: Microsoft-IIS/6.0
|
||||
Content-Type: text/html; charset=iso-8859-1
|
||||
Content-Length: 3
|
||||
|
||||
ok
|
||||
</data1000>
|
||||
|
||||
<datacheck>
|
||||
HTTP/1.1 100 Continue
|
||||
Server: Microsoft-IIS/5.0
|
||||
Date: Sun, 03 Apr 2005 14:57:45 GMT
|
||||
X-Powered-By: ASP.NET
|
||||
|
||||
HTTP/1.1 401 authentication please swsbounce
|
||||
Server: Microsoft-IIS/6.0
|
||||
WWW-Authenticate: Digest realm="testrealm", nonce="1053604144"
|
||||
Content-Type: text/html; charset=iso-8859-1
|
||||
Content-Length: 0
|
||||
|
||||
HTTP/1.1 200 A OK
|
||||
Server: Microsoft-IIS/6.0
|
||||
Content-Type: text/html; charset=iso-8859-1
|
||||
Content-Length: 3
|
||||
|
||||
ok
|
||||
</datacheck>
|
||||
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
#
|
||||
<server>
|
||||
http
|
||||
</server>
|
||||
<name>
|
||||
HTTP POST --digest with PUT and resumed upload and modified method, twice
|
||||
</name>
|
||||
<command>
|
||||
http://%HOSTIP:%HTTPPORT/1002.upload1 -T log/1002 http://%HOSTIP:%HTTPPORT/1002.upload2 -T log/1002 -u auser:apasswd --digest -x http://%HOSTIP:%HTTPPORT -C 2 -X GET
|
||||
</command>
|
||||
<file name="log/1002">
|
||||
test
|
||||
</file>
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<strip>
|
||||
^User-Agent:.*
|
||||
</strip>
|
||||
<protocol>
|
||||
GET http://%HOSTIP:%HTTPPORT/1002.upload1 HTTP/1.1
|
||||
Content-Range: bytes 2-4/5
|
||||
User-Agent: curl/7.12.1-CVS (i686-pc-linux-gnu) libcurl/7.12.1-CVS OpenSSL/0.9.6b ipv6 zlib/1.1.4 GSS libidn/0.4.6
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Pragma: no-cache
|
||||
Accept: */*
|
||||
Proxy-Connection: Keep-Alive
|
||||
Content-Length: 0
|
||||
Expect: 100-continue
|
||||
|
||||
GET http://%HOSTIP:%HTTPPORT/1002.upload1 HTTP/1.1
|
||||
Authorization: Digest username="auser", realm="testrealm", nonce="1053604144", uri="/1002.upload1", response="198aa9b6acb4b0c71d02a197a5e41f54"
|
||||
Content-Range: bytes 2-4/5
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Pragma: no-cache
|
||||
Accept: */*
|
||||
Proxy-Connection: Keep-Alive
|
||||
Content-Length: 3
|
||||
Expect: 100-continue
|
||||
|
||||
st
|
||||
GET http://%HOSTIP:%HTTPPORT/1002.upload2 HTTP/1.1
|
||||
Authorization: Digest username="auser", realm="testrealm", nonce="1053604144", uri="/1002.upload2", response="d711f0d2042786d930de635ba0d1a1d0"
|
||||
Content-Range: bytes 2-4/5
|
||||
User-Agent: curl/7.16.1
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Pragma: no-cache
|
||||
Accept: */*
|
||||
Proxy-Connection: Keep-Alive
|
||||
Content-Length: 3
|
||||
Expect: 100-continue
|
||||
|
||||
st
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,59 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
HTTP
|
||||
HTTP GET
|
||||
HTTP proxy
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
#
|
||||
# Server-side
|
||||
<reply>
|
||||
<data>
|
||||
HTTP/1.1 200 OK
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Server: test-server/fake
|
||||
Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT
|
||||
ETag: "21025-dc7-39462498"
|
||||
Accept-Ranges: bytes
|
||||
Content-Length: 6
|
||||
Connection: close
|
||||
Content-Type: text/html
|
||||
Funny-head: yesyes
|
||||
|
||||
-foo-
|
||||
</data>
|
||||
</reply>
|
||||
|
||||
#
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
http
|
||||
</server>
|
||||
<name>
|
||||
HTTP GET with empty proxy
|
||||
</name>
|
||||
<command>
|
||||
http://%HOSTIP:%HTTPPORT/1004 --proxy ""
|
||||
</command>
|
||||
</client>
|
||||
|
||||
#
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<strip>
|
||||
^User-Agent:.*
|
||||
</strip>
|
||||
<protocol>
|
||||
GET /1004 HTTP/1.1
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
|
||||
</protocol>
|
||||
<valgrind>
|
||||
disable
|
||||
</valgrind>
|
||||
</verify>
|
||||
</testcase>
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,39 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
TFTP
|
||||
TFTP WRQ
|
||||
FAILURE
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
#
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
tftp
|
||||
</server>
|
||||
<name>
|
||||
TFTP send with invalid permission on server
|
||||
</name>
|
||||
<command>
|
||||
-T log/test1007.txt tftp://%HOSTIP:%TFTPPORT//invalid-file --trace-ascii log/traceit
|
||||
</command>
|
||||
<file name="log/test1007.txt">
|
||||
This data will not be sent
|
||||
</file>
|
||||
</client>
|
||||
|
||||
#
|
||||
# Verify pseudo protocol after the test has been "shot"
|
||||
<verify>
|
||||
<errorcode>
|
||||
69
|
||||
</errorcode>
|
||||
<protocol>
|
||||
opcode: 2
|
||||
filename: /invalid-file
|
||||
mode: octet
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,122 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
HTTP
|
||||
HTTP GET
|
||||
HTTP CONNECT
|
||||
HTTP proxy
|
||||
HTTP proxy NTLM auth
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
# Server-side
|
||||
<reply>
|
||||
|
||||
# this is returned first since we get no proxy-auth
|
||||
<data1001>
|
||||
HTTP/1.1 407 Authorization Required to proxy me my dear
|
||||
Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA==
|
||||
Transfer-Encoding: chunked
|
||||
|
||||
20
|
||||
And you should ignore this data.
|
||||
FA0
|
||||
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||||
0
|
||||
|
||||
</data1001>
|
||||
|
||||
# This is supposed to be returned when the server gets the second
|
||||
# Authorization: NTLM line passed-in from the client
|
||||
<data1002>
|
||||
HTTP/1.1 200 Things are fine in proxy land
|
||||
Server: Microsoft-IIS/5.0
|
||||
Content-Type: text/html; charset=iso-8859-1
|
||||
|
||||
</data1002>
|
||||
|
||||
# this is returned when we get a GET!
|
||||
<data2>
|
||||
HTTP/1.1 200 OK
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Content-Length: 7
|
||||
Connection: close
|
||||
Content-Type: text/html
|
||||
Funny-head: yesyes
|
||||
|
||||
daniel
|
||||
</data2>
|
||||
|
||||
# then this is returned when we get proxy-auth
|
||||
<data1000>
|
||||
HTTP/1.1 200 OK swsbounce
|
||||
Server: no
|
||||
|
||||
Nice proxy auth sir!
|
||||
</data1000>
|
||||
|
||||
<datacheck>
|
||||
HTTP/1.1 407 Authorization Required to proxy me my dear
|
||||
Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA==
|
||||
Transfer-Encoding: chunked
|
||||
|
||||
HTTP/1.1 200 Things are fine in proxy land
|
||||
Server: Microsoft-IIS/5.0
|
||||
Content-Type: text/html; charset=iso-8859-1
|
||||
|
||||
HTTP/1.1 200 OK
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Content-Length: 7
|
||||
Connection: close
|
||||
Content-Type: text/html
|
||||
Funny-head: yesyes
|
||||
|
||||
daniel
|
||||
</datacheck>
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
http
|
||||
</server>
|
||||
<features>
|
||||
NTLM
|
||||
</features>
|
||||
<name>
|
||||
HTTP proxy CONNECT auth NTLM with chunked-encoded 407 response
|
||||
</name>
|
||||
<command>
|
||||
http://test.remote.server.com:1008/path/10080002 --proxy http://%HOSTIP:%HTTPPORT --proxy-user silly:person --proxy-ntlm --proxytunnel
|
||||
</command>
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<strip>
|
||||
^User-Agent: curl/.*
|
||||
</strip>
|
||||
# We strip off a large chunk of the type-2 NTLM message since it depends on
|
||||
# the local host name and thus differs on different machines!
|
||||
<strippart>
|
||||
s/^(Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAABQAFAHAAAAA).*/$1/
|
||||
</strippart>
|
||||
<protocol>
|
||||
CONNECT test.remote.server.com:1008 HTTP/1.0
|
||||
Host: test.remote.server.com:1008
|
||||
Proxy-Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA=
|
||||
Proxy-Connection: Keep-Alive
|
||||
|
||||
CONNECT test.remote.server.com:1008 HTTP/1.0
|
||||
Host: test.remote.server.com:1008
|
||||
Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAABQAFAHAAAAA
|
||||
Proxy-Connection: Keep-Alive
|
||||
|
||||
GET /path/10080002 HTTP/1.1
|
||||
User-Agent: curl/7.12.3-CVS (i686-pc-linux-gnu) libcurl/7.12.3-CVS OpenSSL/0.9.6b zlib/1.1.4
|
||||
Host: test.remote.server.com:1008
|
||||
Accept: */*
|
||||
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,44 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
TFTP
|
||||
TFTP RRQ
|
||||
--local-port
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
#
|
||||
# Server-side
|
||||
<reply>
|
||||
<data>
|
||||
a chunk of
|
||||
data
|
||||
returned
|
||||
to client
|
||||
</data>
|
||||
</reply>
|
||||
|
||||
#
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
tftp
|
||||
</server>
|
||||
<name>
|
||||
TFTP retrieve with --local-port
|
||||
</name>
|
||||
<command>
|
||||
tftp://%HOSTIP:%TFTPPORT//1009 --local-port 44444-45444
|
||||
</command>
|
||||
</client>
|
||||
|
||||
#
|
||||
# Verify pseudo protocol after the test has been "shot"
|
||||
<verify>
|
||||
<protocol>
|
||||
opcode: 1
|
||||
filename: /1009
|
||||
mode: octet
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,58 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
FTP
|
||||
PORT
|
||||
LIST
|
||||
</keywords>
|
||||
</info>
|
||||
# Server-side
|
||||
<reply>
|
||||
# When doing LIST, we get the default list output hard-coded in the test
|
||||
# FTP server
|
||||
<datacheck>
|
||||
total 20
|
||||
drwxr-xr-x 8 98 98 512 Oct 22 13:06 .
|
||||
drwxr-xr-x 8 98 98 512 Oct 22 13:06 ..
|
||||
drwxr-xr-x 2 98 98 512 May 2 1996 .NeXT
|
||||
-r--r--r-- 1 0 1 35 Jul 16 1996 README
|
||||
lrwxrwxrwx 1 0 1 7 Dec 9 1999 bin -> usr/bin
|
||||
dr-xr-xr-x 2 0 1 512 Oct 1 1997 dev
|
||||
drwxrwxrwx 2 98 98 512 May 29 16:04 download.html
|
||||
dr-xr-xr-x 2 0 1 512 Nov 30 1995 etc
|
||||
drwxrwxrwx 2 98 1 512 Oct 30 14:33 pub
|
||||
dr-xr-xr-x 5 0 1 512 Oct 1 1997 usr
|
||||
</datacheck>
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
ftp
|
||||
</server>
|
||||
<name>
|
||||
FTP dir list, PORT with specified IP
|
||||
</name>
|
||||
<command>
|
||||
ftp://%HOSTIP:%FTPPORT/ -P %CLIENTIP
|
||||
</command>
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
# Strip all valid kinds of PORT and EPRT that curl can send
|
||||
<strip>
|
||||
^PORT \d{1,3},\d{1,3},\d{1,3},\d{1,3},\d{1,3},\d{1,3}
|
||||
^EPRT \|1\|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\|\d{1,5}\|
|
||||
</strip>
|
||||
<protocol>
|
||||
USER anonymous
|
||||
PASS [email protected]
|
||||
PWD
|
||||
PORT 127,0,0,1,243,212
|
||||
TYPE A
|
||||
LIST
|
||||
QUIT
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,56 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
FTP
|
||||
PASV
|
||||
LIST
|
||||
</keywords>
|
||||
</info>
|
||||
#
|
||||
# Server-side
|
||||
<reply>
|
||||
# When doing LIST, we get the default list output hard-coded in the test
|
||||
# FTP server
|
||||
<datacheck>
|
||||
total 20
|
||||
drwxr-xr-x 8 98 98 512 Oct 22 13:06 .
|
||||
drwxr-xr-x 8 98 98 512 Oct 22 13:06 ..
|
||||
drwxr-xr-x 2 98 98 512 May 2 1996 .NeXT
|
||||
-r--r--r-- 1 0 1 35 Jul 16 1996 README
|
||||
lrwxrwxrwx 1 0 1 7 Dec 9 1999 bin -> usr/bin
|
||||
dr-xr-xr-x 2 0 1 512 Oct 1 1997 dev
|
||||
drwxrwxrwx 2 98 98 512 May 29 16:04 download.html
|
||||
dr-xr-xr-x 2 0 1 512 Nov 30 1995 etc
|
||||
drwxrwxrwx 2 98 1 512 Oct 30 14:33 pub
|
||||
dr-xr-xr-x 5 0 1 512 Oct 1 1997 usr
|
||||
</datacheck>
|
||||
</reply>
|
||||
|
||||
#
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
ftp
|
||||
</server>
|
||||
<name>
|
||||
FTP dir list nocwd
|
||||
</name>
|
||||
<command>
|
||||
ftp://%HOSTIP:%FTPPORT//list/this/path/1010/ --ftp-method nocwd
|
||||
</command>
|
||||
</client>
|
||||
|
||||
#
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<protocol>
|
||||
USER anonymous
|
||||
PASS [email protected]
|
||||
PWD
|
||||
EPSV
|
||||
TYPE A
|
||||
LIST /list/this/path/1010/
|
||||
QUIT
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,76 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
HTTP
|
||||
HTTP POST
|
||||
followlocation
|
||||
</keywords>
|
||||
</info>
|
||||
#
|
||||
# Server-side
|
||||
<reply>
|
||||
<data>
|
||||
HTTP/1.1 301 OK swsclose
|
||||
Location: moo.html&testcase=/10110002
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Connection: close
|
||||
|
||||
</data>
|
||||
<data2>
|
||||
HTTP/1.1 200 OK swsclose
|
||||
Location: this should be ignored
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Connection: close
|
||||
|
||||
body
|
||||
</data2>
|
||||
<datacheck>
|
||||
HTTP/1.1 301 OK swsclose
|
||||
Location: moo.html&testcase=/10110002
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Connection: close
|
||||
|
||||
HTTP/1.1 200 OK swsclose
|
||||
Location: this should be ignored
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Connection: close
|
||||
|
||||
body
|
||||
</datacheck>
|
||||
</reply>
|
||||
|
||||
#
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
http
|
||||
</server>
|
||||
<name>
|
||||
HTTP POST with 301 redirect
|
||||
</name>
|
||||
<command>
|
||||
http://%HOSTIP:%HTTPPORT/blah/1011 -L -d "moo"
|
||||
</command>
|
||||
</client>
|
||||
|
||||
#
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<strip>
|
||||
^User-Agent:.*
|
||||
</strip>
|
||||
<protocol>
|
||||
POST /blah/1011 HTTP/1.1
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
Content-Length: 3
|
||||
Content-Type: application/x-www-form-urlencoded
|
||||
|
||||
mooGET /blah/moo.html&testcase=/10110002 HTTP/1.1
|
||||
User-Agent: curl/7.10 (i686-pc-linux-gnu) libcurl/7.10 OpenSSL/0.9.6c ipv6 zlib/1.1.3
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,79 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
HTTP
|
||||
HTTP POST
|
||||
followlocation
|
||||
</keywords>
|
||||
</info>
|
||||
#
|
||||
# Server-side
|
||||
<reply>
|
||||
<data>
|
||||
HTTP/1.1 301 OK swsclose
|
||||
Location: moo.html&testcase=/10120002
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Connection: close
|
||||
|
||||
</data>
|
||||
<data2>
|
||||
HTTP/1.1 200 OK swsclose
|
||||
Location: this should be ignored
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Connection: close
|
||||
|
||||
body
|
||||
</data2>
|
||||
<datacheck>
|
||||
HTTP/1.1 301 OK swsclose
|
||||
Location: moo.html&testcase=/10120002
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Connection: close
|
||||
|
||||
HTTP/1.1 200 OK swsclose
|
||||
Location: this should be ignored
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Connection: close
|
||||
|
||||
body
|
||||
</datacheck>
|
||||
</reply>
|
||||
|
||||
#
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
http
|
||||
</server>
|
||||
<name>
|
||||
HTTP POST with 301 redirect and --post301
|
||||
</name>
|
||||
<command>
|
||||
http://%HOSTIP:%HTTPPORT/blah/1012 -L -d "moo" --post301
|
||||
</command>
|
||||
</client>
|
||||
|
||||
#
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<strip>
|
||||
^User-Agent:.*
|
||||
</strip>
|
||||
<protocol nonewline="yes">
|
||||
POST /blah/1012 HTTP/1.1
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
Content-Length: 3
|
||||
Content-Type: application/x-www-form-urlencoded
|
||||
|
||||
mooPOST /blah/moo.html&testcase=/10120002 HTTP/1.1
|
||||
User-Agent: curl/7.10 (i686-pc-linux-gnu) libcurl/7.10 OpenSSL/0.9.6c ipv6 zlib/1.1.3
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
Content-Length: 3
|
||||
Content-Type: application/x-www-form-urlencoded
|
||||
|
||||
moo
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,37 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
curl-config
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
#
|
||||
# Server-side
|
||||
<reply>
|
||||
</reply>
|
||||
|
||||
#
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
none
|
||||
</server>
|
||||
<name>
|
||||
Compare curl --version with curl-config --protocols
|
||||
</name>
|
||||
<command>
|
||||
--version
|
||||
</command>
|
||||
<postcheck>
|
||||
%SRCDIR/libtest/test1013.pl ../curl-config log/stdout1013 protocols
|
||||
</postcheck>
|
||||
</client>
|
||||
|
||||
#
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<errorcode>
|
||||
0
|
||||
</errorcode>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,37 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
curl-config
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
#
|
||||
# Server-side
|
||||
<reply>
|
||||
</reply>
|
||||
|
||||
#
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
none
|
||||
</server>
|
||||
<name>
|
||||
Compare curl --version with curl-config --features
|
||||
</name>
|
||||
<command>
|
||||
--version
|
||||
</command>
|
||||
<postcheck>
|
||||
%SRCDIR/libtest/test1013.pl ../curl-config log/stdout1014 features
|
||||
</postcheck>
|
||||
</client>
|
||||
|
||||
#
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<errorcode>
|
||||
0
|
||||
</errorcode>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,53 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
--data-urlencode
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
#
|
||||
# Server-side
|
||||
<reply>
|
||||
<data>
|
||||
HTTP/1.1 200 I am cool swsclose
|
||||
Server: Cool server/10.0
|
||||
Content-Length: 0
|
||||
|
||||
</data>
|
||||
</reply>
|
||||
|
||||
#
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
http
|
||||
</server>
|
||||
<name>
|
||||
--data-urlencode
|
||||
</name>
|
||||
<command>
|
||||
http://%HOSTIP:%HTTPPORT/1015 --data-urlencode "my name is moo[]" --data-urlencode "y e s=s_i_r" --data-urlencode "v_alue@log/1015.txt" --data-urlencode @log/1015.txt
|
||||
</command>
|
||||
<file name="log/1015.txt">
|
||||
content to _?!#$'|<>
|
||||
</file>
|
||||
</client>
|
||||
|
||||
#
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<strip>
|
||||
^User-Agent:.*
|
||||
</strip>
|
||||
<protocol nonewline="yes">
|
||||
POST /1015 HTTP/1.1
|
||||
User-Agent: curl/7.17.2-CVS (i686-pc-linux-gnu) libcurl/7.17.2-CVS OpenSSL/0.9.8g zlib/1.2.3.3 c-ares/1.5.2-CVS libidn/1.1 libssh2/0.19.0-C
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
Content-Length: 141
|
||||
Content-Type: application/x-www-form-urlencoded
|
||||
|
||||
my%20name%20is%20moo%5B%5D&y e s=s%5Fi%5Fr&v_alue=content%20to%20%5F%3F%21%23%24%27%7C%3C%3E%0A&content%20to%20%5F%3F%21%23%24%27%7C%3C%3E%0A
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,39 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
FILE
|
||||
Range
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
<reply>
|
||||
<data>
|
||||
</data>
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
none
|
||||
</server>
|
||||
<features>
|
||||
file
|
||||
</features>
|
||||
<name>
|
||||
X-Y range on a file:// URL to stdout
|
||||
</name>
|
||||
<command>
|
||||
-r 1-4 file://localhost/%PWD/log/test1016.txt
|
||||
</command>
|
||||
<file name="log/test1016.txt">
|
||||
1234567890
|
||||
</file>
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<stdout nonewline="yes">
|
||||
2345
|
||||
</stdout>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,40 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
FILE
|
||||
Range
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
# Server-side
|
||||
<reply>
|
||||
<data>
|
||||
</data>
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
none
|
||||
</server>
|
||||
<features>
|
||||
file
|
||||
</features>
|
||||
<name>
|
||||
0-Y range on a file:// URL to stdout
|
||||
</name>
|
||||
<command>
|
||||
-r 0-3 file://localhost/%PWD/log/test1017.txt
|
||||
</command>
|
||||
<file name="log/test1017.txt">
|
||||
1234567890
|
||||
</file>
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<stdout nonewline="yes">
|
||||
1234
|
||||
</stdout>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,39 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
FILE
|
||||
Range
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
<reply>
|
||||
<data>
|
||||
</data>
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
none
|
||||
</server>
|
||||
<features>
|
||||
file
|
||||
</features>
|
||||
<name>
|
||||
X-X range on a file:// URL to stdout
|
||||
</name>
|
||||
<command>
|
||||
-r 4-4 file://localhost/%PWD/log/test1018.txt
|
||||
</command>
|
||||
<file name="log/test1018.txt">
|
||||
1234567890
|
||||
</file>
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<stdout nonewline="yes">
|
||||
5
|
||||
</stdout>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,42 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
FILE
|
||||
Range
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
# Server-side
|
||||
<reply>
|
||||
<data>
|
||||
</data>
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
none
|
||||
</server>
|
||||
<features>
|
||||
file
|
||||
</features>
|
||||
<name>
|
||||
X- range on a file:// URL to stdout
|
||||
</name>
|
||||
<command>
|
||||
-r 7- file://localhost/%PWD/log/test1019.txt
|
||||
</command>
|
||||
<file name="log/test1019.txt">
|
||||
1234567890
|
||||
1234567890
|
||||
</file>
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<stdout>
|
||||
890
|
||||
1234567890
|
||||
</stdout>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,52 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
FTP
|
||||
PASV
|
||||
RETR
|
||||
</keywords>
|
||||
</info>
|
||||
# Server-side
|
||||
<reply>
|
||||
<data>
|
||||
data
|
||||
to
|
||||
see
|
||||
that FTP
|
||||
works
|
||||
so does it?
|
||||
</data>
|
||||
<servercmd>
|
||||
REPLY EPSV 500 no such command
|
||||
</servercmd>
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
ftp
|
||||
</server>
|
||||
<name>
|
||||
FTP RETR PASV
|
||||
</name>
|
||||
<command>
|
||||
ftp://%HOSTIP:%FTPPORT/102
|
||||
</command>
|
||||
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<protocol>
|
||||
USER anonymous
|
||||
PASS [email protected]
|
||||
PWD
|
||||
EPSV
|
||||
PASV
|
||||
TYPE I
|
||||
SIZE 102
|
||||
RETR 102
|
||||
QUIT
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,42 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
FILE
|
||||
Range
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
# Server-side
|
||||
<reply>
|
||||
<data>
|
||||
</data>
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
none
|
||||
</server>
|
||||
<features>
|
||||
file
|
||||
</features>
|
||||
<name>
|
||||
-Y range on a file:// URL to stdout
|
||||
</name>
|
||||
<command>
|
||||
-r -9 file://localhost/%PWD/log/test1020.txt
|
||||
</command>
|
||||
<file name="log/test1020.txt">
|
||||
1234567890
|
||||
1234567890
|
||||
</file>
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<stdout>
|
||||
34567890
|
||||
</stdout>
|
||||
</verify>
|
||||
</testcase>
|
||||
|
||||
@@ -0,0 +1,135 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
HTTP
|
||||
HTTP GET
|
||||
HTTP CONNECT
|
||||
HTTP proxy
|
||||
HTTP proxy NTLM auth
|
||||
--proxy-anyauth
|
||||
</keywords>
|
||||
</info>
|
||||
# Server-side
|
||||
<reply>
|
||||
|
||||
<data>
|
||||
HTTP/1.1 407 Authorization Required to proxy me my dear swsclose
|
||||
Proxy-Authenticate: NTLM
|
||||
Content-Length: 21
|
||||
Connection: close
|
||||
|
||||
data to discard
|
||||
</data>
|
||||
|
||||
# this is returned first since we get no proxy-auth
|
||||
<data1001>
|
||||
HTTP/1.1 407 Authorization Required to proxy me my dear
|
||||
Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA==
|
||||
Content-Length: 28
|
||||
|
||||
And you should ignore this data.
|
||||
</data1001>
|
||||
|
||||
# This is supposed to be returned when the server gets the second
|
||||
# Authorization: NTLM line passed-in from the client
|
||||
<data1002>
|
||||
HTTP/1.1 200 Things are fine in proxy land
|
||||
Server: Microsoft-IIS/5.0
|
||||
Content-Type: text/html; charset=iso-8859-1
|
||||
|
||||
</data1002>
|
||||
|
||||
# this is returned when we get a GET!
|
||||
<data2>
|
||||
HTTP/1.1 200 OK
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Content-Length: 7
|
||||
Connection: close
|
||||
Content-Type: text/html
|
||||
Funny-head: yesyes
|
||||
|
||||
daniel
|
||||
</data2>
|
||||
|
||||
# then this is returned when we get proxy-auth
|
||||
<data1000>
|
||||
HTTP/1.1 200 OK swsbounce
|
||||
Server: no
|
||||
|
||||
Nice proxy auth sir!
|
||||
</data1000>
|
||||
|
||||
<datacheck>
|
||||
HTTP/1.1 407 Authorization Required to proxy me my dear swsclose
|
||||
Proxy-Authenticate: NTLM
|
||||
Content-Length: 21
|
||||
Connection: close
|
||||
|
||||
HTTP/1.1 407 Authorization Required to proxy me my dear
|
||||
Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA==
|
||||
Content-Length: 28
|
||||
|
||||
HTTP/1.1 200 Things are fine in proxy land
|
||||
Server: Microsoft-IIS/5.0
|
||||
Content-Type: text/html; charset=iso-8859-1
|
||||
|
||||
HTTP/1.1 200 OK
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Content-Length: 7
|
||||
Connection: close
|
||||
Content-Type: text/html
|
||||
Funny-head: yesyes
|
||||
|
||||
daniel
|
||||
</datacheck>
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
http
|
||||
</server>
|
||||
<features>
|
||||
NTLM
|
||||
</features>
|
||||
<name>
|
||||
HTTP proxy CONNECT with any proxyauth and proxy offers NTLM and close
|
||||
</name>
|
||||
<command>
|
||||
http://test.remote.server.com:1021/path/10210002 --proxy http://%HOSTIP:%HTTPPORT --proxy-user silly:person --proxy-anyauth --proxytunnel
|
||||
</command>
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<strip>
|
||||
^User-Agent: curl/.*
|
||||
</strip>
|
||||
# We strip off a large chunk of the type-2 NTLM message since it depends on
|
||||
# the local host name and thus differs on different machines!
|
||||
<strippart>
|
||||
s/^(Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAABQAFAHAAAAA).*/$1/
|
||||
</strippart>
|
||||
<protocol>
|
||||
CONNECT test.remote.server.com:1021 HTTP/1.0
|
||||
Host: test.remote.server.com:1021
|
||||
Proxy-Connection: Keep-Alive
|
||||
|
||||
CONNECT test.remote.server.com:1021 HTTP/1.0
|
||||
Host: test.remote.server.com:1021
|
||||
Proxy-Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA=
|
||||
Proxy-Connection: Keep-Alive
|
||||
|
||||
CONNECT test.remote.server.com:1021 HTTP/1.0
|
||||
Host: test.remote.server.com:1021
|
||||
Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAABQAFAHAAAAA
|
||||
Proxy-Connection: Keep-Alive
|
||||
|
||||
GET /path/10210002 HTTP/1.1
|
||||
User-Agent: curl/7.12.3-CVS (i686-pc-linux-gnu) libcurl/7.12.3-CVS OpenSSL/0.9.6b zlib/1.1.4
|
||||
Host: test.remote.server.com:1021
|
||||
Accept: */*
|
||||
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,37 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
curl-config
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
#
|
||||
# Server-side
|
||||
<reply>
|
||||
</reply>
|
||||
|
||||
#
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
none
|
||||
</server>
|
||||
<name>
|
||||
Compare curl --version with curl-config --version
|
||||
</name>
|
||||
<command>
|
||||
--version
|
||||
</command>
|
||||
<postcheck>
|
||||
%SRCDIR/libtest/test1022.pl ../curl-config log/stdout1022 version
|
||||
</postcheck>
|
||||
</client>
|
||||
|
||||
#
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<errorcode>
|
||||
0
|
||||
</errorcode>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,37 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
curl-config
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
#
|
||||
# Server-side
|
||||
<reply>
|
||||
</reply>
|
||||
|
||||
#
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
none
|
||||
</server>
|
||||
<name>
|
||||
Compare curl --version with curl-config --vernum
|
||||
</name>
|
||||
<command>
|
||||
--version
|
||||
</command>
|
||||
<postcheck>
|
||||
%SRCDIR/libtest/test1022.pl ../curl-config log/stdout1023 vernum
|
||||
</postcheck>
|
||||
</client>
|
||||
|
||||
#
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<errorcode>
|
||||
0
|
||||
</errorcode>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,103 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
HTTP
|
||||
HTTP GET
|
||||
followlocation
|
||||
cookies
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
# Server-side
|
||||
<reply>
|
||||
<data>
|
||||
HTTP/1.1 301 This is a weirdo text message
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Server: test-server/fake
|
||||
Location: ../data/10240002.txt
|
||||
Set-Cookie: firstcookie=want; path=/want/
|
||||
Content-Length: 69
|
||||
|
||||
This server reply is for testing a Location: following with cookies
|
||||
|
||||
</data>
|
||||
<data2>
|
||||
HTTP/1.1 301 This is a weirdo text message
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Server: test-server/fake
|
||||
Location: ../want/10240003.txt
|
||||
Set-Cookie: nextcookie=data; path=/data/
|
||||
Content-Length: 69
|
||||
|
||||
This server reply is for testing a Location: following with cookies
|
||||
|
||||
</data2>
|
||||
<data3>
|
||||
HTTP/1.1 200 Followed here fine
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Server: test-server/fake
|
||||
Content-Length: 52
|
||||
|
||||
If this is received, the location following worked
|
||||
|
||||
</data3>
|
||||
<datacheck>
|
||||
HTTP/1.1 301 This is a weirdo text message
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Server: test-server/fake
|
||||
Location: ../data/10240002.txt
|
||||
Set-Cookie: firstcookie=want; path=/want/
|
||||
Content-Length: 69
|
||||
|
||||
HTTP/1.1 301 This is a weirdo text message
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Server: test-server/fake
|
||||
Location: ../want/10240003.txt
|
||||
Set-Cookie: nextcookie=data; path=/data/
|
||||
Content-Length: 69
|
||||
|
||||
HTTP/1.1 200 Followed here fine
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Server: test-server/fake
|
||||
Content-Length: 52
|
||||
|
||||
If this is received, the location following worked
|
||||
|
||||
</datacheck>
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
http
|
||||
</server>
|
||||
<name>
|
||||
HTTP Location: following with cookies
|
||||
</name>
|
||||
<command>
|
||||
http://%HOSTIP:%HTTPPORT/want/1024 -L -c log/jar1024
|
||||
</command>
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<strip>
|
||||
^User-Agent:.*
|
||||
</strip>
|
||||
<protocol>
|
||||
GET /want/1024 HTTP/1.1
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
|
||||
GET /data/10240002.txt HTTP/1.1
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
|
||||
GET /want/10240003.txt HTTP/1.1
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
Cookie: firstcookie=want
|
||||
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,105 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
HTTP
|
||||
HTTP GET
|
||||
followlocation
|
||||
cookies
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
# Server-side
|
||||
<reply>
|
||||
<data>
|
||||
HTTP/1.1 301 This is a weirdo text message
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Server: test-server/fake
|
||||
Location: ../data/10250002.txt
|
||||
Set-Cookie: firstcookie=want; path=/want/
|
||||
Content-Length: 69
|
||||
|
||||
This server reply is for testing a Location: following with cookies
|
||||
|
||||
</data>
|
||||
<data2>
|
||||
HTTP/1.1 301 This is a weirdo text message
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Server: test-server/fake
|
||||
Location: ../want/10250003.txt
|
||||
Set-Cookie: nextcookie=data; path=/data/
|
||||
Content-Length: 69
|
||||
|
||||
This server reply is for testing a Location: following with cookies
|
||||
|
||||
</data2>
|
||||
<data3>
|
||||
HTTP/1.1 200 Followed here fine
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Server: test-server/fake
|
||||
Content-Length: 52
|
||||
|
||||
If this is received, the location following worked
|
||||
|
||||
</data3>
|
||||
<datacheck>
|
||||
HTTP/1.1 301 This is a weirdo text message
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Server: test-server/fake
|
||||
Location: ../data/10250002.txt
|
||||
Set-Cookie: firstcookie=want; path=/want/
|
||||
Content-Length: 69
|
||||
|
||||
HTTP/1.1 301 This is a weirdo text message
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Server: test-server/fake
|
||||
Location: ../want/10250003.txt
|
||||
Set-Cookie: nextcookie=data; path=/data/
|
||||
Content-Length: 69
|
||||
|
||||
HTTP/1.1 200 Followed here fine
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Server: test-server/fake
|
||||
Content-Length: 52
|
||||
|
||||
If this is received, the location following worked
|
||||
|
||||
</datacheck>
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
http
|
||||
</server>
|
||||
<name>
|
||||
HTTP Location: following with command-line and server cookies
|
||||
</name>
|
||||
<command>
|
||||
http://%HOSTIP:%HTTPPORT/want/1025 -L -c log/jar1025 -b forcedcookie=yes
|
||||
</command>
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<strip>
|
||||
^User-Agent:.*
|
||||
</strip>
|
||||
<protocol>
|
||||
GET /want/1025 HTTP/1.1
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
Cookie: forcedcookie=yes
|
||||
|
||||
GET /data/10250002.txt HTTP/1.1
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
Cookie: forcedcookie=yes
|
||||
|
||||
GET /want/10250003.txt HTTP/1.1
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
Cookie: firstcookie=want; forcedcookie=yes
|
||||
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,39 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
--manual
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
#
|
||||
# Server-side
|
||||
<reply>
|
||||
</reply>
|
||||
|
||||
#
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
none
|
||||
</server>
|
||||
<name>
|
||||
curl --manual
|
||||
</name>
|
||||
<command>
|
||||
--manual
|
||||
</command>
|
||||
# Search for these two sentinel lines in the manual output; if they are found,
|
||||
# then chances are good the entire manual is there.
|
||||
<postcheck>
|
||||
perl -e 'open(IN,$ARGV[0]); my $lines=grep(/(a\s*tool\s*to\s*transfer\s*data)|(mailing\s*lists\s*to\s*discuss\s*curl)/, <IN>); exit ($lines != 2); # Let this file pass an XML syntax check: </IN>' log/stdout1026
|
||||
</postcheck>
|
||||
</client>
|
||||
|
||||
#
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<errorcode>
|
||||
0
|
||||
</errorcode>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,39 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
--help
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
#
|
||||
# Server-side
|
||||
<reply>
|
||||
</reply>
|
||||
|
||||
#
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
none
|
||||
</server>
|
||||
<name>
|
||||
curl --help
|
||||
</name>
|
||||
<command>
|
||||
--help
|
||||
</command>
|
||||
# Search for these two sentinel lines in the help output; if they are found,
|
||||
# then chances are good the entire help is there.
|
||||
<postcheck>
|
||||
perl -e 'open(IN,$ARGV[0]); my $lines=grep(/(Usage: curl )|(--version\s*Show version)/, <IN>); exit ($lines != 2); # Let this file pass an XML syntax check: </IN>' log/stdout1027
|
||||
</postcheck>
|
||||
</client>
|
||||
|
||||
#
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<errorcode>
|
||||
0
|
||||
</errorcode>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,94 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
HTTP
|
||||
HTTP GET
|
||||
followlocation
|
||||
FTP
|
||||
PASV
|
||||
FILE
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
#
|
||||
# Server-side
|
||||
<reply>
|
||||
<data1>
|
||||
HTTP/1.1 302 OK
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Server: test-server/fake swsclose
|
||||
Content-Type: text/html
|
||||
Funny-head: yesyes
|
||||
Location: ftp://127.0.0.1:8992/10280002
|
||||
Content-Length: 0
|
||||
Connection: close
|
||||
|
||||
</data1>
|
||||
<data2>
|
||||
data
|
||||
to
|
||||
see
|
||||
that FTP
|
||||
works
|
||||
so does it?
|
||||
</data2>
|
||||
</reply>
|
||||
|
||||
#
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
http
|
||||
ftp
|
||||
</server>
|
||||
<name>
|
||||
HTTP Location: redirect to FTP URL
|
||||
</name>
|
||||
<command>
|
||||
http://%HOSTIP:%HTTPPORT/10280001 -L
|
||||
</command>
|
||||
# The data section doesn't do variable substitution, so we must assert this
|
||||
<precheck>
|
||||
perl -e "print 'Test requires default test server host and port' if ( '%HOSTIP' ne '127.0.0.1' || '%FTPPORT' ne '8992' );"
|
||||
</precheck>
|
||||
</client>
|
||||
|
||||
#
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<strip>
|
||||
^User-Agent:.*
|
||||
</strip>
|
||||
<protocol>
|
||||
GET /10280001 HTTP/1.1
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
|
||||
USER anonymous
|
||||
PASS [email protected]
|
||||
PWD
|
||||
EPSV
|
||||
TYPE I
|
||||
SIZE 10280002
|
||||
RETR 10280002
|
||||
QUIT
|
||||
</protocol>
|
||||
<stdout>
|
||||
HTTP/1.1 302 OK
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Server: test-server/fake swsclose
|
||||
Content-Type: text/html
|
||||
Funny-head: yesyes
|
||||
Location: ftp://%HOSTIP:%FTPPORT/10280002
|
||||
Content-Length: 0
|
||||
Connection: close
|
||||
|
||||
data
|
||||
to
|
||||
see
|
||||
that FTP
|
||||
works
|
||||
so does it?
|
||||
</stdout>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,58 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
HTTP
|
||||
HTTP GET
|
||||
redirect_url
|
||||
followlocation
|
||||
--write-out
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
# Server-side
|
||||
<reply>
|
||||
<data nocheck="1">
|
||||
HTTP/1.1 301 This is a weirdo text message swsclose
|
||||
Location: data/10290002.txt?coolsite=yes
|
||||
Content-Length: 62
|
||||
Connection: close
|
||||
|
||||
This server reply is for testing a simple Location: following
|
||||
</data>
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
http
|
||||
</server>
|
||||
<name>
|
||||
HTTP Location: and 'redirect_url' check
|
||||
</name>
|
||||
<command>
|
||||
http://%HOSTIP:%HTTPPORT/we/want/our/1029 -w '%{redirect_url}\n'
|
||||
</command>
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<strip>
|
||||
^User-Agent:.*
|
||||
</strip>
|
||||
<protocol>
|
||||
GET /we/want/our/1029 HTTP/1.1
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
|
||||
</protocol>
|
||||
<stdout mode="text">
|
||||
HTTP/1.1 301 This is a weirdo text message swsclose
|
||||
Location: data/10290002.txt?coolsite=yes
|
||||
Content-Length: 62
|
||||
Connection: close
|
||||
|
||||
This server reply is for testing a simple Location: following
|
||||
http://%HOSTIP:%HTTPPORT/we/want/our/data/10290002.txt?coolsite=yes
|
||||
</stdout>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,54 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
FTP
|
||||
PORT
|
||||
RETR
|
||||
</keywords>
|
||||
</info>
|
||||
# Server-side
|
||||
<reply>
|
||||
<data>
|
||||
data
|
||||
to
|
||||
see
|
||||
that FTP
|
||||
works
|
||||
so does it?
|
||||
</data>
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
ftp
|
||||
</server>
|
||||
<name>
|
||||
FTP RETR PORT with CWD
|
||||
</name>
|
||||
<command>
|
||||
ftp://%HOSTIP:%FTPPORT/a/path/103 -P -
|
||||
</command>
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
# Strip all valid kinds of PORT and EPRT that curl can send
|
||||
<strip>
|
||||
^PORT \d{1,3},\d{1,3},\d{1,3},\d{1,3},\d{1,3},\d{1,3}
|
||||
^EPRT \|1\|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\|\d{1,5}\|
|
||||
</strip>
|
||||
<protocol>
|
||||
USER anonymous
|
||||
PASS [email protected]
|
||||
PWD
|
||||
CWD a
|
||||
CWD path
|
||||
PORT 127,0,0,1,0,0
|
||||
TYPE I
|
||||
SIZE 103
|
||||
RETR 103
|
||||
QUIT
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,109 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
HTTP
|
||||
HTTP PUT
|
||||
HTTP Digest auth
|
||||
--anyauth
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
# Server-side
|
||||
<reply>
|
||||
<data>
|
||||
HTTP/1.1 401 Authorization Required
|
||||
Server: Apache/1.3.27 (Darwin) PHP/4.1.2
|
||||
WWW-Authenticate: Blackmagic realm="gimme all yer s3cr3ts"
|
||||
WWW-Authenticate: Basic realm="gimme all yer s3cr3ts"
|
||||
WWW-Authenticate: Digest realm="gimme all yer s3cr3ts", nonce="11223344"
|
||||
Content-Length: 26
|
||||
Content-Type: text/html; charset=iso-8859-1
|
||||
|
||||
This is not the real page
|
||||
</data>
|
||||
|
||||
# This is supposed to be returned when the server gets a
|
||||
# Authorization: Digest line passed-in from the client
|
||||
<data1000>
|
||||
HTTP/1.1 200 OK
|
||||
Server: Apache/1.3.27 (Darwin) PHP/4.1.2
|
||||
Content-Type: text/html; charset=iso-8859-1
|
||||
Content-Length: 23
|
||||
Connection: close
|
||||
|
||||
This IS the real page!
|
||||
</data1000>
|
||||
|
||||
<datacheck>
|
||||
HTTP/1.1 401 Authorization Required
|
||||
Server: Apache/1.3.27 (Darwin) PHP/4.1.2
|
||||
WWW-Authenticate: Blackmagic realm="gimme all yer s3cr3ts"
|
||||
WWW-Authenticate: Basic realm="gimme all yer s3cr3ts"
|
||||
WWW-Authenticate: Digest realm="gimme all yer s3cr3ts", nonce="11223344"
|
||||
Content-Length: 26
|
||||
Content-Type: text/html; charset=iso-8859-1
|
||||
|
||||
HTTP/1.1 200 OK
|
||||
Server: Apache/1.3.27 (Darwin) PHP/4.1.2
|
||||
Content-Type: text/html; charset=iso-8859-1
|
||||
Content-Length: 23
|
||||
Connection: close
|
||||
|
||||
This IS the real page!
|
||||
</datacheck>
|
||||
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
http
|
||||
</server>
|
||||
<features>
|
||||
crypto
|
||||
</features>
|
||||
<name>
|
||||
HTTP PUT with --anyauth authorization (picking Digest)
|
||||
</name>
|
||||
<command>
|
||||
http://%HOSTIP:%HTTPPORT/1030 -T log/put1030 -u testuser:testpass --anyauth
|
||||
</command>
|
||||
<file name="log/put1030">
|
||||
This is data we upload with PUT
|
||||
a second line
|
||||
line three
|
||||
four is the number of lines
|
||||
</file>
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<strip>
|
||||
^User-Agent:.*
|
||||
</strip>
|
||||
<protocol>
|
||||
PUT /1030 HTTP/1.1
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
Content-Length: 85
|
||||
Expect: 100-continue
|
||||
|
||||
This is data we upload with PUT
|
||||
a second line
|
||||
line three
|
||||
four is the number of lines
|
||||
PUT /1030 HTTP/1.1
|
||||
Authorization: Digest username="testuser", realm="gimme all yer s3cr3ts", nonce="11223344", uri="/1030", response="01cb59db1ddaac246b072d5f5f0716d9"
|
||||
User-Agent: curl/7.10.5 (i686-pc-linux-gnu) libcurl/7.10.5 OpenSSL/0.9.7a ipv6 zlib/1.1.3
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
Content-Length: 85
|
||||
Expect: 100-continue
|
||||
|
||||
This is data we upload with PUT
|
||||
a second line
|
||||
line three
|
||||
four is the number of lines
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,76 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
HTTP
|
||||
HTTP GET
|
||||
followlocation
|
||||
</keywords>
|
||||
</info>
|
||||
# Server-side
|
||||
<reply>
|
||||
<data>
|
||||
HTTP/1.1 301 This is a weirdo text message swsclose
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Server: test-server/fake
|
||||
Location: ?coolsite=yes/10310002.txt
|
||||
Connection: close
|
||||
|
||||
This server reply is for testing a simple Location: following
|
||||
|
||||
</data>
|
||||
<data2>
|
||||
HTTP/1.1 200 Followed here fine swsclose
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Server: test-server/fake
|
||||
Content-Length: 52
|
||||
|
||||
If this is received, the location following worked
|
||||
|
||||
</data2>
|
||||
<datacheck>
|
||||
HTTP/1.1 301 This is a weirdo text message swsclose
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Server: test-server/fake
|
||||
Location: ?coolsite=yes/10310002.txt
|
||||
Connection: close
|
||||
|
||||
HTTP/1.1 200 Followed here fine swsclose
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Server: test-server/fake
|
||||
Content-Length: 52
|
||||
|
||||
If this is received, the location following worked
|
||||
|
||||
</datacheck>
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
http
|
||||
</server>
|
||||
<name>
|
||||
HTTP Location: following to a query string
|
||||
</name>
|
||||
<command>
|
||||
http://%HOSTIP:%HTTPPORT/want/this/1031 -L
|
||||
</command>
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<strip>
|
||||
^User-Agent:.*
|
||||
</strip>
|
||||
<protocol>
|
||||
GET /want/this/1031 HTTP/1.1
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
|
||||
GET /want/this/1031?coolsite=yes/10310002.txt HTTP/1.1
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,56 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
HTTP
|
||||
HTTP HEAD
|
||||
range
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
#
|
||||
# Server-side
|
||||
<reply>
|
||||
<data>
|
||||
HTTP/1.1 200 OK
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Server: test-server/fake
|
||||
Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT
|
||||
ETag: "21025-dc7-39462498"
|
||||
Accept-Ranges: bytes
|
||||
Content-Length: 6
|
||||
Connection: close
|
||||
Content-Type: text/html
|
||||
Funny-head: yesyes
|
||||
|
||||
</data>
|
||||
</reply>
|
||||
|
||||
#
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
http
|
||||
</server>
|
||||
<name>
|
||||
HTTP HEAD with --range
|
||||
</name>
|
||||
<command>
|
||||
--range 1-3 --head http://%HOSTIP:%HTTPPORT/1032
|
||||
</command>
|
||||
</client>
|
||||
|
||||
#
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<strip>
|
||||
^User-Agent:.*
|
||||
</strip>
|
||||
<protocol>
|
||||
HEAD /1032 HTTP/1.1
|
||||
Range: bytes=1-3
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,60 @@
|
||||
<testcase>
|
||||
#
|
||||
# This case with an unexpected 1xx response used to cause a "hang" before the fix
|
||||
# got 7.19.0
|
||||
<info>
|
||||
<keywords>
|
||||
HTTP
|
||||
HTTP GET
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
#
|
||||
# Server-side
|
||||
<reply>
|
||||
<data>
|
||||
HTTP/1.1 102 unexpected huh?!
|
||||
|
||||
HTTP/1.1 200 OK
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Server: test-server/fake
|
||||
Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT
|
||||
ETag: "21025-dc7-39462498"
|
||||
Accept-Ranges: bytes
|
||||
Content-Length: 6
|
||||
Connection: close
|
||||
Content-Type: text/html
|
||||
Funny-head: yesyes
|
||||
|
||||
-foo-
|
||||
</data>
|
||||
</reply>
|
||||
|
||||
#
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
http
|
||||
</server>
|
||||
<name>
|
||||
HTTP GET with 102 response!
|
||||
</name>
|
||||
<command>
|
||||
http://%HOSTIP:%HTTPPORT/1033
|
||||
</command>
|
||||
</client>
|
||||
|
||||
#
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<strip>
|
||||
^User-Agent:.*
|
||||
</strip>
|
||||
<protocol>
|
||||
GET /1033 HTTP/1.1
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,63 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
HTTP
|
||||
HTTP GET
|
||||
HTTP proxy
|
||||
IDN
|
||||
FAILURE
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
#
|
||||
# Server-side
|
||||
<reply>
|
||||
<data>
|
||||
HTTP/1.0 503 Service Unavailable
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Server: test-server/fake swsclose
|
||||
Content-Type: text/html
|
||||
Funny-head: yesyes
|
||||
|
||||
</data>
|
||||
</reply>
|
||||
|
||||
#
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
http
|
||||
</server>
|
||||
<features>
|
||||
idn
|
||||
</features>
|
||||
<setenv>
|
||||
CHARSET=UTF-8
|
||||
</setenv>
|
||||
<name>
|
||||
HTTP over proxy with malformatted IDN host name
|
||||
</name>
|
||||
|
||||
# This host name contains an invalid UTF-8 byte sequence that can't be
|
||||
# converted into an IDN name
|
||||
<command>
|
||||
http://invalid-utf8-â�.local/page/1034 -x %HOSTIP:%HTTPPORT
|
||||
</command>
|
||||
</client>
|
||||
|
||||
#
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<strip>
|
||||
^User-Agent:.*
|
||||
</strip>
|
||||
<protocol>
|
||||
GET http://invalid-utf8-â�.local/page/1034 HTTP/1.1
|
||||
Host: invalid-utf8-â�.local
|
||||
Pragma: no-cache
|
||||
Accept: */*
|
||||
Proxy-Connection: Keep-Alive
|
||||
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,60 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
HTTP
|
||||
HTTP GET
|
||||
HTTP proxy
|
||||
IDN
|
||||
FAILURE
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
#
|
||||
# Server-side
|
||||
<reply>
|
||||
<data>
|
||||
HTTP/1.0 503 Service Unavailable
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Server: test-server/fake swsclose
|
||||
Content-Type: text/html
|
||||
Funny-head: yesyes
|
||||
|
||||
</data>
|
||||
</reply>
|
||||
|
||||
#
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
http
|
||||
</server>
|
||||
<features>
|
||||
idn
|
||||
</features>
|
||||
<setenv>
|
||||
CHARSET=ISO8859-1
|
||||
</setenv>
|
||||
<name>
|
||||
HTTP over proxy with too long IDN host name
|
||||
</name>
|
||||
<command>
|
||||
http://too-long-IDN-name-cürl-rüles-la-la-la-dee-da-flooby-nooby.local/page/1035 -x %HOSTIP:%HTTPPORT
|
||||
</command>
|
||||
</client>
|
||||
|
||||
#
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<strip>
|
||||
^User-Agent:.*
|
||||
</strip>
|
||||
<protocol>
|
||||
GET http://too-long-IDN-name-cürl-rüles-la-la-la-dee-da-flooby-nooby.local/page/1035 HTTP/1.1
|
||||
Host: too-long-IDN-name-cürl-rüles-la-la-la-dee-da-flooby-nooby.local
|
||||
Pragma: no-cache
|
||||
Accept: */*
|
||||
Proxy-Connection: Keep-Alive
|
||||
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,61 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
FTP
|
||||
PASV
|
||||
RETR
|
||||
Resume
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
# Server-side
|
||||
<reply>
|
||||
<data nocheck="1">
|
||||
expected to be a file without the first part
|
||||
but we emulate that
|
||||
</data>
|
||||
<size>
|
||||
85
|
||||
</size>
|
||||
<servercmd>
|
||||
REPLY EPSV 500 no such command
|
||||
</servercmd>
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
ftp
|
||||
</server>
|
||||
<name>
|
||||
FTP download resume from end of file
|
||||
</name>
|
||||
<command>
|
||||
ftp://%HOSTIP:%FTPPORT/1036 -C -
|
||||
</command>
|
||||
<file name="log/curl1036.out">
|
||||
This is the start!!
|
||||
</file>
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<protocol>
|
||||
USER anonymous
|
||||
PASS [email protected]
|
||||
PWD
|
||||
EPSV
|
||||
PASV
|
||||
TYPE I
|
||||
SIZE 1036
|
||||
REST 20
|
||||
RETR 1036
|
||||
QUIT
|
||||
</protocol>
|
||||
<file name="log/curl1036.out">
|
||||
This is the start!!
|
||||
expected to be a file without the first part
|
||||
but we emulate that
|
||||
</file>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,54 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
FTP
|
||||
PASV
|
||||
RETR
|
||||
Resume
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
# Server-side
|
||||
<reply>
|
||||
<data nocheck="1">
|
||||
expected to be a file without the first part
|
||||
but we emulate that
|
||||
</data>
|
||||
<size>
|
||||
65
|
||||
</size>
|
||||
<servercmd>
|
||||
REPLY EPSV 500 no such command
|
||||
</servercmd>
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
ftp
|
||||
</server>
|
||||
<name>
|
||||
FTP download resume from end of empty file
|
||||
</name>
|
||||
<command>
|
||||
ftp://%HOSTIP:%FTPPORT/1037 -C -
|
||||
</command>
|
||||
<file name="log/curl1037.out">
|
||||
</file>
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<protocol>
|
||||
USER anonymous
|
||||
PASS [email protected]
|
||||
PWD
|
||||
EPSV
|
||||
PASV
|
||||
TYPE I
|
||||
SIZE 1037
|
||||
RETR 1037
|
||||
QUIT
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,53 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
FTP
|
||||
EPSV
|
||||
APPE
|
||||
Resume
|
||||
</keywords>
|
||||
</info>
|
||||
# Server-side
|
||||
<reply>
|
||||
<size>
|
||||
17
|
||||
</size>
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
ftp
|
||||
</server>
|
||||
<name>
|
||||
FTP PASV upload resume from end of file
|
||||
</name>
|
||||
<command>
|
||||
ftp://%HOSTIP:%FTPPORT/1038 -T log/upload1038 -C -
|
||||
</command>
|
||||
<file name="log/upload1038">
|
||||
this is the *****cr@p******** that we're gonna upload
|
||||
|
||||
worx?
|
||||
</file>
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<protocol>
|
||||
USER anonymous
|
||||
PASS [email protected]
|
||||
PWD
|
||||
EPSV
|
||||
TYPE I
|
||||
SIZE 1038
|
||||
APPE 1038
|
||||
QUIT
|
||||
</protocol>
|
||||
<upload>
|
||||
cr@p******** that we're gonna upload
|
||||
|
||||
worx?
|
||||
</upload>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,53 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
FTP
|
||||
EPSV
|
||||
APPE
|
||||
Resume
|
||||
</keywords>
|
||||
</info>
|
||||
# Server-side
|
||||
<reply>
|
||||
<size>
|
||||
0
|
||||
</size>
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
ftp
|
||||
</server>
|
||||
<name>
|
||||
FTP PASV upload resume from end of empty file
|
||||
</name>
|
||||
<command>
|
||||
ftp://%HOSTIP:%FTPPORT/1039 -T log/upload1039 -C -
|
||||
</command>
|
||||
<file name="log/upload1039">
|
||||
this is the *****cr@p******** that we're gonna upload
|
||||
|
||||
worx?
|
||||
</file>
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<protocol>
|
||||
USER anonymous
|
||||
PASS [email protected]
|
||||
PWD
|
||||
EPSV
|
||||
TYPE I
|
||||
SIZE 1039
|
||||
STOR 1039
|
||||
QUIT
|
||||
</protocol>
|
||||
<upload>
|
||||
this is the *****cr@p******** that we're gonna upload
|
||||
|
||||
worx?
|
||||
</upload>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,43 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
FTP
|
||||
NOBODY
|
||||
</keywords>
|
||||
</info>
|
||||
# Server-side
|
||||
<reply>
|
||||
<size>
|
||||
51
|
||||
</size>
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
ftp
|
||||
</server>
|
||||
<name>
|
||||
FTP --head to get file size only
|
||||
</name>
|
||||
<command>
|
||||
ftp://%HOSTIP:%FTPPORT/a/path/103 --head
|
||||
</command>
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<protocol>
|
||||
USER anonymous
|
||||
PASS [email protected]
|
||||
PWD
|
||||
CWD a
|
||||
CWD path
|
||||
MDTM 103
|
||||
TYPE I
|
||||
SIZE 103
|
||||
REST 0
|
||||
QUIT
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,79 @@
|
||||
<testcase>
|
||||
# Similar to test92
|
||||
<info>
|
||||
<keywords>
|
||||
HTTP
|
||||
HTTP GET
|
||||
Resume
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
# Server-side
|
||||
<reply>
|
||||
<data>
|
||||
HTTP/1.1 416 Invalid range
|
||||
Connection: close
|
||||
Content-Length: 0
|
||||
|
||||
</data>
|
||||
|
||||
# The file data that exists at the start of the test must be included in
|
||||
# the verification.
|
||||
<datacheck>
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
HTTP/1.1 416 Invalid range
|
||||
Connection: close
|
||||
Content-Length: 0
|
||||
|
||||
</datacheck>
|
||||
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
http
|
||||
</server>
|
||||
<name>
|
||||
HTTP GET with resume from end of entirely-downloaded file
|
||||
</name>
|
||||
<command>
|
||||
http://%HOSTIP:%HTTPPORT/1040 -C -
|
||||
</command>
|
||||
<file name="log/curl1040.out">
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
</file>
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<strip>
|
||||
^User-Agent:.*
|
||||
</strip>
|
||||
<protocol>
|
||||
GET /1040 HTTP/1.1
|
||||
Range: bytes=100-
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,78 @@
|
||||
<testcase>
|
||||
# Similar to test33
|
||||
<info>
|
||||
<keywords>
|
||||
HTTP
|
||||
HTTP PUT
|
||||
Resume
|
||||
Content-Range
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
# Server-side
|
||||
<reply>
|
||||
<data>
|
||||
HTTP/1.1 OK swsclose
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Server: test-server/fake
|
||||
Accept-Ranges: bytes
|
||||
Content-Length: 0
|
||||
Connection: close
|
||||
Content-Type: text/html
|
||||
|
||||
</data>
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
http
|
||||
</server>
|
||||
<name>
|
||||
HTTP PUT with resume from end of already-uploaded file
|
||||
</name>
|
||||
<file name="log/test1041.txt">
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
</file>
|
||||
<command>
|
||||
http://%HOSTIP:%HTTPPORT/1041 -Tlog/test1041.txt -C -
|
||||
</command>
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<strip>
|
||||
^User-Agent:.*
|
||||
</strip>
|
||||
# curl doesn't do a HEAD request on the remote file so it has no idea whether
|
||||
# it can skip part of the file or not. Instead, it sends the entire file.
|
||||
<protocol>
|
||||
PUT /1041 HTTP/1.1
|
||||
Content-Range: bytes 0-99/100
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
Content-Length: 100
|
||||
Expect: 100-continue
|
||||
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,94 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
HTTP
|
||||
HTTP GET
|
||||
Resume
|
||||
FAILURE
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
# Server-side
|
||||
<reply>
|
||||
# Some servers (e.g. Apache 1.2) respond this way to an invalid byte range
|
||||
<data>
|
||||
HTTP/1.1 200 OK
|
||||
Connection: close
|
||||
Content-Length: 100
|
||||
Content-Type: text/plain
|
||||
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
</data>
|
||||
|
||||
# The file data that exists at the start of the test must be included in
|
||||
# the verification.
|
||||
<datacheck>
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
HTTP/1.1 200 OK
|
||||
Connection: close
|
||||
Content-Length: 100
|
||||
Content-Type: text/plain
|
||||
|
||||
</datacheck>
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
http
|
||||
</server>
|
||||
<name>
|
||||
HTTP GET from end of entirely-downloaded file, no server resume
|
||||
</name>
|
||||
<command>
|
||||
http://%HOSTIP:%HTTPPORT/1042 -C -
|
||||
</command>
|
||||
<file name="log/curl1042.out">
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
</file>
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<errorcode>
|
||||
33
|
||||
</errorcode>
|
||||
<strip>
|
||||
^User-Agent:.*
|
||||
</strip>
|
||||
<protocol>
|
||||
GET /1042 HTTP/1.1
|
||||
Range: bytes=100-
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,84 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
HTTP
|
||||
HTTP GET
|
||||
Resume
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
# Server-side
|
||||
<reply>
|
||||
<data>
|
||||
HTTP/1.1 206 Partial Content
|
||||
Date: Mon, 13 Nov 2007 13:41:09 GMT
|
||||
Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT
|
||||
Accept-Ranges: bytes
|
||||
Content-Length: 60
|
||||
Content-Range: bytes 40-99/100
|
||||
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
</data>
|
||||
|
||||
# The file data that exists at the start of the test must be included in
|
||||
# the verification.
|
||||
<datacheck>
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
HTTP/1.1 206 Partial Content
|
||||
Date: Mon, 13 Nov 2007 13:41:09 GMT
|
||||
Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT
|
||||
Accept-Ranges: bytes
|
||||
Content-Length: 60
|
||||
Content-Range: bytes 40-99/100
|
||||
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
</datacheck>
|
||||
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
http
|
||||
</server>
|
||||
<name>
|
||||
HTTP GET with resume from end of file
|
||||
</name>
|
||||
<command>
|
||||
http://%HOSTIP:%HTTPPORT/1043 -C -
|
||||
</command>
|
||||
<file name="log/curl1043.out">
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
012345678
|
||||
</file>
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<strip>
|
||||
^User-Agent:.*
|
||||
</strip>
|
||||
<protocol>
|
||||
GET /1043 HTTP/1.1
|
||||
Range: bytes=40-
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,58 @@
|
||||
<testcase>
|
||||
# Similar to test141
|
||||
<info>
|
||||
<keywords>
|
||||
FTP
|
||||
NOBODY
|
||||
Largefile
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
# Server-side
|
||||
<reply>
|
||||
<data>
|
||||
</data>
|
||||
<size>
|
||||
9999999999
|
||||
</size>
|
||||
<mdtm>
|
||||
213 20080726102659
|
||||
</mdtm>
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
<features>
|
||||
large_file
|
||||
</features>
|
||||
<server>
|
||||
ftp
|
||||
</server>
|
||||
<name>
|
||||
FTP download large file info with -I
|
||||
</name>
|
||||
<command>
|
||||
ftp://%HOSTIP:%FTPPORT/blalbla/1044 -I
|
||||
</command>
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<protocol>
|
||||
USER anonymous
|
||||
PASS [email protected]
|
||||
PWD
|
||||
CWD blalbla
|
||||
MDTM 1044
|
||||
TYPE I
|
||||
SIZE 1044
|
||||
REST 0
|
||||
QUIT
|
||||
</protocol>
|
||||
<stdout>
|
||||
Last-Modified: Sat, 26 Jul 2008 10:26:59 GMT
|
||||
Content-Length: 9999999999
|
||||
Accept-ranges: bytes
|
||||
</stdout>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,52 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
HTTP
|
||||
HTTP GET
|
||||
--interface
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
#
|
||||
# Server-side
|
||||
<reply>
|
||||
<data>
|
||||
HTTP/1.1 200 OK
|
||||
Date: Mon, 28 Jul 2008 14:49:00 GMT
|
||||
Server: test-server/fake
|
||||
Content-Length: 6
|
||||
Connection: close
|
||||
Content-Type: text/plain
|
||||
|
||||
-foo-
|
||||
</data>
|
||||
</reply>
|
||||
|
||||
#
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
http
|
||||
</server>
|
||||
<name>
|
||||
HTTP GET with numeric localhost --interface
|
||||
</name>
|
||||
<command>
|
||||
http://%HOSTIP:%HTTPPORT/1045 --interface %CLIENTIP
|
||||
</command>
|
||||
</client>
|
||||
|
||||
#
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<strip>
|
||||
^User-Agent:.*
|
||||
</strip>
|
||||
<protocol>
|
||||
GET /1045 HTTP/1.1
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,60 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
HTTP
|
||||
HTTP GET
|
||||
--interface
|
||||
IPv6
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
#
|
||||
# Server-side
|
||||
<reply>
|
||||
<data>
|
||||
HTTP/1.1 200 OK
|
||||
Date: Mon, 28 Jul 2008 14:49:00 GMT
|
||||
Server: test-server/fake
|
||||
Content-Length: 6
|
||||
Connection: close
|
||||
Content-Type: text/plain
|
||||
|
||||
-foo-
|
||||
</data>
|
||||
</reply>
|
||||
|
||||
#
|
||||
# Client-side
|
||||
<client>
|
||||
<features>
|
||||
ipv6
|
||||
</features>
|
||||
<server>
|
||||
http-ipv6
|
||||
</server>
|
||||
<name>
|
||||
HTTP-IPv6 GET with numeric localhost --interface
|
||||
</name>
|
||||
<command>
|
||||
-g "http://%HOST6IP:%HTTP6PORT/1046" --interface ::1
|
||||
</command>
|
||||
# --interface doesn't accept an address surrounded by [] so %CLIENT6IP is out
|
||||
<precheck>
|
||||
perl -e "print 'Test requires default test server host address' if ( '%CLIENT6IP' ne '[::1]' );"
|
||||
</precheck>
|
||||
</client>
|
||||
|
||||
#
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<strip>
|
||||
^User-Agent:.*
|
||||
</strip>
|
||||
<protocol>
|
||||
GET /1046 HTTP/1.1
|
||||
Host: %HOST6IP:%HTTP6PORT
|
||||
Accept: */*
|
||||
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,58 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
FTP
|
||||
PASV
|
||||
LIST
|
||||
--interface
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
#
|
||||
# Server-side
|
||||
<reply>
|
||||
# When doing LIST, we get the default list output hard-coded in the test
|
||||
# FTP server
|
||||
<datacheck>
|
||||
total 20
|
||||
drwxr-xr-x 8 98 98 512 Oct 22 13:06 .
|
||||
drwxr-xr-x 8 98 98 512 Oct 22 13:06 ..
|
||||
drwxr-xr-x 2 98 98 512 May 2 1996 .NeXT
|
||||
-r--r--r-- 1 0 1 35 Jul 16 1996 README
|
||||
lrwxrwxrwx 1 0 1 7 Dec 9 1999 bin -> usr/bin
|
||||
dr-xr-xr-x 2 0 1 512 Oct 1 1997 dev
|
||||
drwxrwxrwx 2 98 98 512 May 29 16:04 download.html
|
||||
dr-xr-xr-x 2 0 1 512 Nov 30 1995 etc
|
||||
drwxrwxrwx 2 98 1 512 Oct 30 14:33 pub
|
||||
dr-xr-xr-x 5 0 1 512 Oct 1 1997 usr
|
||||
</datacheck>
|
||||
</reply>
|
||||
|
||||
#
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
ftp
|
||||
</server>
|
||||
<name>
|
||||
FTP dir list PASV with localhost --interface
|
||||
</name>
|
||||
<command>
|
||||
ftp://%HOSTIP:%FTPPORT/ --interface %CLIENTIP
|
||||
</command>
|
||||
</client>
|
||||
|
||||
#
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<protocol>
|
||||
USER anonymous
|
||||
PASS [email protected]
|
||||
PWD
|
||||
EPSV
|
||||
TYPE A
|
||||
LIST
|
||||
QUIT
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,66 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
FTP
|
||||
PASV
|
||||
LIST
|
||||
--interface
|
||||
IPv6
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
#
|
||||
# Server-side
|
||||
<reply>
|
||||
# When doing LIST, we get the default list output hard-coded in the test
|
||||
# FTP server
|
||||
<datacheck>
|
||||
total 20
|
||||
drwxr-xr-x 8 98 98 512 Oct 22 13:06 .
|
||||
drwxr-xr-x 8 98 98 512 Oct 22 13:06 ..
|
||||
drwxr-xr-x 2 98 98 512 May 2 1996 .NeXT
|
||||
-r--r--r-- 1 0 1 35 Jul 16 1996 README
|
||||
lrwxrwxrwx 1 0 1 7 Dec 9 1999 bin -> usr/bin
|
||||
dr-xr-xr-x 2 0 1 512 Oct 1 1997 dev
|
||||
drwxrwxrwx 2 98 98 512 May 29 16:04 download.html
|
||||
dr-xr-xr-x 2 0 1 512 Nov 30 1995 etc
|
||||
drwxrwxrwx 2 98 1 512 Oct 30 14:33 pub
|
||||
dr-xr-xr-x 5 0 1 512 Oct 1 1997 usr
|
||||
</datacheck>
|
||||
</reply>
|
||||
|
||||
#
|
||||
# Client-side
|
||||
<client>
|
||||
<features>
|
||||
ipv6
|
||||
</features>
|
||||
<server>
|
||||
ftp-ipv6
|
||||
</server>
|
||||
<name>
|
||||
FTP-IPv6 dir list PASV with localhost --interface
|
||||
</name>
|
||||
<command>
|
||||
-g "ftp://%HOST6IP:%FTP6PORT/" --interface ::1
|
||||
</command>
|
||||
# --interface doesn't accept an address surrounded by [] so %CLIENT6IP is out
|
||||
<precheck>
|
||||
perl -e "print 'Test requires default test server host address' if ( '%CLIENT6IP' ne '[::1]' );"
|
||||
</precheck>
|
||||
</client>
|
||||
|
||||
#
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<protocol>
|
||||
USER anonymous
|
||||
PASS [email protected]
|
||||
PWD
|
||||
EPSV
|
||||
TYPE A
|
||||
LIST
|
||||
QUIT
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,44 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
TFTP
|
||||
TFTP RRQ
|
||||
--interface
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
#
|
||||
# Server-side
|
||||
<reply>
|
||||
<data>
|
||||
a chunk of
|
||||
data
|
||||
returned
|
||||
to client
|
||||
</data>
|
||||
</reply>
|
||||
|
||||
#
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
tftp
|
||||
</server>
|
||||
<name>
|
||||
TFTP retrieve with localhost --interface
|
||||
</name>
|
||||
<command>
|
||||
tftp://%HOSTIP:%TFTPPORT//1049 --trace-ascii log/traceit --interface %CLIENTIP
|
||||
</command>
|
||||
</client>
|
||||
|
||||
#
|
||||
# Verify pseudo protocol after the test has been "shot"
|
||||
<verify>
|
||||
<protocol>
|
||||
opcode: 1
|
||||
filename: /1049
|
||||
mode: octet
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,53 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
FTP
|
||||
PASV
|
||||
TYPE A
|
||||
RETR
|
||||
</keywords>
|
||||
</info>
|
||||
# Server-side
|
||||
<reply>
|
||||
<data>
|
||||
data
|
||||
to
|
||||
see
|
||||
that FTP
|
||||
works
|
||||
so does it?
|
||||
</data>
|
||||
<servercmd>
|
||||
REPLY EPSV 500 no such command
|
||||
REPLY SIZE 500 no such command
|
||||
</servercmd>
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
ftp
|
||||
</server>
|
||||
<name>
|
||||
FTP user+password in URL and ASCII transfer
|
||||
</name>
|
||||
<command>
|
||||
ftp://userdude:passfellow@%HOSTIP:%FTPPORT/103 --use-ascii
|
||||
</command>
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<protocol>
|
||||
USER userdude
|
||||
PASS passfellow
|
||||
PWD
|
||||
EPSV
|
||||
PASV
|
||||
TYPE A
|
||||
SIZE 103
|
||||
RETR 103
|
||||
QUIT
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,66 @@
|
||||
<testcase>
|
||||
# Similar to test 253
|
||||
<info>
|
||||
<keywords>
|
||||
FTP-ipv6
|
||||
IPv6
|
||||
EPRT
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
# Server-side
|
||||
<reply>
|
||||
# When doing LIST, we get the default list output hard-coded in the test
|
||||
# FTP server
|
||||
<datacheck>
|
||||
total 20
|
||||
drwxr-xr-x 8 98 98 512 Oct 22 13:06 .
|
||||
drwxr-xr-x 8 98 98 512 Oct 22 13:06 ..
|
||||
drwxr-xr-x 2 98 98 512 May 2 1996 .NeXT
|
||||
-r--r--r-- 1 0 1 35 Jul 16 1996 README
|
||||
lrwxrwxrwx 1 0 1 7 Dec 9 1999 bin -> usr/bin
|
||||
dr-xr-xr-x 2 0 1 512 Oct 1 1997 dev
|
||||
drwxrwxrwx 2 98 98 512 May 29 16:04 download.html
|
||||
dr-xr-xr-x 2 0 1 512 Nov 30 1995 etc
|
||||
drwxrwxrwx 2 98 1 512 Oct 30 14:33 pub
|
||||
dr-xr-xr-x 5 0 1 512 Oct 1 1997 usr
|
||||
</datacheck>
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
<features>
|
||||
ipv6
|
||||
</features>
|
||||
<server>
|
||||
ftp-ipv6
|
||||
</server>
|
||||
<name>
|
||||
FTP-IPv6 dir list, EPRT with specified IP
|
||||
</name>
|
||||
<command>
|
||||
-g "ftp://%HOST6IP:%FTP6PORT/" -P ::1
|
||||
</command>
|
||||
# --interface doesn't accept an address surrounded by [] so %CLIENT6IP is out
|
||||
<precheck>
|
||||
perl -e "print 'Test requires default test server host address' if ( '%CLIENT6IP' ne '[::1]' );"
|
||||
</precheck>
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
# Strip all valid kinds of EPRT that curl can send
|
||||
<strippart>
|
||||
s/^(EPRT \|2\|::1\|)(.*)/$1/
|
||||
</strippart>
|
||||
<protocol>
|
||||
USER anonymous
|
||||
PASS [email protected]
|
||||
PWD
|
||||
EPRT |2|::1|
|
||||
TYPE A
|
||||
LIST
|
||||
QUIT
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,118 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
HTTP
|
||||
HTTP PUT
|
||||
followlocation
|
||||
</keywords>
|
||||
|
||||
</info>
|
||||
# Server-side
|
||||
<reply>
|
||||
<data>
|
||||
HTTP/1.1 301 Redirect swsclose
|
||||
Date: Thu, 29 Jul 2008 14:49:00 GMT
|
||||
Server: test-server/fake
|
||||
Location: data/10510002.txt?coolsite=yes
|
||||
Content-Length: 0
|
||||
Connection: close
|
||||
|
||||
</data>
|
||||
<data2>
|
||||
HTTP/1.1 100 Continue
|
||||
|
||||
HTTP/1.1 200 Followed here fine swsclose
|
||||
Date: Thu, 29 Jul 2008 14:49:00 GMT
|
||||
Server: test-server/fake
|
||||
Content-Length: 51
|
||||
|
||||
If this is received, the location following worked
|
||||
</data2>
|
||||
<datacheck>
|
||||
HTTP/1.1 301 Redirect swsclose
|
||||
Date: Thu, 29 Jul 2008 14:49:00 GMT
|
||||
Server: test-server/fake
|
||||
Location: data/10510002.txt?coolsite=yes
|
||||
Content-Length: 0
|
||||
Connection: close
|
||||
|
||||
HTTP/1.1 100 Continue
|
||||
|
||||
HTTP/1.1 200 Followed here fine swsclose
|
||||
Date: Thu, 29 Jul 2008 14:49:00 GMT
|
||||
Server: test-server/fake
|
||||
Content-Length: 51
|
||||
|
||||
If this is received, the location following worked
|
||||
</datacheck>
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
http
|
||||
</server>
|
||||
<name>
|
||||
HTTP PUT with Location: following
|
||||
</name>
|
||||
<command>
|
||||
http://%HOSTIP:%HTTPPORT/want/1051 -L -T log/test1051.txt
|
||||
</command>
|
||||
<file name="log/test1051.txt">
|
||||
Weird
|
||||
file
|
||||
to
|
||||
upload
|
||||
for
|
||||
testing
|
||||
the
|
||||
PUT
|
||||
feature
|
||||
</file>
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<strip>
|
||||
^User-Agent:.*
|
||||
</strip>
|
||||
|
||||
# The primary reason libcurl sends the data part twice in this test is that
|
||||
# the test HTTP server is blocking until it has read the entire request,
|
||||
# including the full request-body before it responds. So in this test the
|
||||
# server says 301 and 100 _after_ the entire PUT body has been sent.
|
||||
|
||||
<protocol>
|
||||
PUT /want/1051 HTTP/1.1
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
Content-Length: 78
|
||||
Expect: 100-continue
|
||||
|
||||
Weird
|
||||
file
|
||||
to
|
||||
upload
|
||||
for
|
||||
testing
|
||||
the
|
||||
PUT
|
||||
feature
|
||||
PUT /want/data/10510002.txt?coolsite=yes HTTP/1.1
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
Content-Length: 78
|
||||
Expect: 100-continue
|
||||
|
||||
Weird
|
||||
file
|
||||
to
|
||||
upload
|
||||
for
|
||||
testing
|
||||
the
|
||||
PUT
|
||||
feature
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,111 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
HTTP
|
||||
HTTP PUT
|
||||
followlocation
|
||||
</keywords>
|
||||
|
||||
</info>
|
||||
# Server-side
|
||||
<reply>
|
||||
<data>
|
||||
HTTP/1.0 301 Redirect swsclose
|
||||
Date: Thu, 29 Jul 2008 14:49:00 GMT
|
||||
Server: test-server/fake
|
||||
Location: data/10520002.txt?coolsite=yes
|
||||
Content-Length: 0
|
||||
Connection: close
|
||||
|
||||
</data>
|
||||
<data2>
|
||||
HTTP/1.0 200 Followed here fine swsclose
|
||||
Date: Thu, 29 Jul 2008 14:49:00 GMT
|
||||
Server: test-server/fake
|
||||
Content-Length: 51
|
||||
|
||||
If this is received, the location following worked
|
||||
</data2>
|
||||
<datacheck>
|
||||
HTTP/1.0 301 Redirect swsclose
|
||||
Date: Thu, 29 Jul 2008 14:49:00 GMT
|
||||
Server: test-server/fake
|
||||
Location: data/10520002.txt?coolsite=yes
|
||||
Content-Length: 0
|
||||
Connection: close
|
||||
|
||||
HTTP/1.0 200 Followed here fine swsclose
|
||||
Date: Thu, 29 Jul 2008 14:49:00 GMT
|
||||
Server: test-server/fake
|
||||
Content-Length: 51
|
||||
|
||||
If this is received, the location following worked
|
||||
</datacheck>
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
http
|
||||
</server>
|
||||
<name>
|
||||
HTTP 1.0 PUT with Location: following
|
||||
</name>
|
||||
<command>
|
||||
http://%HOSTIP:%HTTPPORT/want/1052 -0 -L -T log/test1052.txt
|
||||
</command>
|
||||
<file name="log/test1052.txt">
|
||||
Weird
|
||||
file
|
||||
to
|
||||
upload
|
||||
for
|
||||
testing
|
||||
the
|
||||
PUT
|
||||
feature
|
||||
</file>
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<strip>
|
||||
^User-Agent:.*
|
||||
</strip>
|
||||
|
||||
# The primary reason libcurl sends the data part twice in this test is that
|
||||
# the test HTTP server is blocking until it has read the entire request,
|
||||
# including the full request-body before it responds. So in this test the
|
||||
# server says 301 and 200 _after_ the entire PUT body has been sent.
|
||||
<protocol>
|
||||
PUT /want/1052 HTTP/1.0
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
Content-Length: 78
|
||||
|
||||
Weird
|
||||
file
|
||||
to
|
||||
upload
|
||||
for
|
||||
testing
|
||||
the
|
||||
PUT
|
||||
feature
|
||||
PUT /want/data/10520002.txt?coolsite=yes HTTP/1.0
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
Content-Length: 78
|
||||
|
||||
Weird
|
||||
file
|
||||
to
|
||||
upload
|
||||
for
|
||||
testing
|
||||
the
|
||||
PUT
|
||||
feature
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,129 @@
|
||||
<testcase>
|
||||
# Based on test 9
|
||||
<info>
|
||||
<keywords>
|
||||
HTTP
|
||||
HTTP FORMPOST
|
||||
HTTP file upload
|
||||
followlocation
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
# Server-side
|
||||
<reply>
|
||||
<data>
|
||||
HTTP/1.1 307 Redirect swsclose
|
||||
Date: Thu, 29 Jul 2008 14:49:00 GMT
|
||||
Server: test-server/fake
|
||||
Location: data/10530002.txt?coolsite=yes
|
||||
Content-Length: 0
|
||||
Connection: close
|
||||
|
||||
</data>
|
||||
<data2>
|
||||
HTTP/1.1 200 OK swsclose
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Server: test-server/fake
|
||||
Content-Length: 11
|
||||
Connection: close
|
||||
|
||||
blablabla
|
||||
|
||||
</data2>
|
||||
<datacheck>
|
||||
HTTP/1.1 307 Redirect swsclose
|
||||
Date: Thu, 29 Jul 2008 14:49:00 GMT
|
||||
Server: test-server/fake
|
||||
Location: data/10530002.txt?coolsite=yes
|
||||
Content-Length: 0
|
||||
Connection: close
|
||||
|
||||
HTTP/1.1 200 OK swsclose
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Server: test-server/fake
|
||||
Content-Length: 11
|
||||
Connection: close
|
||||
|
||||
blablabla
|
||||
|
||||
</datacheck>
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
http
|
||||
</server>
|
||||
<name>
|
||||
HTTP RFC1867-type formposting from file with Location: following
|
||||
</name>
|
||||
<command>
|
||||
http://%HOSTIP:%HTTPPORT/we/want/1053 -L -F name=daniel -F tool=curl -F file=@log/test1053.txt
|
||||
</command>
|
||||
# We create this file before the command is invoked!
|
||||
<file name="log/test1053.txt">
|
||||
foo-
|
||||
This is a moo-
|
||||
bar
|
||||
</file>
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<strip>
|
||||
^(User-Agent:|Content-Type: multipart/form-data;|------------).*
|
||||
</strip>
|
||||
<protocol>
|
||||
POST /we/want/1053 HTTP/1.1
|
||||
User-Agent: curl/7.18.2 (i686-pc-linux-gnu) libcurl/7.18.2 OpenSSL/0.9.7a ipv6 zlib/1.1.4
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
Content-Length: 410
|
||||
Expect: 100-continue
|
||||
Content-Type: multipart/form-data; boundary=----------------------------9ef8d6205763
|
||||
|
||||
------------------------------9ef8d6205763
|
||||
Content-Disposition: form-data; name="name"
|
||||
|
||||
daniel
|
||||
------------------------------9ef8d6205763
|
||||
Content-Disposition: form-data; name="tool"
|
||||
|
||||
curl
|
||||
------------------------------9ef8d6205763
|
||||
Content-Disposition: form-data; name="file"; filename="test1053.txt"
|
||||
Content-Type: text/plain
|
||||
|
||||
foo-
|
||||
This is a moo-
|
||||
bar
|
||||
|
||||
------------------------------9ef8d6205763--
|
||||
POST /we/want/data/10530002.txt?coolsite=yes HTTP/1.1
|
||||
User-Agent: curl/7.18.2 (i686-pc-linux-gnu) libcurl/7.18.2 OpenSSL/0.9.7a ipv6 zlib/1.1.4
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
Content-Length: 410
|
||||
Expect: 100-continue
|
||||
Content-Type: multipart/form-data; boundary=----------------------------9ef8d6205763
|
||||
|
||||
------------------------------9ef8d6205763
|
||||
Content-Disposition: form-data; name="name"
|
||||
|
||||
daniel
|
||||
------------------------------9ef8d6205763
|
||||
Content-Disposition: form-data; name="tool"
|
||||
|
||||
curl
|
||||
------------------------------9ef8d6205763
|
||||
Content-Disposition: form-data; name="file"; filename="test1053.txt"
|
||||
Content-Type: text/plain
|
||||
|
||||
foo-
|
||||
This is a moo-
|
||||
bar
|
||||
|
||||
------------------------------9ef8d6205763--
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,80 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
HTTP
|
||||
HTTP POST
|
||||
followlocation
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
#
|
||||
# Server-side
|
||||
<reply>
|
||||
<data>
|
||||
HTTP/1.1 301 OK swsclose
|
||||
Location: moo/testcase/10540002
|
||||
Date: Thu, 31 Jul 2008 14:49:00 GMT
|
||||
Connection: close
|
||||
|
||||
</data>
|
||||
<data2>
|
||||
HTTP/1.1 200 OK swsclose
|
||||
Date: Thu, 31 Jul 2008 14:49:00 GMT
|
||||
Connection: close
|
||||
|
||||
body
|
||||
</data2>
|
||||
<datacheck>
|
||||
HTTP/1.1 301 OK swsclose
|
||||
Location: moo/testcase/10540002
|
||||
Date: Thu, 31 Jul 2008 14:49:00 GMT
|
||||
Connection: close
|
||||
|
||||
HTTP/1.1 200 OK swsclose
|
||||
Date: Thu, 31 Jul 2008 14:49:00 GMT
|
||||
Connection: close
|
||||
|
||||
body
|
||||
</datacheck>
|
||||
</reply>
|
||||
|
||||
#
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
http
|
||||
</server>
|
||||
<name>
|
||||
HTTP POST from file with 301 redirect and --post301
|
||||
</name>
|
||||
<file name="log/test1054.txt">
|
||||
field=data
|
||||
</file>
|
||||
<command>
|
||||
http://%HOSTIP:%HTTPPORT/blah/1054 -L -d @log/test1054.txt --post301
|
||||
</command>
|
||||
</client>
|
||||
|
||||
#
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<strip>
|
||||
^User-Agent:.*
|
||||
</strip>
|
||||
<protocol nonewline="yes">
|
||||
POST /blah/1054 HTTP/1.1
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
Content-Length: 10
|
||||
Content-Type: application/x-www-form-urlencoded
|
||||
|
||||
field=dataPOST /blah/moo/testcase/10540002 HTTP/1.1
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
Content-Length: 10
|
||||
Content-Type: application/x-www-form-urlencoded
|
||||
|
||||
field=data
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,100 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
HTTP
|
||||
HTTP PUT
|
||||
followlocation
|
||||
FTP
|
||||
EPSV
|
||||
STOR
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
#
|
||||
# Server-side
|
||||
<reply>
|
||||
<data>
|
||||
HTTP/1.1 307 OK
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Server: test-server/fake swsclose
|
||||
Content-Type: text/html
|
||||
Location: ftp://127.0.0.1:8992/1055
|
||||
Content-Length: 0
|
||||
Connection: close
|
||||
|
||||
</data>
|
||||
</reply>
|
||||
|
||||
#
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
http
|
||||
ftp
|
||||
</server>
|
||||
<name>
|
||||
HTTP PUT Location: redirect to FTP URL
|
||||
</name>
|
||||
<command>
|
||||
http://%HOSTIP:%HTTPPORT/1055 -L -T log/test1055.txt
|
||||
</command>
|
||||
# The data section doesn't do variable substitution, so we must assert this
|
||||
<precheck>
|
||||
perl -e "print 'Test requires default test server host and port' if ( '%HOSTIP' ne '127.0.0.1' || '%FTPPORT' ne '8992' );"
|
||||
</precheck>
|
||||
<file name="log/test1055.txt">
|
||||
Weird
|
||||
file
|
||||
to
|
||||
upload
|
||||
for
|
||||
testing
|
||||
the
|
||||
PUT
|
||||
feature
|
||||
</file>
|
||||
</client>
|
||||
|
||||
#
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<strip>
|
||||
^User-Agent:.*
|
||||
</strip>
|
||||
<protocol>
|
||||
PUT /1055 HTTP/1.1
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
Content-Length: 78
|
||||
Expect: 100-continue
|
||||
|
||||
Weird
|
||||
file
|
||||
to
|
||||
upload
|
||||
for
|
||||
testing
|
||||
the
|
||||
PUT
|
||||
feature
|
||||
USER anonymous
|
||||
PASS [email protected]
|
||||
PWD
|
||||
EPSV
|
||||
TYPE I
|
||||
STOR 1055
|
||||
QUIT
|
||||
</protocol>
|
||||
<upload>
|
||||
Weird
|
||||
file
|
||||
to
|
||||
upload
|
||||
for
|
||||
testing
|
||||
the
|
||||
PUT
|
||||
feature
|
||||
</upload>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,81 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
HTTP
|
||||
HTTP GET
|
||||
followlocation
|
||||
IPv6
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
#
|
||||
# Server-side
|
||||
<reply>
|
||||
<data>
|
||||
HTTP/1.1 302 OK swsclose
|
||||
Location: http://[::1%259999]:8994/moo/10560002
|
||||
Date: Thu, 31 Jul 2008 14:49:00 GMT
|
||||
Connection: close
|
||||
|
||||
</data>
|
||||
<data2>
|
||||
HTTP/1.1 200 OK swsclose
|
||||
Date: Thu, 31 Jul 2008 14:49:00 GMT
|
||||
Connection: close
|
||||
|
||||
body
|
||||
</data2>
|
||||
<datacheck>
|
||||
HTTP/1.1 302 OK swsclose
|
||||
Location: http://[::1%259999]:8994/moo/10560002
|
||||
Date: Thu, 31 Jul 2008 14:49:00 GMT
|
||||
Connection: close
|
||||
|
||||
HTTP/1.1 200 OK swsclose
|
||||
Date: Thu, 31 Jul 2008 14:49:00 GMT
|
||||
Connection: close
|
||||
|
||||
body
|
||||
</datacheck>
|
||||
</reply>
|
||||
|
||||
#
|
||||
# Client-side
|
||||
<client>
|
||||
<features>
|
||||
ipv6
|
||||
</features>
|
||||
<server>
|
||||
http
|
||||
http-ipv6
|
||||
</server>
|
||||
<name>
|
||||
HTTP follow redirect from IPv4 to IPv6 with scope
|
||||
</name>
|
||||
<command>
|
||||
http://%HOSTIP:%HTTPPORT/we/are/all/twits/1056 -L
|
||||
</command>
|
||||
# The data section doesn't do variable substitution, so we must assert this
|
||||
<precheck>
|
||||
perl -e "print 'Test requires default test server host and port' if ( '%HOST6IP' ne '[::1]' || '%HTTP6PORT' ne '8994' );"
|
||||
</precheck>
|
||||
</client>
|
||||
|
||||
#
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<strip>
|
||||
^User-Agent:.*
|
||||
</strip>
|
||||
<protocol>
|
||||
GET /we/are/all/twits/1056 HTTP/1.1
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
|
||||
GET /moo/10560002 HTTP/1.1
|
||||
Host: %HOST6IP:%HTTP6PORT
|
||||
Accept: */*
|
||||
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,51 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
FTP
|
||||
EPSV
|
||||
RETR
|
||||
Range
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
# Server-side
|
||||
<reply>
|
||||
<data>
|
||||
456789abcdef
|
||||
</data>
|
||||
<datacheck nonewline="yes">
|
||||
456789abcdef
|
||||
</datacheck>
|
||||
<size>
|
||||
64
|
||||
</size>
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
ftp
|
||||
</server>
|
||||
<name>
|
||||
FTP retrieve a byte-range relative to end of file
|
||||
</name>
|
||||
<command>
|
||||
-r -12 ftp://%HOSTIP:%FTPPORT/1057
|
||||
</command>
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<protocol>
|
||||
USER anonymous
|
||||
PASS [email protected]
|
||||
PWD
|
||||
EPSV
|
||||
TYPE I
|
||||
SIZE 1057
|
||||
REST 52
|
||||
RETR 1057
|
||||
QUIT
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,53 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
HTTP
|
||||
HTTP GET
|
||||
Content-Range
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
# Server-side
|
||||
<reply>
|
||||
<data>
|
||||
HTTP/1.1 206 Partial Content
|
||||
Date: Thu, 31 Jul 2008 13:41:09 GMT
|
||||
Accept-Ranges: bytes
|
||||
Content-Length: 101
|
||||
Content-Range: bytes 100-200/201
|
||||
Connection: close
|
||||
Content-Type: text/html
|
||||
|
||||
..partial data returned from the
|
||||
server as a result of setting an explicit byte range
|
||||
in the request
|
||||
</data>
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
http
|
||||
</server>
|
||||
<name>
|
||||
HTTP range relative to end of file
|
||||
</name>
|
||||
<command>
|
||||
http://%HOSTIP:%HTTPPORT/want/1058 -r -101
|
||||
</command>
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<strip>
|
||||
^User-Agent:.*
|
||||
</strip>
|
||||
<protocol>
|
||||
GET /want/1058 HTTP/1.1
|
||||
Range: bytes=-101
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,58 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
HTTP
|
||||
HTTP CONNECT
|
||||
proxytunnel
|
||||
FTP
|
||||
FAILURE
|
||||
</keywords>
|
||||
|
||||
</info>
|
||||
#
|
||||
# Server-side
|
||||
<reply>
|
||||
<data>
|
||||
HTTP/1.1 501 Method not implemented swsclose
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Connection: close
|
||||
Content-Length: 0
|
||||
|
||||
</data>
|
||||
</reply>
|
||||
|
||||
#
|
||||
# Client-side
|
||||
<client>
|
||||
<features>
|
||||
ftp
|
||||
</features>
|
||||
<server>
|
||||
http
|
||||
</server>
|
||||
<name>
|
||||
HTTP CONNECT with proxytunnel to unsupported FTP URL
|
||||
</name>
|
||||
<command>
|
||||
ftp://test-number:1059/wanted/page -p -x %HOSTIP:%HTTPPORT
|
||||
</command>
|
||||
</client>
|
||||
|
||||
#
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
# The server doesn't implement CONNECT for ftp, so this must be a failure test
|
||||
<errorcode>
|
||||
56
|
||||
</errorcode>
|
||||
<strip>
|
||||
^User-Agent:.*
|
||||
</strip>
|
||||
<protocol>
|
||||
CONNECT test-number:1059 HTTP/1.0
|
||||
Host: test-number:1059
|
||||
Proxy-Connection: Keep-Alive
|
||||
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,51 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
FTP
|
||||
EPSV
|
||||
TYPE A
|
||||
RETR
|
||||
type=
|
||||
</keywords>
|
||||
</info>
|
||||
# Server-side
|
||||
<reply>
|
||||
<data>
|
||||
data
|
||||
to
|
||||
see
|
||||
that FTP
|
||||
works
|
||||
so does it?
|
||||
</data>
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
ftp
|
||||
</server>
|
||||
<name>
|
||||
FTP GET with type=A style ASCII URL using %20 codes
|
||||
</name>
|
||||
<command>
|
||||
"ftp://%HOSTIP:%FTPPORT//path%20with%20%20spaces//and%20things2/106;type=A"
|
||||
</command>
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<protocol>
|
||||
USER anonymous
|
||||
PASS [email protected]
|
||||
PWD
|
||||
CWD /path with spaces
|
||||
CWD and things2
|
||||
EPSV
|
||||
TYPE A
|
||||
SIZE 106
|
||||
RETR 106
|
||||
QUIT
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,47 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
FILE
|
||||
Range
|
||||
FAILURE
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
# Server-side
|
||||
<reply>
|
||||
<data>
|
||||
</data>
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
none
|
||||
</server>
|
||||
<features>
|
||||
file
|
||||
large_file
|
||||
</features>
|
||||
<name>
|
||||
Invalid large X- range on a file://
|
||||
</name>
|
||||
# This range value is 2**32+7, which will be truncated to the valid value 7
|
||||
# if the large file support is not working correctly
|
||||
<command>
|
||||
-r 4294967303- file://localhost/%PWD/log/test1063.txt
|
||||
</command>
|
||||
<file name="log/test1063.txt">
|
||||
1234567890
|
||||
1234567890
|
||||
</file>
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<errorcode>
|
||||
36
|
||||
</errorcode>
|
||||
<stdout>
|
||||
</stdout>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,79 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
HTTP
|
||||
HTTP PUT
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
<reply>
|
||||
<data nocheck="1">
|
||||
HTTP/1.1 200 A OK
|
||||
Server: curl test
|
||||
Content-Type: text/html; charset=iso-8859-1
|
||||
Content-Length: 3
|
||||
|
||||
ok
|
||||
</data>
|
||||
<data2 nocheck="1">
|
||||
HTTP/1.1 200 A OK
|
||||
Server: curl test
|
||||
Content-Type: text/html; charset=iso-8859-1
|
||||
Content-Length: 9
|
||||
|
||||
still ok
|
||||
</data2>
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
#
|
||||
<server>
|
||||
http
|
||||
</server>
|
||||
<name>
|
||||
HTTP PUT twice
|
||||
</name>
|
||||
<command>
|
||||
-H "Expect:" -T log/1064 http://%HOSTIP:%HTTPPORT/1064.upload1 -T log/1064 http://%HOSTIP:%HTTPPORT/10640002.upload2
|
||||
</command>
|
||||
<file name="log/1064">
|
||||
test
|
||||
</file>
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<strip>
|
||||
^User-Agent:.*
|
||||
</strip>
|
||||
<protocol>
|
||||
PUT /1064.upload1 HTTP/1.1
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
Content-Length: 5
|
||||
|
||||
test
|
||||
PUT /10640002.upload2 HTTP/1.1
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
Content-Length: 5
|
||||
|
||||
test
|
||||
</protocol>
|
||||
<stdout>
|
||||
HTTP/1.1 200 A OK
|
||||
Server: curl test
|
||||
Content-Type: text/html; charset=iso-8859-1
|
||||
Content-Length: 3
|
||||
|
||||
ok
|
||||
HTTP/1.1 200 A OK
|
||||
Server: curl test
|
||||
Content-Type: text/html; charset=iso-8859-1
|
||||
Content-Length: 9
|
||||
|
||||
still ok
|
||||
</stdout>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,78 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
HTTP
|
||||
HTTP PUT
|
||||
HTTP GET
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
<reply>
|
||||
<data nocheck="1">
|
||||
HTTP/1.1 200 A OK
|
||||
Server: curl test
|
||||
Content-Type: text/html; charset=iso-8859-1
|
||||
Content-Length: 3
|
||||
|
||||
ok
|
||||
</data>
|
||||
<data2 nocheck="1">
|
||||
HTTP/1.1 200 A OK
|
||||
Server: curl test
|
||||
Content-Type: text/html; charset=iso-8859-1
|
||||
Content-Length: 9
|
||||
|
||||
still ok
|
||||
</data2>
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
#
|
||||
<server>
|
||||
http
|
||||
</server>
|
||||
<name>
|
||||
HTTP PUT with one file but two URLs
|
||||
</name>
|
||||
<command>
|
||||
-H "Expect:" -T log/1065 http://%HOSTIP:%HTTPPORT/1065.upload1 http://%HOSTIP:%HTTPPORT/10650002.url2
|
||||
</command>
|
||||
<file name="log/1065">
|
||||
test
|
||||
</file>
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<strip>
|
||||
^User-Agent:.*
|
||||
</strip>
|
||||
<protocol>
|
||||
PUT /1065.upload1 HTTP/1.1
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
Content-Length: 5
|
||||
|
||||
test
|
||||
GET /10650002.url2 HTTP/1.1
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
|
||||
</protocol>
|
||||
<stdout>
|
||||
HTTP/1.1 200 A OK
|
||||
Server: curl test
|
||||
Content-Type: text/html; charset=iso-8859-1
|
||||
Content-Length: 3
|
||||
|
||||
ok
|
||||
HTTP/1.1 200 A OK
|
||||
Server: curl test
|
||||
Content-Type: text/html; charset=iso-8859-1
|
||||
Content-Length: 9
|
||||
|
||||
still ok
|
||||
</stdout>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,82 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
HTTP
|
||||
HTTP GET
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
# Server-side
|
||||
<reply>
|
||||
<data nocheck="1">
|
||||
HTTP/1.1 200 OK
|
||||
Server: thebest/1.0
|
||||
Content-Type: text/plain
|
||||
Content-Length: 6
|
||||
|
||||
first
|
||||
</data>
|
||||
<data1 nocheck="1">
|
||||
HTTP/1.1 200 OK
|
||||
Server: thebest/1.0
|
||||
Content-Type: text/plain
|
||||
Content-Length: 7
|
||||
|
||||
second
|
||||
</data1>
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
http
|
||||
</server>
|
||||
<name>
|
||||
HTTP --dump-header - with two URLs
|
||||
</name>
|
||||
<command>
|
||||
http://%HOSTIP:%HTTPPORT/want/1066 http://%HOSTIP:%HTTPPORT/want/10660001 --dump-header -
|
||||
</command>
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<strip>
|
||||
^User-Agent:.*
|
||||
</strip>
|
||||
<protocol>
|
||||
GET /want/1066 HTTP/1.1
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
|
||||
GET /want/10660001 HTTP/1.1
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
|
||||
</protocol>
|
||||
<stdout>
|
||||
HTTP/1.1 200 OK
|
||||
HTTP/1.1 200 OK
|
||||
Server: thebest/1.0
|
||||
Server: thebest/1.0
|
||||
Content-Type: text/plain
|
||||
Content-Type: text/plain
|
||||
Content-Length: 6
|
||||
Content-Length: 6
|
||||
|
||||
|
||||
first
|
||||
HTTP/1.1 200 OK
|
||||
HTTP/1.1 200 OK
|
||||
Server: thebest/1.0
|
||||
Server: thebest/1.0
|
||||
Content-Type: text/plain
|
||||
Content-Type: text/plain
|
||||
Content-Length: 7
|
||||
Content-Length: 7
|
||||
|
||||
|
||||
second
|
||||
</stdout>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,78 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
HTTP
|
||||
HTTP GET
|
||||
followlocation
|
||||
</keywords>
|
||||
</info>
|
||||
# Server-side
|
||||
<reply>
|
||||
<data>
|
||||
HTTP/1.1 301 This is a weirdo text message swsclose
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Server: test-server/fake
|
||||
Location: data/10670002.txt?coolsite=yes
|
||||
Connection: close
|
||||
|
||||
This server reply is for testing a simple Location: following
|
||||
|
||||
</data>
|
||||
<data2>
|
||||
HTTP/1.1 200 Followed here fine swsclose
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Server: test-server/fake
|
||||
Content-Length: 52
|
||||
|
||||
If this is received, the location following worked
|
||||
|
||||
</data2>
|
||||
<datacheck>
|
||||
HTTP/1.1 301 This is a weirdo text message swsclose
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Server: test-server/fake
|
||||
Location: data/10670002.txt?coolsite=yes
|
||||
Connection: close
|
||||
|
||||
HTTP/1.1 200 Followed here fine swsclose
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Server: test-server/fake
|
||||
Content-Length: 52
|
||||
|
||||
If this is received, the location following worked
|
||||
|
||||
</datacheck>
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
http
|
||||
</server>
|
||||
<name>
|
||||
HTTP Location: following with auto-referer
|
||||
</name>
|
||||
<command>
|
||||
http://%HOSTIP:%HTTPPORT/want/1067 -L --referer "firstone.html;auto"
|
||||
</command>
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<strip>
|
||||
^User-Agent:.*
|
||||
</strip>
|
||||
<protocol>
|
||||
GET /want/1067 HTTP/1.1
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
Referer: firstone.html
|
||||
|
||||
GET /want/data/10670002.txt?coolsite=yes HTTP/1.1
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
Referer: http://%HOSTIP:%HTTPPORT/want/1067
|
||||
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,57 @@
|
||||
<testcase>
|
||||
# Similar to test 60
|
||||
<info>
|
||||
<keywords>
|
||||
HTTP
|
||||
HTTP PUT
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
# Server-side
|
||||
<reply>
|
||||
<data>
|
||||
HTTP/1.0 200 OK swsclose
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Server: test-server/fake
|
||||
|
||||
blablabla
|
||||
|
||||
</data>
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
http
|
||||
</server>
|
||||
<name>
|
||||
HTTP PUT from stdin
|
||||
</name>
|
||||
<command>
|
||||
http://%HOSTIP:%HTTPPORT/bzz/1068 -T -
|
||||
</command>
|
||||
<stdin>
|
||||
more than one byte
|
||||
</stdin>
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<strip>
|
||||
^User-Agent:.*
|
||||
</strip>
|
||||
<protocol>
|
||||
PUT /bzz/1068 HTTP/1.1
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
Transfer-Encoding: chunked
|
||||
Expect: 100-continue
|
||||
|
||||
13
|
||||
more than one byte
|
||||
|
||||
0
|
||||
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,36 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
HTTP
|
||||
HTTP PUT
|
||||
HTTP/1.0
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
# Server-side
|
||||
<reply>
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
http
|
||||
</server>
|
||||
<name>
|
||||
HTTP 1.0 PUT from stdin with no content length
|
||||
</name>
|
||||
<command>
|
||||
http://%HOSTIP:%HTTPPORT/bzz/1069 -T - -0
|
||||
</command>
|
||||
<stdin>
|
||||
this data can't be sent
|
||||
</stdin>
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<errorcode>
|
||||
25
|
||||
</errorcode>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,51 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
FTP
|
||||
EPSV
|
||||
STOR
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
ftp
|
||||
</server>
|
||||
<name>
|
||||
FTP PASV upload file
|
||||
</name>
|
||||
<file name="log/test107.txt">
|
||||
data
|
||||
to
|
||||
see
|
||||
that FTP
|
||||
works
|
||||
so does it?
|
||||
</file>
|
||||
<command>
|
||||
ftp://%HOSTIP:%FTPPORT/107 -T log/test107.txt
|
||||
</command>
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<upload>
|
||||
data
|
||||
to
|
||||
see
|
||||
that FTP
|
||||
works
|
||||
so does it?
|
||||
</upload>
|
||||
<protocol>
|
||||
USER anonymous
|
||||
PASS [email protected]
|
||||
PWD
|
||||
EPSV
|
||||
TYPE I
|
||||
STOR 107
|
||||
QUIT
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,65 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
HTTP
|
||||
HTTP POST
|
||||
</keywords>
|
||||
</info>
|
||||
#
|
||||
# Server-side
|
||||
<reply>
|
||||
<data>
|
||||
HTTP/1.1 403 Go away and swsclose
|
||||
Server: test-server/fake
|
||||
Content-Type: text/html
|
||||
Content-Length: 55
|
||||
Connection: close
|
||||
|
||||
you are not supposed to be allowed to send things here
|
||||
</data>
|
||||
<servercmd>
|
||||
skip: 2300
|
||||
</servercmd>
|
||||
</reply>
|
||||
|
||||
#
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
http
|
||||
</server>
|
||||
<name>
|
||||
HTTP POST with server closing connection before (all) data is received
|
||||
</name>
|
||||
<command>
|
||||
-d @log/input1070 http://%HOSTIP:%HTTPPORT/1070
|
||||
</command>
|
||||
<file name="log/input1070">
|
||||
This creates the named file with this content before the test case is run,
|
||||
which is useful if the test case needs a file to act on. We create this file
|
||||
rather large (larger than your typical TCP packet) so that not all of it can nor
|
||||
will be sent in one go as that is kind of the point of this test!
|
||||
|
||||
Here's 2000 x 'O':
|
||||
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
|
||||
</file>
|
||||
</client>
|
||||
|
||||
#
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<strip>
|
||||
^User-Agent:.*
|
||||
</strip>
|
||||
<protocol nonewline="yes">
|
||||
POST /1070 HTTP/1.1
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
Content-Length: 2313
|
||||
Content-Type: application/x-www-form-urlencoded
|
||||
Expect: 100-continue
|
||||
|
||||
This creates
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,113 @@
|
||||
<testcase>
|
||||
# Authorization is used to force curl to realize that the server is
|
||||
# speaking HTTP 1.0. The request must be resent with the correct
|
||||
# authorization header, but using HTTP 1.0, not 1.1.
|
||||
<info>
|
||||
<keywords>
|
||||
HTTP
|
||||
HTTP PUT
|
||||
HTTP Digest auth
|
||||
--anyauth
|
||||
HTTP/1.0
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
# Server-side
|
||||
<reply>
|
||||
<data>
|
||||
HTTP/1.0 401 Authorization Required swsclose
|
||||
Server: testcurl
|
||||
WWW-Authenticate: Blackmagic realm="gimme all yer s3cr3ts"
|
||||
WWW-Authenticate: Basic realm="gimme all yer s3cr3ts"
|
||||
WWW-Authenticate: Digest realm="gimme all yer s3cr3ts", nonce="11223344"
|
||||
Content-Type: text/plain
|
||||
Content-Length: 35
|
||||
Connection: close
|
||||
|
||||
Try again on this HTTP 1.0 server!
|
||||
</data>
|
||||
|
||||
# This is supposed to be returned when the server gets a
|
||||
# Authorization: Digest line passed-in from the client
|
||||
<data1000>
|
||||
HTTP/1.0 200 OK swsclose
|
||||
Server: testcurl
|
||||
Content-Type: text/plain
|
||||
Content-Length: 23
|
||||
Connection: close
|
||||
|
||||
This IS the real page!
|
||||
</data1000>
|
||||
|
||||
<datacheck>
|
||||
HTTP/1.0 401 Authorization Required swsclose
|
||||
Server: testcurl
|
||||
WWW-Authenticate: Blackmagic realm="gimme all yer s3cr3ts"
|
||||
WWW-Authenticate: Basic realm="gimme all yer s3cr3ts"
|
||||
WWW-Authenticate: Digest realm="gimme all yer s3cr3ts", nonce="11223344"
|
||||
Content-Type: text/plain
|
||||
Content-Length: 35
|
||||
Connection: close
|
||||
|
||||
HTTP/1.0 200 OK swsclose
|
||||
Server: testcurl
|
||||
Content-Type: text/plain
|
||||
Content-Length: 23
|
||||
Connection: close
|
||||
|
||||
This IS the real page!
|
||||
</datacheck>
|
||||
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
http
|
||||
</server>
|
||||
<features>
|
||||
crypto
|
||||
</features>
|
||||
<name>
|
||||
Downgraded HTTP PUT to HTTP 1.0 with authorization
|
||||
</name>
|
||||
<command>
|
||||
http://%HOSTIP:%HTTPPORT/1071 -T log/put1071 -u testuser:testpass --anyauth
|
||||
</command>
|
||||
<file name="log/put1071">
|
||||
This is data we upload with PUT
|
||||
a second line
|
||||
line three
|
||||
four is the number of lines
|
||||
</file>
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<strip>
|
||||
^User-Agent:.*
|
||||
</strip>
|
||||
<protocol>
|
||||
PUT /1071 HTTP/1.1
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
Content-Length: 85
|
||||
Expect: 100-continue
|
||||
|
||||
This is data we upload with PUT
|
||||
a second line
|
||||
line three
|
||||
four is the number of lines
|
||||
PUT /1071 HTTP/1.0
|
||||
Authorization: Digest username="testuser", realm="gimme all yer s3cr3ts", nonce="11223344", uri="/1071", response="df4cef6b52a30e65d472dd848d2055a1"
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
Content-Length: 85
|
||||
|
||||
This is data we upload with PUT
|
||||
a second line
|
||||
line three
|
||||
four is the number of lines
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,78 @@
|
||||
<testcase>
|
||||
# Authorization is used to force curl to realize that the server is
|
||||
# speaking HTTP 1.0. The request is impossible to satisfy with HTTP 1.0
|
||||
# because chunked encoding is unavailable, so the request must fail.
|
||||
<info>
|
||||
<keywords>
|
||||
HTTP
|
||||
HTTP PUT
|
||||
HTTP Digest auth
|
||||
--anyauth
|
||||
HTTP/1.0
|
||||
chunked Transfer-Encoding
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
# Server-side
|
||||
<reply>
|
||||
<data>
|
||||
HTTP/1.0 401 Authorization Required swsclose
|
||||
Server: testcurl
|
||||
WWW-Authenticate: Blackmagic realm="gimme all yer s3cr3ts"
|
||||
WWW-Authenticate: Basic realm="gimme all yer s3cr3ts"
|
||||
WWW-Authenticate: Digest realm="gimme all yer s3cr3ts", nonce="11223344"
|
||||
Content-Type: text/plain
|
||||
Content-Length: 0
|
||||
Connection: close
|
||||
|
||||
</data>
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
http
|
||||
</server>
|
||||
<features>
|
||||
crypto
|
||||
</features>
|
||||
<name>
|
||||
HTTP chunked PUT to HTTP 1.0 server with authorization
|
||||
</name>
|
||||
<command>
|
||||
http://%HOSTIP:%HTTPPORT/1072 -T - -u testuser:testpass --anyauth
|
||||
</command>
|
||||
<stdin>
|
||||
This is data we upload with PUT
|
||||
it comes from stdin so MUST be sent
|
||||
with chunked encoding
|
||||
which is impossible in HTTP/1.0
|
||||
</stdin>
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<errorcode>
|
||||
25
|
||||
</errorcode>
|
||||
<strip>
|
||||
^User-Agent:.*
|
||||
</strip>
|
||||
<protocol>
|
||||
PUT /1072 HTTP/1.1
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
Transfer-Encoding: chunked
|
||||
Expect: 100-continue
|
||||
|
||||
7a
|
||||
This is data we upload with PUT
|
||||
it comes from stdin so MUST be sent
|
||||
with chunked encoding
|
||||
which is impossible in HTTP/1.0
|
||||
|
||||
0
|
||||
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,72 @@
|
||||
<testcase>
|
||||
# Redirection is used to force curl to realize that the server is
|
||||
# speaking HTTP 1.0. The request is impossible to satisfy with HTTP 1.0
|
||||
# because chunked encoding is unavailable, so the request must fail.
|
||||
<info>
|
||||
<keywords>
|
||||
HTTP
|
||||
HTTP PUT
|
||||
HTTP/1.0
|
||||
followlocation
|
||||
chunked Transfer-Encoding
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
# Server-side
|
||||
<reply>
|
||||
<data>
|
||||
HTTP/1.0 301 Authorization Required swsclose
|
||||
Server: testcurl
|
||||
Content-Type: text/plain
|
||||
Location: /newlocation/10730002
|
||||
Content-Length: 0
|
||||
Connection: close
|
||||
|
||||
</data>
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
http
|
||||
</server>
|
||||
<name>
|
||||
HTTP chunked PUT to HTTP 1.0 server with redirect
|
||||
</name>
|
||||
<command>
|
||||
http://%HOSTIP:%HTTPPORT/1073 -T - -L
|
||||
</command>
|
||||
<stdin>
|
||||
This is data we upload with PUT
|
||||
it comes from stdin so MUST be sent
|
||||
with chunked encoding
|
||||
which is impossible in HTTP/1.0
|
||||
</stdin>
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<errorcode>
|
||||
25
|
||||
</errorcode>
|
||||
<strip>
|
||||
^User-Agent:.*
|
||||
</strip>
|
||||
<protocol>
|
||||
PUT /1073 HTTP/1.1
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
Transfer-Encoding: chunked
|
||||
Expect: 100-continue
|
||||
|
||||
7a
|
||||
This is data we upload with PUT
|
||||
it comes from stdin so MUST be sent
|
||||
with chunked encoding
|
||||
which is impossible in HTTP/1.0
|
||||
|
||||
0
|
||||
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,76 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
HTTP
|
||||
HTTP GET
|
||||
HTTP/1.0
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
# Server-side
|
||||
<reply>
|
||||
<data nocheck="true">
|
||||
HTTP/1.0 200 OK
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Content-Length: 9
|
||||
Connection: Keep-Alive
|
||||
|
||||
surprise
|
||||
</data>
|
||||
<data1>
|
||||
HTTP/1.0 200 OK swsclose
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Connection: close
|
||||
|
||||
surprise2
|
||||
</data1>
|
||||
|
||||
<postcmd>
|
||||
wait 1
|
||||
</postcmd>
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
http
|
||||
</server>
|
||||
<name>
|
||||
HTTP downgrade to HTTP/1.0 on second request
|
||||
</name>
|
||||
<command>
|
||||
http://%HOSTIP:%HTTPPORT/want/1074 http://%HOSTIP:%HTTPPORT/wantmore/10740001
|
||||
</command>
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<stdout>
|
||||
HTTP/1.0 200 OK
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Content-Length: 9
|
||||
Connection: Keep-Alive
|
||||
|
||||
surprise
|
||||
HTTP/1.0 200 OK swsclose
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Connection: close
|
||||
|
||||
surprise2
|
||||
</stdout>
|
||||
|
||||
<strip>
|
||||
^User-Agent:.*
|
||||
</strip>
|
||||
<protocol>
|
||||
GET /want/1074 HTTP/1.1
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
|
||||
GET /wantmore/10740001 HTTP/1.0
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,94 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
HTTP
|
||||
HTTP PUT
|
||||
HTTP Basic auth
|
||||
--anyauth
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
# Server-side
|
||||
<reply>
|
||||
# The test server provides no way to respond differently to a subsequent
|
||||
# Basic authenticated request (we really want to respond with 200 for
|
||||
# the second), so just respond with 401 for both and let curl deal with it.
|
||||
<data>
|
||||
HTTP/1.1 401 Authorization Required
|
||||
Server: testcurl
|
||||
WWW-Authenticate: Blackmagic realm="gimme all yer s3cr3ts"
|
||||
WWW-Authenticate: Basic realm="gimme all yer s3cr3ts"
|
||||
WWW-Authenticate: X-bogus-auth realm="gimme all yer s3cr3ts"
|
||||
Content-Type: text/plain
|
||||
Content-Length: 0
|
||||
|
||||
</data>
|
||||
<datacheck>
|
||||
HTTP/1.1 401 Authorization Required
|
||||
Server: testcurl
|
||||
WWW-Authenticate: Blackmagic realm="gimme all yer s3cr3ts"
|
||||
WWW-Authenticate: Basic realm="gimme all yer s3cr3ts"
|
||||
WWW-Authenticate: X-bogus-auth realm="gimme all yer s3cr3ts"
|
||||
Content-Type: text/plain
|
||||
Content-Length: 0
|
||||
|
||||
HTTP/1.1 401 Authorization Required
|
||||
Server: testcurl
|
||||
WWW-Authenticate: Blackmagic realm="gimme all yer s3cr3ts"
|
||||
WWW-Authenticate: Basic realm="gimme all yer s3cr3ts"
|
||||
WWW-Authenticate: X-bogus-auth realm="gimme all yer s3cr3ts"
|
||||
Content-Type: text/plain
|
||||
Content-Length: 0
|
||||
|
||||
</datacheck>
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
http
|
||||
</server>
|
||||
<name>
|
||||
HTTP PUT with --anyauth authorization (picking Basic)
|
||||
</name>
|
||||
<command>
|
||||
http://%HOSTIP:%HTTPPORT/1075 -T log/put1075 -u testuser:testpass --anyauth
|
||||
</command>
|
||||
<file name="log/put1075">
|
||||
This is data we upload with PUT
|
||||
a second line
|
||||
line three
|
||||
four is the number of lines
|
||||
</file>
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<strip>
|
||||
^User-Agent:.*
|
||||
</strip>
|
||||
<protocol>
|
||||
PUT /1075 HTTP/1.1
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
Content-Length: 85
|
||||
Expect: 100-continue
|
||||
|
||||
This is data we upload with PUT
|
||||
a second line
|
||||
line three
|
||||
four is the number of lines
|
||||
PUT /1075 HTTP/1.1
|
||||
Authorization: Basic dGVzdHVzZXI6dGVzdHBhc3M=
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
Content-Length: 85
|
||||
Expect: 100-continue
|
||||
|
||||
This is data we upload with PUT
|
||||
a second line
|
||||
line three
|
||||
four is the number of lines
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,79 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
HTTP
|
||||
HTTP POST
|
||||
followlocation
|
||||
</keywords>
|
||||
</info>
|
||||
#
|
||||
# Server-side
|
||||
<reply>
|
||||
<data>
|
||||
HTTP/1.1 302 OK swsclose
|
||||
Location: moo.html&testcase=/10760002
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Connection: close
|
||||
|
||||
</data>
|
||||
<data2>
|
||||
HTTP/1.1 200 OK swsclose
|
||||
Location: this should be ignored
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Connection: close
|
||||
|
||||
body
|
||||
</data2>
|
||||
<datacheck>
|
||||
HTTP/1.1 302 OK swsclose
|
||||
Location: moo.html&testcase=/10760002
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Connection: close
|
||||
|
||||
HTTP/1.1 200 OK swsclose
|
||||
Location: this should be ignored
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Connection: close
|
||||
|
||||
body
|
||||
</datacheck>
|
||||
</reply>
|
||||
|
||||
#
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
http
|
||||
</server>
|
||||
<name>
|
||||
HTTP POST with 302 redirect and --post302
|
||||
</name>
|
||||
<command>
|
||||
http://%HOSTIP:%HTTPPORT/blah/1076 -L -d "moo" --post302
|
||||
</command>
|
||||
</client>
|
||||
|
||||
#
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<strip>
|
||||
^User-Agent:.*
|
||||
</strip>
|
||||
<protocol nonewline="yes">
|
||||
POST /blah/1076 HTTP/1.1
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
Content-Length: 3
|
||||
Content-Type: application/x-www-form-urlencoded
|
||||
|
||||
mooPOST /blah/moo.html&testcase=/10760002 HTTP/1.1
|
||||
User-Agent: curl/7.10 (i686-pc-linux-gnu) libcurl/7.10 OpenSSL/0.9.6c ipv6 zlib/1.1.3
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
Content-Length: 3
|
||||
Content-Type: application/x-www-form-urlencoded
|
||||
|
||||
moo
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,77 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
FTP
|
||||
HTTP
|
||||
HTTP/1.0
|
||||
HTTP GET
|
||||
HTTP proxy
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
#
|
||||
# Server-side
|
||||
<reply>
|
||||
<data>
|
||||
HTTP/1.0 200 OK
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Server: test-server/fake
|
||||
Content-Type: text/plain
|
||||
Content-Length: 9
|
||||
Funny-head: yesyes
|
||||
Proxy-Connection: Keep-Alive
|
||||
|
||||
contents
|
||||
</data>
|
||||
<data2>
|
||||
HTTP/1.0 200 OK
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Server: test-server/fake
|
||||
Content-Type: text/plain
|
||||
Content-Length: 9
|
||||
Funny-head: yesyes
|
||||
Proxy-Connection: Keep-Alive
|
||||
|
||||
contents
|
||||
</data2>
|
||||
</reply>
|
||||
|
||||
#
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
http
|
||||
</server>
|
||||
<features>
|
||||
ftp
|
||||
</features>
|
||||
<name>
|
||||
FTP over HTTP proxy with downgrade to HTTP 1.0
|
||||
</name>
|
||||
<command>
|
||||
-x %HOSTIP:%HTTPPORT ftp://%HOSTIP:%HTTPPORT/we/want/that/page/1077 ftp://%HOSTIP:%HTTPPORT/we/want/that/page/10770002
|
||||
</command>
|
||||
</client>
|
||||
|
||||
#
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<strip>
|
||||
^User-Agent:.*
|
||||
</strip>
|
||||
<protocol>
|
||||
GET ftp://%HOSTIP:%HTTPPORT/we/want/that/page/1077 HTTP/1.1
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Pragma: no-cache
|
||||
Accept: */*
|
||||
Proxy-Connection: Keep-Alive
|
||||
|
||||
GET ftp://%HOSTIP:%HTTPPORT/we/want/that/page/10770002 HTTP/1.0
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Pragma: no-cache
|
||||
Accept: */*
|
||||
Proxy-Connection: Keep-Alive
|
||||
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,86 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
HTTP
|
||||
HTTP/1.0
|
||||
HTTP GET
|
||||
HTTP CONNECT
|
||||
HTTP proxy
|
||||
proxytunnel
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
#
|
||||
# Server-side
|
||||
<reply>
|
||||
<data nocheck="1">
|
||||
HTTP/1.0 200 OK
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Server: test-server/fake
|
||||
Content-Type: text/html
|
||||
Funny-head: yesyes
|
||||
Content-Length: 9
|
||||
Connection: keep-alive
|
||||
|
||||
contents
|
||||
</data>
|
||||
</reply>
|
||||
|
||||
#
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
http
|
||||
</server>
|
||||
<name>
|
||||
HTTP CONNECT with proxytunnel and downgrade to HTTP/1.0
|
||||
</name>
|
||||
<command>
|
||||
-x %HOSTIP:%HTTPPORT -p http://%HOSTIP:%HTTPPORT/we/want/that/page/1078 http://%HOSTIP:%HTTPPORT/we/want/that/page/1078
|
||||
</command>
|
||||
</client>
|
||||
|
||||
#
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<strip>
|
||||
^User-Agent:.*
|
||||
</strip>
|
||||
<protocol>
|
||||
CONNECT %HOSTIP:%HTTPPORT HTTP/1.0
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Proxy-Connection: Keep-Alive
|
||||
|
||||
GET /we/want/that/page/1078 HTTP/1.1
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
|
||||
GET /we/want/that/page/1078 HTTP/1.0
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
|
||||
</protocol>
|
||||
<stdout>
|
||||
HTTP/1.1 200 Mighty fine indeed
|
||||
|
||||
HTTP/1.0 200 OK
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Server: test-server/fake
|
||||
Content-Type: text/html
|
||||
Funny-head: yesyes
|
||||
Content-Length: 9
|
||||
Connection: keep-alive
|
||||
|
||||
contents
|
||||
HTTP/1.0 200 OK
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Server: test-server/fake
|
||||
Content-Type: text/html
|
||||
Funny-head: yesyes
|
||||
Content-Length: 9
|
||||
Connection: keep-alive
|
||||
|
||||
contents
|
||||
</stdout>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,75 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
HTTP
|
||||
HTTP GET
|
||||
HTTP Digest auth
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
# Server-side
|
||||
<reply>
|
||||
<data>
|
||||
HTTP/1.1 401 Authorization Required swsclose
|
||||
Server: Apache/1.3.27 (Darwin) PHP/4.1.2
|
||||
WWW-Authenticate: Digest realm="testrealm", nonce="1053604145"
|
||||
Content-Type: text/plain; charset=iso-8859-1
|
||||
Content-Length: 26
|
||||
|
||||
This is not the real page
|
||||
</data>
|
||||
|
||||
# This is supposed to be returned when the server gets a
|
||||
# Authorization: Digest line passed-in from the client
|
||||
# Send nothing to force an error code 52 reply
|
||||
<data1000>
|
||||
</data1000>
|
||||
|
||||
<datacheck>
|
||||
HTTP/1.1 401 Authorization Required swsclose
|
||||
Server: Apache/1.3.27 (Darwin) PHP/4.1.2
|
||||
WWW-Authenticate: Digest realm="testrealm", nonce="1053604145"
|
||||
Content-Type: text/plain; charset=iso-8859-1
|
||||
Content-Length: 26
|
||||
|
||||
</datacheck>
|
||||
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
http
|
||||
</server>
|
||||
<features>
|
||||
crypto
|
||||
</features>
|
||||
<name>
|
||||
HTTP retry after closed connection and empty response
|
||||
</name>
|
||||
<command>
|
||||
http://%HOSTIP:%HTTPPORT/1079 -u testuser:testpass --digest
|
||||
</command>
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<errorcode>
|
||||
52
|
||||
</errorcode>
|
||||
<strip>
|
||||
^User-Agent:.*
|
||||
</strip>
|
||||
<protocol>
|
||||
GET /1079 HTTP/1.1
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
|
||||
GET /1079 HTTP/1.1
|
||||
Authorization: Digest username="testuser", realm="testrealm", nonce="1053604145", uri="/1079", response="e340c7cdca0950462070f46ee139e9f7"
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,56 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
FTP
|
||||
PORT
|
||||
STOR
|
||||
</keywords>
|
||||
</info>
|
||||
# Server-side
|
||||
<reply>
|
||||
<data>
|
||||
</data>
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
ftp
|
||||
</server>
|
||||
<name>
|
||||
FTP PORT upload with CWD
|
||||
</name>
|
||||
<command>
|
||||
ftp://%HOSTIP:%FTPPORT/CWD/STOR/RETR/108 -T log/upload108 -P -
|
||||
</command>
|
||||
<file name="log/upload108">
|
||||
Moooooooooooo
|
||||
upload this
|
||||
</file>
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
# Strip all valid kinds of PORT and EPRT that curl can send
|
||||
<strip>
|
||||
^PORT \d{1,3},\d{1,3},\d{1,3},\d{1,3},\d{1,3},\d{1,3}
|
||||
^EPRT \|1\|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\|\d{1,5}\|
|
||||
</strip>
|
||||
<protocol>
|
||||
USER anonymous
|
||||
PASS [email protected]
|
||||
PWD
|
||||
CWD CWD
|
||||
CWD STOR
|
||||
CWD RETR
|
||||
PORT 127,0,0,1,5,109
|
||||
TYPE I
|
||||
STOR 108
|
||||
QUIT
|
||||
</protocol>
|
||||
<upload>
|
||||
Moooooooooooo
|
||||
upload this
|
||||
</upload>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,69 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
HTTP
|
||||
HTTP GET
|
||||
redirect_url
|
||||
followlocation
|
||||
--write-out
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
# Server-side
|
||||
<reply>
|
||||
<data nocheck="1">
|
||||
HTTP/1.1 301 This is a weirdo text message swsclose
|
||||
Location: data/10800002.txt?coolsite=yes
|
||||
Content-Length: 62
|
||||
Connection: close
|
||||
|
||||
This server reply is for testing a simple Location: following
|
||||
</data>
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
http
|
||||
</server>
|
||||
<name>
|
||||
HTTP Location: on two URLs 'redirect_url' check
|
||||
</name>
|
||||
<command>
|
||||
http://%HOSTIP:%HTTPPORT/we/want/our/1080 http://%HOSTIP:%HTTPPORT/we/want/our/1080 -w '%{redirect_url}\n'
|
||||
</command>
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<strip>
|
||||
^User-Agent:.*
|
||||
</strip>
|
||||
<protocol>
|
||||
GET /we/want/our/1080 HTTP/1.1
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
|
||||
GET /we/want/our/1080 HTTP/1.1
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
|
||||
</protocol>
|
||||
<stdout mode="text">
|
||||
HTTP/1.1 301 This is a weirdo text message swsclose
|
||||
Location: data/10800002.txt?coolsite=yes
|
||||
Content-Length: 62
|
||||
Connection: close
|
||||
|
||||
This server reply is for testing a simple Location: following
|
||||
http://%HOSTIP:%HTTPPORT/we/want/our/data/10800002.txt?coolsite=yes
|
||||
HTTP/1.1 301 This is a weirdo text message swsclose
|
||||
Location: data/10800002.txt?coolsite=yes
|
||||
Content-Length: 62
|
||||
Connection: close
|
||||
|
||||
This server reply is for testing a simple Location: following
|
||||
http://%HOSTIP:%HTTPPORT/we/want/our/data/10800002.txt?coolsite=yes
|
||||
</stdout>
|
||||
</verify>
|
||||
</testcase>
|
||||
@@ -0,0 +1,77 @@
|
||||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
HTTP
|
||||
HTTP GET
|
||||
redirect_url
|
||||
followlocation
|
||||
--write-out
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
# Server-side
|
||||
<reply>
|
||||
<data nocheck="1">
|
||||
HTTP/1.1 301 This is a weirdo text message swsclose
|
||||
Location: data/10810099.txt?coolsite=yes
|
||||
Content-Length: 62
|
||||
Connection: close
|
||||
|
||||
This server reply is for testing a simple Location: following
|
||||
</data>
|
||||
<data2 nocheck="1">
|
||||
HTTP/1.1 200 Followed here fine swsclose
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Server: test-server/fake
|
||||
Content-Length: 41
|
||||
|
||||
This second URL does not have a location
|
||||
</data2>
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
http
|
||||
</server>
|
||||
<name>
|
||||
HTTP no Location: on second URL 'redirect_url' check
|
||||
</name>
|
||||
<command>
|
||||
http://%HOSTIP:%HTTPPORT/we/want/our/1081 http://%HOSTIP:%HTTPPORT/we/want/our/10810002 -w '%{redirect_url}\n'
|
||||
</command>
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<strip>
|
||||
^User-Agent:.*
|
||||
</strip>
|
||||
<protocol>
|
||||
GET /we/want/our/1081 HTTP/1.1
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
|
||||
GET /we/want/our/10810002 HTTP/1.1
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
|
||||
</protocol>
|
||||
<stdout mode="text">
|
||||
HTTP/1.1 301 This is a weirdo text message swsclose
|
||||
Location: data/10810099.txt?coolsite=yes
|
||||
Content-Length: 62
|
||||
Connection: close
|
||||
|
||||
This server reply is for testing a simple Location: following
|
||||
http://%HOSTIP:%HTTPPORT/we/want/our/data/10810099.txt?coolsite=yes
|
||||
HTTP/1.1 200 Followed here fine swsclose
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Server: test-server/fake
|
||||
Content-Length: 41
|
||||
|
||||
This second URL does not have a location
|
||||
|
||||
</stdout>
|
||||
</verify>
|
||||
</testcase>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user