hello world

This commit is contained in:
Timothee 'TTimo' Besset
2011-11-22 15:28:15 -06:00
commit fb1609f554
2155 changed files with 1017022 additions and 0 deletions

158
neo/curl/tests/FILEFORMAT Normal file
View File

@@ -0,0 +1,158 @@
The file format of the test suite is a very simple and extendable format. All
data for a single test case resides in a single ASCII file. Labels mark the
beginning and the end of all sections. Each label must be written in its own
line and is resembling XML/HTML.
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.
<reply>
<data [nocheck=1]>
data to sent to the client on its request and later verified that it arrived
safely. Set the nocheck=1 to prevent the test script to verify 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 persistant.
</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
</dateNUM>
<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>
<cmd>
special purpose server-command to control its behavior *before* the
reply is sent
</cmd>
<postcmd>
special purpose server-command to control its behavior *after* the
reply is sent
</postcmd>
</reply>
<client>
<server>
protocols as in 'http' 'ftp' etc. Give only one per line. Used for test cases
500+ (at this point) to specify which servers the test case requires. In the
future all test cases should use this. Makes us independent of the test
case number.
</server>
<features>
A list of features that must be present in the client/library for this test
to be able to run. Features testable here are:
SSL
netrc_debug
large_file
</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>
<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 clear again after the command has been run.
</setenv>
<command [option=no-output]>
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 client/stdout section is used.
Available substitute variables include:
%HOSTIP - IP address of the host running this test
%HOSTPORT - Port number of the HTTP server
%HTTPSPORT - Port number of the HTTPS server
%FTPPORT - Port number of the FTP server
%FTPSPORT - Port number of the FTPS server
%SRCDIR - Full path to the source dir
%PWD - Current directory
</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.
</file>
<stdin>
Pass this given data on stdin to the tool.
</stdin>
</client>
<verify>
<errorcode>
numerical error code curl is supposed to return
</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 dynamicly
changing protocol data such as port numbers or user-agent strings.
</strip>
<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
</protocol>
<stdout>
This verfies that this data was passed to stdout.
</stdout>
<file name="log/filename">
the file's contents must be identical to this
</file>
<upload>
the contents of the upload data curl should have sent
</upload>
</verify>

View File

@@ -0,0 +1,46 @@
#***************************************************************************
# _ _ ____ _
# Project ___| | | | _ \| |
# / __| | | | |_) | |
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
# Copyright (C) 1998 - 2004, Daniel Stenberg, <daniel@haxx.se>, 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.30 2004/02/12 14:43:13 bagder Exp $
###########################################################################
EXTRA_DIST = ftpserver.pl httpserver.pl httpsserver.pl runtests.pl \
ftpsserver.pl getpart.pm FILEFORMAT README \
stunnel.pem memanalyze.pl
SUBDIRS = data server libtest
PERLFLAGS = -I$(srcdir)
CLEANFILES = .http.pid .https.pid .ftp.pid .ftps.pid
curl:
@cd $(top_builddir) && $(MAKE)
test: sws
srcdir=$(srcdir) $(PERL) $(PERLFLAGS) $(srcdir)/runtests.pl
quiet-test: sws
srcdir=$(srcdir) $(PERL) $(PERLFLAGS) $(srcdir)/runtests.pl -s -a
full-test: sws
srcdir=$(srcdir) $(PERL) $(PERLFLAGS) $(srcdir)/runtests.pl -a
sws:
@cd server && $(MAKE)

536
neo/curl/tests/Makefile.in Normal file
View File

@@ -0,0 +1,536 @@
# Makefile.in generated by automake 1.8.3 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004 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 = :
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)/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
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@
CABUNDLE_FALSE = @CABUNDLE_FALSE@
CABUNDLE_TRUE = @CABUNDLE_TRUE@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
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_GOPHER = @CURL_DISABLE_GOPHER@
CURL_DISABLE_HTTP = @CURL_DISABLE_HTTP@
CURL_DISABLE_LDAP = @CURL_DISABLE_LDAP@
CURL_DISABLE_TELNET = @CURL_DISABLE_TELNET@
CXX = @CXX@
CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
F77 = @F77@
FFLAGS = @FFLAGS@
HAVE_ARES = @HAVE_ARES@
HAVE_LIBZ = @HAVE_LIBZ@
HAVE_LIBZ_FALSE = @HAVE_LIBZ_FALSE@
HAVE_LIBZ_TRUE = @HAVE_LIBZ_TRUE@
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@
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@
NO_UNDEFINED_FALSE = @NO_UNDEFINED_FALSE@
NO_UNDEFINED_TRUE = @NO_UNDEFINED_TRUE@
NROFF = @NROFF@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
OPENSSL_ENABLED = @OPENSSL_ENABLED@
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@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
USE_MANUAL_FALSE = @USE_MANUAL_FALSE@
USE_MANUAL_TRUE = @USE_MANUAL_TRUE@
VERSION = @VERSION@
VERSIONNUM = @VERSIONNUM@
YACC = @YACC@
ac_ct_AR = @ac_ct_AR@
ac_ct_AS = @ac_ct_AS@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_DLLTOOL = @ac_ct_DLLTOOL@
ac_ct_F77 = @ac_ct_F77@
ac_ct_OBJDUMP = @ac_ct_OBJDUMP@
ac_ct_RANLIB = @ac_ct_RANLIB@
ac_ct_STRIP = @ac_ct_STRIP@
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
datadir = @datadir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
subdirs = @subdirs@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
#***************************************************************************
# _ _ ____ _
# Project ___| | | | _ \| |
# / __| | | | |_) | |
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
# Copyright (C) 1998 - 2004, Daniel Stenberg, <daniel@haxx.se>, 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.30 2004/02/12 14:43:13 bagder Exp $
###########################################################################
EXTRA_DIST = ftpserver.pl httpserver.pl httpsserver.pl runtests.pl \
ftpsserver.pl getpart.pm FILEFORMAT README \
stunnel.pem memanalyze.pl
SUBDIRS = data server libtest
PERLFLAGS = -I$(srcdir)
CLEANFILES = .http.pid .https.pid .ftp.pid .ftps.pid
all: all-recursive
.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/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):
@set fnord $$MAKEFLAGS; amf=$$2; \
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) \
|| case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
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:
@set fnord $$MAKEFLAGS; amf=$$2; \
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) \
|| case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
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; \
else \
include_option=--include; \
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; }'`; \
test -z "$(ETAGS_ARGS)$$tags$$unique" \
|| $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$tags $$unique
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='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test -d "$(distdir)/$$subdir" \
|| mkdir "$(distdir)/$$subdir" \
|| exit 1; \
(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:
-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: sws
srcdir=$(srcdir) $(PERL) $(PERLFLAGS) $(srcdir)/runtests.pl
quiet-test: sws
srcdir=$(srcdir) $(PERL) $(PERLFLAGS) $(srcdir)/runtests.pl -s -a
full-test: sws
srcdir=$(srcdir) $(PERL) $(PERLFLAGS) $(srcdir)/runtests.pl -a
sws:
@cd server && $(MAKE)
# 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:

88
neo/curl/tests/README Normal file
View File

@@ -0,0 +1,88 @@
_ _ ____ _
___| | | | _ \| |
/ __| | | | |_) | |
| (__| |_| | _ <| |___
\___|\___/|_| \_\_____|
The cURL Test Suite
Requires:
perl (and a unix-style shell)
diff (when a test fail, a diff is shown)
stunnel (for HTTPS and FTPS tests)
TCP ports used:
- 8999 on localhost for HTTP tests
- 8433 on localhost for HTTPS tests
- 8921 on localhost for FTP tests
- 8821 on localhost for FTPS tests (currently disabled)
The test suite runs simple FTP and HTTP servers on these ports to which
it makes requests.
Run:
'make test'. This invokes the 'runtests.pl' perl script. Edit the top
variables of that script in case you have some specific needs.
The script breaks on the first test that doesn't do OK. Use -a to prevent
the script to 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.
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.
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.
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/ subdirctory (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/ subdirctory. Each test is stored in the
file named according to the test number.
See FILEFORMAT for the description of the test case files.
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
Since 30-apr-2003, there's nothing in the system that requires us to keep
within these number series. Each test case now specifies its own server
requirements, independent of test number.
TODO:
* Add tests for TELNET, GOPHER, LDAP, DICT...

View File

@@ -0,0 +1,30 @@
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 test509 \
test510 test97 test98 test99
# The following tests have been removed from the dist since they no longer
# work. We need to fix the test suite's FTPS server first, then bring them
# back: test400 test401 test402 test403

View File

@@ -0,0 +1,380 @@
# Makefile.in generated by automake 1.8.3 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004 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 = :
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)/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
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@
CABUNDLE_FALSE = @CABUNDLE_FALSE@
CABUNDLE_TRUE = @CABUNDLE_TRUE@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
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_GOPHER = @CURL_DISABLE_GOPHER@
CURL_DISABLE_HTTP = @CURL_DISABLE_HTTP@
CURL_DISABLE_LDAP = @CURL_DISABLE_LDAP@
CURL_DISABLE_TELNET = @CURL_DISABLE_TELNET@
CXX = @CXX@
CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
F77 = @F77@
FFLAGS = @FFLAGS@
HAVE_ARES = @HAVE_ARES@
HAVE_LIBZ = @HAVE_LIBZ@
HAVE_LIBZ_FALSE = @HAVE_LIBZ_FALSE@
HAVE_LIBZ_TRUE = @HAVE_LIBZ_TRUE@
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@
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@
NO_UNDEFINED_FALSE = @NO_UNDEFINED_FALSE@
NO_UNDEFINED_TRUE = @NO_UNDEFINED_TRUE@
NROFF = @NROFF@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
OPENSSL_ENABLED = @OPENSSL_ENABLED@
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@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
USE_MANUAL_FALSE = @USE_MANUAL_FALSE@
USE_MANUAL_TRUE = @USE_MANUAL_TRUE@
VERSION = @VERSION@
VERSIONNUM = @VERSIONNUM@
YACC = @YACC@
ac_ct_AR = @ac_ct_AR@
ac_ct_AS = @ac_ct_AS@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_DLLTOOL = @ac_ct_DLLTOOL@
ac_ct_F77 = @ac_ct_F77@
ac_ct_OBJDUMP = @ac_ct_OBJDUMP@
ac_ct_RANLIB = @ac_ct_RANLIB@
ac_ct_STRIP = @ac_ct_STRIP@
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
datadir = @datadir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
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 test509 \
test510 test97 test98 test99
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:
-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:
# The following tests have been removed from the dist since they no longer
# work. We need to fix the test suite's FTPS server first, then bring them
# back: test400 test401 test402 test403
# 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:

47
neo/curl/tests/data/test1 Normal file
View File

@@ -0,0 +1,47 @@
#
# 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>
simple HTTP GET
</name>
<command>
http://%HOSTIP:%HOSTPORT/1
</command>
</client>
#
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /1 HTTP/1.1
Host: 127.0.0.1:8999
Pragma: no-cache
Accept: */*
</protocol>
</verify>

View File

@@ -0,0 +1,60 @@
# 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:%HOSTPORT/we/want/10 -T log/test10.txt
</command>
<file name="log/test10.txt">
Weird
file
to
upload
for
testing
the
PUT
feature
</file>
</test>
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
PUT /we/want/10 HTTP/1.1
Host: 127.0.0.1:8999
Pragma: no-cache
Accept: */*
Content-Length: 78
Expect: 100-continue
Weird
file
to
upload
for
testing
the
PUT
feature
</protocol>
</verify>

View File

@@ -0,0 +1,48 @@
#
# Server-side
<reply name="1">
<data>
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
</data>
</reply>
#
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP dir list PASV
</name>
<command>
ftp://%HOSTIP:%FTPPORT/
</command>
</test>
#
# Verify data after the test has been "shot"
<verify>
<strip>
filter off really nothing
</strip>
<protocol>
USER anonymous
PASS curl_by_daniel@haxx.se
PWD
EPSV
TYPE A
LIST
QUIT
</protocol>
</verify>

View File

@@ -0,0 +1,48 @@
# Server-side
<reply>
<data>
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
</data>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP dir list, PORT with specified IP
</name>
<command>
ftp://%HOSTIP:%FTPPORT/ -P %HOSTIP
</command>
</test>
# Verify data after the test has been "shot"
<verify>
# strip all kinds of PORT, EPRT and LPRT curl can do
<strip>
^PORT 127,0,0,1,.*
^EPRT.*
^LPRT.*
</strip>
<protocol>
USER anonymous
PASS curl_by_daniel@haxx.se
PWD
PORT 127,0,0,1,243,212
TYPE A
LIST
QUIT
</protocol>
</verify>

View File

@@ -0,0 +1,43 @@
# Server-side
<reply>
<data>
data
to
see
that FTP
works
so does it?
</data>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP RETR PASV
</name>
<command>
ftp://%HOSTIP:%FTPPORT/102
</command>
</test>
<file name="log/ftpserver.cmd">
REPLY EPSV 500 no such command
</file>
# Verify data after the test has been "shot"
<verify>
<protocol>
USER anonymous
PASS curl_by_daniel@haxx.se
PWD
EPSV
PASV
TYPE I
SIZE 102
RETR 102
QUIT
</protocol>
</verify>

View File

@@ -0,0 +1,45 @@
# 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>
</test>
# Verify data after the test has been "shot"
<verify>
<strip>
^PORT .*
^EPRT.*
^LPRT.*
</strip>
<protocol>
USER anonymous
PASS curl_by_daniel@haxx.se
PWD
CWD a
CWD path
PORT 127,0,0,1,246,33
TYPE I
SIZE 103
RETR 103
QUIT
</protocol>
</verify>

View File

@@ -0,0 +1,35 @@
# 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>
</test>
# Verify data after the test has been "shot"
<verify>
<protocol>
USER anonymous
PASS curl_by_daniel@haxx.se
PWD
CWD a
CWD path
MDTM 103
TYPE I
SIZE 103
REST 0
QUIT
</protocol>
</verify>

View File

@@ -0,0 +1,43 @@
# Server-side
<reply>
<data>
data
to
see
that FTP
works
so does it?
</data>
</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>
<file name="log/ftpserver.cmd">
REPLY EPSV 500 no such command
REPLY SIZE 500 no such command
</file>
</test>
# 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>

View File

@@ -0,0 +1,40 @@
# 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>
</test>
# Verify data after the test has been "shot"
<verify>
<protocol>
USER anonymous
PASS curl_by_daniel@haxx.se
PWD
CWD /path with spaces
CWD and things2
EPSV
TYPE A
SIZE 106
RETR 106
QUIT
</protocol>
</verify>

View File

@@ -0,0 +1,42 @@
# 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>
</test>
# Verify data after the test has been "shot"
<verify>
<upload>
data
to
see
that FTP
works
so does it?
</upload>
<protocol>
USER anonymous
PASS curl_by_daniel@haxx.se
PWD
EPSV
TYPE I
STOR 107
QUIT
</protocol>
</verify>

View File

@@ -0,0 +1,47 @@
# 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>
</test>
# Verify data after the test has been "shot"
<verify>
<strip>
^PORT .*
^EPRT .*
^LPRT .*
</strip>
<protocol>
USER anonymous
PASS curl_by_daniel@haxx.se
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>

View File

@@ -0,0 +1,41 @@
# Server-side
<reply>
<data>
</data>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP PASV upload append
</name>
<command>
ftp://%HOSTIP:%FTPPORT/109 -T log/upload109 --append
</command>
<file name="log/upload109">
Moooooooooooo
upload this
</file>
</test>
# Verify data after the test has been "shot"
<verify>
<strip>
</strip>
<protocol>
USER anonymous
PASS curl_by_daniel@haxx.se
PWD
EPSV
TYPE I
APPE 109
QUIT
</protocol>
<upload>
Moooooooooooo
upload this
</upload>
</verify>

View File

@@ -0,0 +1,67 @@
# 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/110002.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
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/110002.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
If this is received, the location following worked
</datacheck>
</reply>
# Client-side
<client>
<server>
http
</server>
<name>
simple HTTP Location: following
</name>
<command>
http://%HOSTIP:%HOSTPORT/want/11 -L
</command>
</test>
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /want/11 HTTP/1.1
Host: 127.0.0.1:8999
Pragma: no-cache
Accept: */*
GET /want/data/110002.txt?coolsite=yes HTTP/1.1
Host: 127.0.0.1:8999
Pragma: no-cache
Accept: */*
</protocol>
</verify>

View File

@@ -0,0 +1,44 @@
# Server-side
<reply>
<data>
expected to be a file without the first part
but we emulate that
</data>
<size>
85
</size>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP download resume with set limit
</name>
<command>
ftp://%HOSTIP:%FTPPORT/110 -C 20
</command>
<file name="log/ftpserver.cmd">
REPLY EPSV 500 no such command
</file>
</test>
# Verify data after the test has been "shot"
<verify>
<strip>
</strip>
<protocol>
USER anonymous
PASS curl_by_daniel@haxx.se
PWD
EPSV
PASV
TYPE I
SIZE 110
REST 20
RETR 110
QUIT
</protocol>
</verify>

View File

@@ -0,0 +1,37 @@
# Server-side
<reply>
<size>
85
</size>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP download resume beyond file size
</name>
<command>
ftp://%HOSTIP:%FTPPORT/111 -C 2000
</command>
</test>
# Verify data after the test has been "shot"
<verify>
<errorcode>
36
</errorcode>
<strip>
</strip>
<protocol>
USER anonymous
PASS curl_by_daniel@haxx.se
PWD
EPSV
TYPE I
SIZE 111
QUIT
</protocol>
</verify>

View File

@@ -0,0 +1,41 @@
# Server-side
<reply>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP PASV upload resume
</name>
<command>
ftp://%HOSTIP:%FTPPORT/112 -T log/upload112 -C 40
</command>
<file name="log/upload112">
this is the *****crap******** that we're gonna upload
worx?
</file>
</test>
# Verify data after the test has been "shot"
<verify>
<strip>
</strip>
<protocol>
USER anonymous
PASS curl_by_daniel@haxx.se
PWD
EPSV
TYPE I
APPE 112
QUIT
</protocol>
<upload>
gonna upload
worx?
</upload>
</verify>

View File

@@ -0,0 +1,29 @@
# Server-side
<reply>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP download, failed login: USER not valid
</name>
<command>
ftp://%HOSTIP:%FTPPORT/113
</command>
<file name="log/ftpserver.cmd">
REPLY USER 314 bluah you fewl!
</file>
</test>
# Verify data after the test has been "shot"
<verify>
<errorcode>
12
</errorcode>
<protocol>
USER anonymous
</protocol>
</verify>

View File

@@ -0,0 +1,30 @@
# Server-side
<reply>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP download, failed login: PASS not valid
</name>
<command>
ftp://%HOSTIP:%FTPPORT/114
</command>
<file name="log/ftpserver.cmd">
REPLY PASS 314 bluah you f00l!
</file>
</test>
# Verify data after the test has been "shot"
<verify>
<errorcode>
11
</errorcode>
<protocol>
USER anonymous
PASS curl_by_daniel@haxx.se
</protocol>
</verify>

View File

@@ -0,0 +1,35 @@
# Server-side
<reply>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP download, failed PASV
</name>
<command>
ftp://%HOSTIP:%FTPPORT/115
</command>
<file name="log/ftpserver.cmd">
REPLY PASV 314 bluah you f00l!
REPLY EPSV 314 bluah you f00l!
</file>
</test>
# Verify data after the test has been "shot"
<verify>
<errorcode>
13
</errorcode>
<protocol>
USER anonymous
PASS curl_by_daniel@haxx.se
PWD
EPSV
PASV
QUIT
</protocol>
</verify>

View File

@@ -0,0 +1,37 @@
# Server-side
<reply>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP download, failed PORT
</name>
<command>
ftp://%HOSTIP:%FTPPORT/116 -P 127.0.0.1
</command>
<file name="log/ftpserver.cmd">
REPLY PORT 314 bluah you f00l!
</file>
</test>
# Verify data after the test has been "shot"
<verify>
<errorcode>
30
</errorcode>
<strip>
^PORT 127,0,0,1,.*
^EPRT .*
^LPRT .*
</strip>
<protocol>
USER anonymous
PASS curl_by_daniel@haxx.se
PWD
QUIT
</protocol>
</verify>

View File

@@ -0,0 +1,36 @@
# Server-side
<reply>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP download, failed TYPE
</name>
<command>
ftp://%HOSTIP:%FTPPORT/117
</command>
<file name="log/ftpserver.cmd">
REPLY EPSV 314 bluah you f00l!
REPLY TYPE 314 bluah you f00l!
</file>
</test>
# Verify data after the test has been "shot"
<verify>
<errorcode>
17
</errorcode>
<protocol>
USER anonymous
PASS curl_by_daniel@haxx.se
PWD
EPSV
PASV
TYPE I
QUIT
</protocol>
</verify>

View File

@@ -0,0 +1,38 @@
# Server-side
<reply>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP download, failed RETR
</name>
<command>
ftp://%HOSTIP:%FTPPORT/118
</command>
<file name="log/ftpserver.cmd">
REPLY RETR 314 bluah you f00l!
REPLY EPSV 314 bluah you f00l!
</file>
</test>
# Verify data after the test has been "shot"
<verify>
<errorcode>
19
</errorcode>
<protocol>
USER anonymous
PASS curl_by_daniel@haxx.se
PWD
EPSV
PASV
TYPE I
SIZE 118
RETR 118
QUIT
</protocol>
</verify>

View File

@@ -0,0 +1,40 @@
# Server-side
<reply>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP download, failed RETR with PORT
</name>
<command>
ftp://%HOSTIP:%FTPPORT/119 -P -
</command>
<file name="log/ftpserver.cmd">
REPLY RETR 314 bluah you f00l!
</file>
</test>
# Verify data after the test has been "shot"
<verify>
<errorcode>
19
</errorcode>
<strip>
^PORT.*
^EPRT .*
^LPRT .*
</strip>
<protocol>
USER anonymous
PASS curl_by_daniel@haxx.se
PWD
TYPE I
SIZE 119
RETR 119
QUIT
</protocol>
</verify>

View File

@@ -0,0 +1,47 @@
# Server-side
<reply>
<data>
HTTP/1.1 206 Partial Content
Date: Mon, 13 Nov 2000 13:41:09 GMT
Server: Apache/1.3.11 (Unix) PHP/3.0.14
Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT
ETag: "21025-dc7-39462498"
Accept-Ranges: bytes
Content-Length: 101
Content-Range: bytes 100-200/3527
Connection: close
Content-Type: text/html
ink="#ffffff" vlink="#cccccc">
<table width=100% cellspacing=0 cellpadding=0 border=0>
<tr> 0123456
</data>
</reply>
# Client-side
<client>
<server>
http
</server>
<name>
HTTP range support
</name>
<command>
http://%HOSTIP:%HOSTPORT/want/12 -r 100-200
</command>
</test>
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /want/12 HTTP/1.1
Range: bytes=100-200
Host: 127.0.0.1:8999
Pragma: no-cache
Accept: */*
</protocol>
</verify>

View File

@@ -0,0 +1,43 @@
# Server-side
<reply>
<data>
data
to
see
that FTP
works
so does it?
</data>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
ftp download with post-quote delete operation
</name>
<command>
ftp://%HOSTIP:%FTPPORT/120 -Q "-DELE file"
</command>
<file name="log/ftpserver.cmd">
REPLY EPSV 314 bluah you f00l!
</file>
</test>
# Verify data after the test has been "shot"
<verify>
<protocol>
USER anonymous
PASS curl_by_daniel@haxx.se
PWD
EPSV
PASV
TYPE I
SIZE 120
RETR 120
DELE file
QUIT
</protocol>
</verify>

View File

@@ -0,0 +1,40 @@
# Server-side
<reply>
<data>
data
to
see
that FTP
works
so does it?
</data>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
ftp download with post- and pre-transfer delete operations
</name>
<command>
ftp://%HOSTIP:%FTPPORT/121 -Q "-DELE after_transfer" -Q "DELE before_transfer"
</command>
</test>
# Verify data after the test has been "shot"
<verify>
<protocol>
USER anonymous
PASS curl_by_daniel@haxx.se
PWD
DELE before_transfer
EPSV
TYPE I
SIZE 121
RETR 121
DELE after_transfer
QUIT
</protocol>
</verify>

View File

@@ -0,0 +1,36 @@
# Server-side
<reply>
<size>
5
</size>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP download resume with whole file already downloaded
</name>
<command>
ftp://%HOSTIP:%FTPPORT/122 -C 5
</command>
<file name="log/ftpserver.cmd">
REPLY EPSV 500 no such command
</file>
</test>
# Verify data after the test has been "shot"
<verify>
<protocol>
USER anonymous
PASS curl_by_daniel@haxx.se
PWD
EPSV
PASV
TYPE I
SIZE 122
QUIT
</protocol>
</verify>

View File

@@ -0,0 +1,31 @@
# Server-side
<reply>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP upload resume with whole file already downloaded
</name>
<command>
ftp://%HOSTIP:%FTPPORT/123 -T log/upload123 -C 51
</command>
<file name="log/upload123">
--------------------------------------------------
</file>
</test>
# Verify data after the test has been "shot"
<verify>
<protocol>
USER anonymous
PASS curl_by_daniel@haxx.se
PWD
EPSV
TYPE I
QUIT
</protocol>
</verify>

View File

@@ -0,0 +1,38 @@
# Server-side
<reply>
<data>
we can still send data even if pwd fails!
</data>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP download, failed PWD
</name>
<command>
ftp://%HOSTIP:%FTPPORT/124
</command>
<file name="log/ftpserver.cmd">
REPLY PWD 314 bluah you f00l!
REPLY EPSV 314 bluah you f00l!
</file>
</test>
# Verify data after the test has been "shot"
<verify>
<protocol>
USER anonymous
PASS curl_by_daniel@haxx.se
PWD
EPSV
PASV
TYPE I
SIZE 124
RETR 124
QUIT
</protocol>
</verify>

View File

@@ -0,0 +1,33 @@
# Server-side
<reply>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP download, failed CWD
</name>
<command>
ftp://%HOSTIP:%FTPPORT/path/to/file/125
</command>
<file name="log/ftpserver.cmd">
REPLY CWD 314 bluah you f00l!
</file>
</test>
# Verify data after the test has been "shot"
<verify>
<errorcode>
9
</errorcode>
<protocol>
USER anonymous
PASS curl_by_daniel@haxx.se
PWD
CWD path
QUIT
</protocol>
</verify>

View File

@@ -0,0 +1,38 @@
# Server-side
<reply>
<data>
this is file contents
</data>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP download with multiple replies at once in RETR
</name>
<command>
ftp://%HOSTIP:%FTPPORT/blalbla/lululul/126
</command>
<file name="log/ftpserver.cmd">
RETRWEIRDO
</file>
</test>
# Verify data after the test has been "shot"
<verify>
<protocol>
USER anonymous
PASS curl_by_daniel@haxx.se
PWD
CWD blalbla
CWD lululul
EPSV
TYPE I
SIZE 126
RETR 126
QUIT
</protocol>
</verify>

View File

@@ -0,0 +1,36 @@
# Server-side
<reply>
<data>
moooooooo
</data>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP --disable-epsv
</name>
<command>
ftp://%HOSTIP:%FTPPORT/path/to/file/127 --disable-epsv
</command>
</test>
# Verify data after the test has been "shot"
<verify>
<protocol>
USER anonymous
PASS curl_by_daniel@haxx.se
PWD
CWD path
CWD to
CWD file
PASV
TYPE I
SIZE 127
RETR 127
QUIT
</protocol>
</verify>

View File

@@ -0,0 +1,47 @@
# Server-side
<reply>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP upload with --crlf
</name>
<command>
ftp://%HOSTIP:%FTPPORT/128 -T log/upload128 --crlf
</command>
<file name="log/upload128">
file
with unix newlines
meant to be
converted
with
the
--crlf option
</file>
</test>
# Verify data after the test has been "shot"
<verify>
<protocol>
USER anonymous
PASS curl_by_daniel@haxx.se
PWD
EPSV
TYPE I
STOR 128
QUIT
</protocol>
<upload>
file
with unix newlines
meant to be
converted
with
the
--crlf option
</upload>
</verify>

View File

@@ -0,0 +1,37 @@
# Server-side
<reply>
<data>
HTTP/1.1 200 Read you
Content-Length: 29
Deleted: suppose we got a header like this! ;-)
blabla custom request result
</data>
</reply>
# Client-side
<client>
<server>
http
</server>
<name>
HTTP custom request 'DELETE'
</name>
<command>
http://%HOSTIP:%HOSTPORT/want/13 -X DELETE
</command>
</test>
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
DELETE /want/13 HTTP/1.1
Host: 127.0.0.1:8999
Pragma: no-cache
Accept: */*
</protocol>
</verify>

View File

@@ -0,0 +1,56 @@
#
# Server-side
<reply name="1">
<data>
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
</data>
</reply>
#
# Client-side
<client>
<features>
netrc_debug
</features>
<server>
ftp
</server>
<name>
FTP (optional .netrc; no user/pass) dir list PASV
</name>
<command>
--netrc-optional ftp://%HOSTIP:%FTPPORT/
</command>
<file name="log/netrc" >
# the following two lines were created while testing curl
machine %HOSTIP login user1 password passwd1
machine %HOSTIP login user2 password passwd2
</file>
</test>
#
# Verify data after the test has been "shot"
<verify>
<strip>
filter off really nothing
</strip>
<protocol>
USER user1
PASS passwd1
PWD
EPSV
TYPE A
LIST
QUIT
</protocol>
</verify>

View File

@@ -0,0 +1,56 @@
#
# Server-side
<reply name="1">
<data>
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
</data>
</reply>
#
# Client-side
<client>
<features>
netrc_debug
</features>
<server>
ftp
</server>
<name>
FTP (optional .netrc; user/no pass) dir list PASV
</name>
<command>
--netrc-optional ftp://user2@%HOSTIP:%FTPPORT/
</command>
<file name="log/netrc" >
# the following two lines were created while testing curl
machine %HOSTIP login user1 password passwd1
machine %HOSTIP login user2 password passwd2
</file>
</test>
#
# Verify data after the test has been "shot"
<verify>
<strip>
filter off really nothing
</strip>
<protocol>
USER user2
PASS passwd2
PWD
EPSV
TYPE A
LIST
QUIT
</protocol>
</verify>

View File

@@ -0,0 +1,56 @@
#
# Server-side
<reply name="1">
<data>
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
</data>
</reply>
#
# Client-side
<client>
<features>
netrc_debug
</features>
<server>
ftp
</server>
<name>
FTP (optional .netrc; user/passwd supplied) dir list PASV
</name>
<command>
--netrc-optional ftp://mary:mark@%HOSTIP:%FTPPORT/
</command>
<file name="log/netrc" >
# the following two lines were created while testing curl
machine %HOSTIP login user1 password passwd1
machine %HOSTIP login user2 password passwd2
</file>
</test>
#
# Verify data after the test has been "shot"
<verify>
<strip>
filter off really nothing
</strip>
<protocol>
USER mary
PASS mark
PWD
EPSV
TYPE A
LIST
QUIT
</protocol>
</verify>

View File

@@ -0,0 +1,56 @@
#
# Server-side
<reply name="1">
<data>
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
</data>
</reply>
#
# Client-side
<client>
<features>
netrc_debug
</features>
<server>
ftp
</server>
<name>
FTP (compulsory .netrc; ignored user/passwd) dir list PASV
</name>
<command>
-n ftp://mary:mark@%HOSTIP:%FTPPORT/
</command>
<file name="log/netrc" >
# the following two lines were created while testing curl
machine %HOSTIP login user1 password passwd1
machine %HOSTIP login user2 password passwd2
</file>
</test>
#
# Verify data after the test has been "shot"
<verify>
<strip>
filter off really nothing
</strip>
<protocol>
USER user1
PASS passwd1
PWD
EPSV
TYPE A
LIST
QUIT
</protocol>
</verify>

View File

@@ -0,0 +1,56 @@
#
# Server-side
<reply name="1">
<data>
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
</data>
</reply>
#
# Client-side
<client>
<features>
netrc_debug
</features>
<server>
ftp
</server>
<name>
FTP (optional .netrc; programmatic user/passwd) dir list PASV
</name>
<command>
--netrc-optional -u romulus:rhemus ftp://mary:mark@%HOSTIP:%FTPPORT/
</command>
<file name="log/netrc" >
# the following two lines were created while testing curl
machine %HOSTIP login user1 password passwd1
machine %HOSTIP login user2 password passwd2
</file>
</test>
#
# Verify data after the test has been "shot"
<verify>
<strip>
filter off really nothing
</strip>
<protocol>
USER romulus
PASS rhemus
PWD
EPSV
TYPE A
LIST
QUIT
</protocol>
</verify>

View File

@@ -0,0 +1,43 @@
# Server-side
<reply>
<data>
0123456789abcdef
0123456789abcdef
0123456789abcdef
0123456789abcdef
</data>
<datacheck nonewline=yes>
0123456789abc
</datacheck>
<size>
64
</size>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP retrieve a byte-range
</name>
<command>
-r 4-16 ftp://%HOSTIP:%FTPPORT/135
</command>
</test>
# Verify data after the test has been "shot"
<verify>
<protocol>
USER anonymous
PASS curl_by_daniel@haxx.se
PWD
EPSV
TYPE I
SIZE 135
REST 4
RETR 135
QUIT
</protocol>
</verify>

View File

@@ -0,0 +1,33 @@
# Server-side
<reply>
<data>
0123456789abcdef
</data>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP with user and no password
</name>
<command>
-u user: ftp://%HOSTIP:%FTPPORT/136
</command>
</test>
# Verify data after the test has been "shot"
<verify>
<protocol>
USER user
PASS
PWD
EPSV
TYPE I
SIZE 136
RETR 136
QUIT
</protocol>
</verify>

View File

@@ -0,0 +1,38 @@
# Server-side
<reply>
<data>
this is file contents
</data>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP download without size in RETR string
</name>
<command>
ftp://%HOSTIP:%FTPPORT/blalbla/lululul/137
</command>
<file name="log/ftpserver.cmd">
RETRNOSIZE
</file>
</test>
# Verify data after the test has been "shot"
<verify>
<protocol>
USER anonymous
PASS curl_by_daniel@haxx.se
PWD
CWD blalbla
CWD lululul
EPSV
TYPE I
SIZE 137
RETR 137
QUIT
</protocol>
</verify>

View File

@@ -0,0 +1,41 @@
# Server-side
<reply>
<data>
this is file contents
</data>
<size>
-1
</size>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP download without size in RETR string and no SIZE command
</name>
<command>
ftp://%HOSTIP:%FTPPORT/blalbla/lululul/138
</command>
<file name="log/ftpserver.cmd">
RETRNOSIZE
</file>
</test>
# Verify data after the test has been "shot"
<verify>
<protocol>
USER anonymous
PASS curl_by_daniel@haxx.se
PWD
CWD blalbla
CWD lululul
EPSV
TYPE I
SIZE 138
RETR 138
QUIT
</protocol>
</verify>

View File

@@ -0,0 +1,38 @@
# Server-side
<reply>
<data>
this is file contents
</data>
<mdtm>
213 20030409102659
</mdtm>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP download a newer file with -z
</name>
<command>
ftp://%HOSTIP:%FTPPORT/blalbla/139 -z "1 jan 1989"
</command>
</test>
# Verify data after the test has been "shot"
<verify>
<protocol>
USER anonymous
PASS curl_by_daniel@haxx.se
PWD
CWD blalbla
MDTM 139
EPSV
TYPE I
SIZE 139
RETR 139
QUIT
</protocol>
</verify>

View File

@@ -0,0 +1,37 @@
# Server-side
<reply>
<data>
HTTP/1.1 200 OK
Server: thebest/1.0
Connection: close
</data>
</reply>
# Client-side
<client>
<server>
http
</server>
<name>
HTTP HEAD with Connection: close
</name>
<command>
http://%HOSTIP:%HOSTPORT/want/14 -i --head
</command>
</test>
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
HEAD /want/14 HTTP/1.1
User-Agent: curl/7.4.2-pre4 (sparc-sun-solaris2.7) libcurl 7.4.2-pre4
Host: 127.0.0.1:8999
Pragma: no-cache
Accept: */*
</protocol>
</verify>

View File

@@ -0,0 +1,33 @@
# Server-side
<reply>
<data>
</data>
<mdtm>
213 20030409102659
</mdtm>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP download file with -z, expected to not transfer
</name>
<command>
ftp://%HOSTIP:%FTPPORT/blalbla/140 -z "1 jan 2004"
</command>
</test>
# Verify data after the test has been "shot"
<verify>
<protocol>
USER anonymous
PASS curl_by_daniel@haxx.se
PWD
CWD blalbla
MDTM 140
QUIT
</protocol>
</verify>

View File

@@ -0,0 +1,39 @@
# Server-side
<reply>
<data>
</data>
<mdtm>
213 20030409102659
</mdtm>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP download info with -I
</name>
<command>
ftp://%HOSTIP:%FTPPORT/blalbla/141 -I
</command>
</test>
# Verify data after the test has been "shot"
<verify>
<protocol>
USER anonymous
PASS curl_by_daniel@haxx.se
PWD
CWD blalbla
MDTM 141
TYPE I
SIZE 141
REST 0
QUIT
</protocol>
<stdout>
Last-Modified: Wed, 09 Apr 2003 10:26:59 GMT
</stdout>
</verify>

View File

@@ -0,0 +1,30 @@
# Server-side
<reply>
<data>
</data>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP URL with too deep (100+) dir hierarchy
</name>
<command>
ftp://%HOSTIP:%FTPPORT/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/b
</command>
</test>
# Verify data after the test has been "shot"
<verify>
<errorcode>
3
</errorcode>
<protocol>
USER anonymous
PASS curl_by_daniel@haxx.se
PWD
</protocol>
</verify>

View File

@@ -0,0 +1,35 @@
# Server-side
<reply>
<data>
bla bla bla
</data>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP URL with type=a
</name>
<command>
"ftp://%HOSTIP:%FTPPORT/%2ftmp/moo/143;type=a"
</command>
</test>
# Verify data after the test has been "shot"
<verify>
<protocol>
USER anonymous
PASS curl_by_daniel@haxx.se
PWD
CWD /tmp
CWD moo
EPSV
TYPE A
SIZE 143
RETR 143
QUIT
</protocol>
</verify>

View File

@@ -0,0 +1,40 @@
# Server-side
<reply>
<data>
</data>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP NLST dir list without contents, using PORT
</name>
<command>
ftp://%HOSTIP:%FTPPORT/ -P - -l
</command>
<file name="log/ftpserver.cmd">
REPLY NLST 450 No files found
</file>
</test>
# Verify data after the test has been "shot"
<verify>
# strip all kinds of PORT, EPRT and LPRT curl can do
<strip>
^PORT 127,0,0,1,.*
^EPRT.*
^LPRT.*
</strip>
<protocol>
USER anonymous
PASS curl_by_daniel@haxx.se
PWD
PORT 127,0,0,1,243,212
TYPE A
NLST
QUIT
</protocol>
</verify>

View File

@@ -0,0 +1,43 @@
# Server-side
<reply>
<data>
</data>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP NLST dir list with weird reply code, using PORT
</name>
<command>
ftp://%HOSTIP:%FTPPORT/ -P - -l
</command>
<file name="log/ftpserver.cmd">
REPLY NLST 550 Have a taste on this!
</file>
</test>
# Verify data after the test has been "shot"
<verify>
<errorcode>
19
</errorcode>
# strip all kinds of PORT, EPRT and LPRT curl can do
<strip>
^PORT 127,0,0,1,.*
^EPRT.*
^LPRT.*
</strip>
<protocol>
USER anonymous
PASS curl_by_daniel@haxx.se
PWD
PORT 127,0,0,1,243,212
TYPE A
NLST
QUIT
</protocol>
</verify>

View File

@@ -0,0 +1,47 @@
# Server-side
<reply>
<data>
this is file contents
</data>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
persistant FTP with different paths
</name>
<command>
ftp://%HOSTIP:%FTPPORT/first/dir/here/146 ftp://%HOSTIP:%FTPPORT/146
</command>
</test>
# Verify data after the test has been "shot"
<verify>
# strip all kinds of PORT, EPRT and LPRT curl can do
<strip>
^PORT 127,0,0,1,.*
^EPRT.*
^LPRT.*
</strip>
<protocol>
USER anonymous
PASS curl_by_daniel@haxx.se
PWD
CWD first
CWD dir
CWD here
EPSV
TYPE I
SIZE 146
RETR 146
CWD /nowhere/anywhere
EPSV
TYPE I
SIZE 146
RETR 146
QUIT
</protocol>
</verify>

View File

@@ -0,0 +1,49 @@
# Server-side
<reply>
<data>
foo
</data>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP with --ftp-create-dirs (failing CWD)
</name>
<command>
ftp://%HOSTIP:%FTPPORT/first/dir/here/147 --ftp-create-dirs
</command>
</test>
<file name="log/ftpserver.cmd">
REPLY CWD 550 I won't allow this on my server
COUNT CWD 1
</file>
</client>
# Verify data after the test has been "shot"
<verify>
# strip all kinds of PORT, EPRT and LPRT curl can do
<strip>
^PORT 127,0,0,1,.*
^EPRT.*
^LPRT.*
</strip>
<protocol>
USER anonymous
PASS curl_by_daniel@haxx.se
PWD
CWD first
MKD first
CWD first
CWD dir
CWD here
EPSV
TYPE I
SIZE 147
RETR 147
QUIT
</protocol>
</verify>

View File

@@ -0,0 +1,42 @@
# Server-side
<reply>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP with --ftp-create-dirs (failing MKD)
</name>
<command>
ftp://%HOSTIP:%FTPPORT/attempt/to/get/this/148 --ftp-create-dirs
</command>
</test>
<file name="log/ftpserver.cmd">
REPLY CWD 550 I won't allow this on my server
REPLY MKD 550 We will have no such thing
</file>
</client>
# Verify data after the test has been "shot"
<verify>
# strip all kinds of PORT, EPRT and LPRT curl can do
<strip>
^PORT 127,0,0,1,.*
^EPRT.*
^LPRT.*
</strip>
<errorcode>
9
</errorcode>
<protocol>
USER anonymous
PASS curl_by_daniel@haxx.se
PWD
CWD attempt
MKD attempt
QUIT
</protocol>
</verify>

View File

@@ -0,0 +1,47 @@
# Server-side
<reply>
</reply>
# Client-side
<client>
<server>
ftp
</server>
<name>
FTP with multiple uploads
</name>
<command>
-T log/upload148 ftp://%HOSTIP:%FTPPORT/dir1/148 -T log/upload148 ftp://%HOSTIP:%FTPPORT/dir2/148
</command>
<file name="log/upload148">
send away this contents
</file>
</client>
# Verify data after the test has been "shot"
<verify>
# strip all kinds of PORT, EPRT and LPRT curl can do
<strip>
^PORT 127,0,0,1,.*
^EPRT.*
^LPRT.*
</strip>
<protocol>
USER anonymous
PASS curl_by_daniel@haxx.se
PWD
CWD dir1
EPSV
TYPE I
STOR 148
CWD /nowhere/anywhere
CWD dir2
EPSV
TYPE I
STOR 148
QUIT
</protocol>
<file name="log/upload148">
send away this contents
</file>
</verify>

View File

@@ -0,0 +1,49 @@
# Server-side
<reply>
<data nocheck=true>
HTTP/1.4 200 OK
Fake: yes
Fake: yes
Fake: yes
Content-Length: 26
Repeated nonsense-headers
</data>
</reply>
# Client-side
<client>
<server>
http
</server>
<name>
--write-out test
</name>
<command>
http://%HOSTIP:%HOSTPORT/want/15 --write-out '%{url_effective} %{http_code} %{size_download}\n'
</command>
</test>
# Verify data after the test has been "shot"
<verify>
<stdout>
HTTP/1.4 200 OK
Fake: yes
Fake: yes
Fake: yes
Content-Length: 26
Repeated nonsense-headers
http://127.0.0.1:8999/want/15 200 26
</stdout>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /want/15 HTTP/1.1
Host: 127.0.0.1:8999
Pragma: no-cache
Accept: */*
</protocol>
</verify>

View File

@@ -0,0 +1,41 @@
# Server-side
<reply>
<data>
HTTP/1.1 200 OK
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
Content-Type: text/html
Funny-head: yesyes
Content-Length: 22
the content goes here
</data>
</reply>
# Client-side
<client>
<server>
http
</server>
<name>
HTTP with proxy athorization
</name>
<command>
-U fake@user:§§§looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong -x %HOSTIP:%HOSTPORT http://we.want.that.site.com/16
</command>
</test>
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET http://we.want.that.site.com/16 HTTP/1.1
Proxy-authorization: Basic ZmFrZUB1c2VyOqenp2xvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29uZw==
Host: we.want.that.site.com
Pragma: no-cache
Accept: */*
</protocol>
</verify>

View File

@@ -0,0 +1,46 @@
# Server-side
<reply>
<data>
HTTP/1.1 200 OK
Funny-head: yesyes
Content-Length: 27
This is the proof it works
</data>
</reply>
# Client-side
<client>
<server>
http
</server>
<name>
HTTP with config file on stdin
</name>
<stdin>
#
# Use a silly request without '--':
request MOOO
#
# Set the user-agent using a short-option:
-A "agent007 license to drill\t"
#
# long option *with* '--':
--max-time 180
</stdin>
<command>
-K - %HOSTIP:%HOSTPORT/that.site.com/17
</command>
</test>
# Verify data after the test has been "shot"
<verify>
<protocol>
MOOO /that.site.com/17 HTTP/1.1
User-Agent: agent007 license to drill
Host: 127.0.0.1:8999
Pragma: no-cache
Accept: */*
</protocol>
</verify>

View File

@@ -0,0 +1,84 @@
# Server-side
<reply>
<data nocheck=1>
HTTP/1.1 200 OK
Funny-head: yesyes
Content-Length: 4
moo
</data>
<data2>
HTTP/1.1 200 OK
Funny-head: yesyes
Content-Length: 4
foo
</data2>
<data3>
HTTP/1.1 200 OK
Funny-head: yesyes
Content-Length: 4
hoo
</data3>
</reply>
# Client-side
<client>
<server>
http
</server>
<name>
multiple requests using {} in URL
</name>
<command>
'%HOSTIP:%HOSTPORT/{18,180002,180003}'
</command>
</test>
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /18 HTTP/1.1
User-Agent: curl/7.8.1-pre3 (sparc-sun-solaris2.7) libcurl 7.8.1-pre3 (OpenSSL 0.9.6a) (krb4 enabled)
Host: 127.0.0.1:8999
Pragma: no-cache
Accept: */*
GET /180002 HTTP/1.1
User-Agent: curl/7.8.1-pre3 (sparc-sun-solaris2.7) libcurl 7.8.1-pre3 (OpenSSL 0.9.6a) (krb4 enabled)
Host: 127.0.0.1:8999
Pragma: no-cache
Accept: */*
GET /180003 HTTP/1.1
User-Agent: curl/7.8.1-pre3 (sparc-sun-solaris2.7) libcurl 7.8.1-pre3 (OpenSSL 0.9.6a) (krb4 enabled)
Host: 127.0.0.1:8999
Pragma: no-cache
Accept: */*
</protocol>
<stdout>
--_curl_--127.0.0.1:8999/18
HTTP/1.1 200 OK
Funny-head: yesyes
Content-Length: 4
moo
--_curl_--127.0.0.1:8999/180002
HTTP/1.1 200 OK
Funny-head: yesyes
Content-Length: 4
foo
--_curl_--127.0.0.1:8999/180003
HTTP/1.1 200 OK
Funny-head: yesyes
Content-Length: 4
hoo
</stdout>
</verify>

View File

@@ -0,0 +1,25 @@
# Server-side
<reply>
<data>
</data>
</reply>
# Client-side
<client>
<server>
none
</server>
<name>
attempt connect to non-listening socket
</name>
<command>
%HOSTIP:60000
</command>
</test>
# Verify data after the test has been "shot"
<verify>
<errorcode>
7
</errorcode>
</verify>

View File

@@ -0,0 +1,36 @@
# Server-side
<reply>
moooooooo
</reply>
# Client-side
<client>
<server>
ftp
</server>
<killserver>
ftp
</killserver>
<name>
FTP download with strict timeout and slow CWD
</name>
<command>
ftp://%HOSTIP:%FTPPORT/path/to/file/126 -m 3
</command>
<file name="log/ftpserver.cmd">
DELAY CWD 15
</file>
</test>
# Verify data after the test has been "shot"
<verify>
<errorcode>
28
</errorcode>
<protocol>
USER anonymous
PASS curl_by_daniel@haxx.se
PWD
CWD path
</protocol>
</verify>

45
neo/curl/tests/data/test2 Normal file
View File

@@ -0,0 +1,45 @@
#
# Server-side
<reply>
<data>
HTTP/1.1 200 OK
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>
<name>
HTTP GET with user and password
</name>
<command>
-u fake:user http://%HOSTIP:%HOSTPORT/2
</command>
</test>
#
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /2 HTTP/1.1
Authorization: Basic ZmFrZTp1c2Vy
Host: 127.0.0.1:8999
Pragma: no-cache
Accept: */*
</protocol>
<data>
[insert full protocol verifiction dump here]
</data>
</verify>

View File

@@ -0,0 +1,25 @@
# Server-side
<reply>
<data>
</data>
</reply>
# Client-side
<client>
<server>
http
</server>
<name>
attempt connect to non-existing host name
</name>
<command>
non-existing-and-weeeeeeirdname
</command>
</test>
# Verify data after the test has been "shot"
<verify>
<errorcode>
6
</errorcode>
</verify>

View File

@@ -0,0 +1,34 @@
# Server-side
<reply>
<data>
foo
bar
bar
foo
moo
</data>
</reply>
# Client-side
<client>
<server>
none
</server>
<name>
basic file:// file
</name>
<command>
file://localhost/%PWD/log/test200.txt
</command>
<file name="log/test200.txt">
foo
bar
bar
foo
moo
</file>
</test>
# Verify data after the test has been "shot"
<verify>
</verify>

View File

@@ -0,0 +1,25 @@
# Server-side
<reply>
<data>
</data>
</reply>
# Client-side
<client>
<server>
none
</server>
<name>
missing file:// file
</name>
<command>
file://localhost/%PWD/log/non-existant-file.txt
</command>
</test>
# Verify data after the test has been "shot"
<verify>
<errorcode>
37
</errorcode>
</verify>

View File

@@ -0,0 +1,29 @@
# Server-side
<reply>
<data>
</data>
</reply>
# Client-side
<client>
<server>
none
</server>
<name>
two file:// URLs to stdout
</name>
<command>
file://localhost/%PWD/log/test202.txt file://localhost/%PWD/log/test202.txt
</command>
<file name="log/test202.txt">
contents in a single file
</file>
</test>
# Verify data after the test has been "shot"
<verify>
<stdout>
contents in a single file
contents in a single file
</stdout>
</verify>

View File

@@ -0,0 +1,34 @@
# Server-side
<reply>
<data>
foo
bar
bar
foo
moo
</data>
</reply>
# Client-side
<client>
<server>
none
</server>
<name>
file:/path URL with a single slash
</name>
<command>
file:%PWD/log/test203.txt
</command>
<file name="log/test203.txt">
foo
bar
bar
foo
moo
</file>
</test>
# Verify data after the test has been "shot"
<verify>
</verify>

View File

@@ -0,0 +1,25 @@
# Server-side
<reply>
<data>
</data>
</reply>
# Client-side
<client>
<server>
http
</server>
<name>
use curl with multiple request methods
</name>
<command>
-I -d FOOO -F moo=moo localhost
</command>
</test>
# Verify data after the test has been "shot"
<verify>
<errorcode>
2
</errorcode>
</verify>

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,25 @@
# Server-side
<reply>
<data>
</data>
</reply>
# Client-side
<client>
<server>
http
</server>
<name>
unsupported protocol:// URL
</name>
<command>
htfp://%HOSTIP:%HOSTPORT/none.htfml
</command>
</test>
# Verify data after the test has been "shot"
<verify>
<errorcode>
1
</errorcode>
</verify>

View File

@@ -0,0 +1,40 @@
# Server-side
<reply>
<data nocheck=1>
HTTP/1.0 404 BAD BOY
Content-Type: text/html
This silly page doesn't reaaaaaly exist so you should not get it.
</data>
</reply>
# Client-side
<client>
<server>
http
</server>
<name>
HTTP GET fail silently on HTTP error return
</name>
<command>
http://%HOSTIP:%HOSTPORT/24 --fail
</command>
</test>
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent: curl/.*
</strip>
<protocol>
GET /24 HTTP/1.1
User-Agent: curl/7.8.1-pre3 (sparc-sun-solaris2.7) libcurl 7.8.1-pre3 (OpenSSL 0.9.6a) (krb4 enabled)
Host: 127.0.0.1:8999
Pragma: no-cache
Accept: */*
</protocol>
<errorcode>
22
</errorcode>
</verify>

112
neo/curl/tests/data/test25 Normal file
View File

@@ -0,0 +1,112 @@
# Server-side
<reply>
<data>
HTTP/1.1 301 This is a weirdo text message
Server: test-server/fake
Location: data/reply/25
Content-Length: 32
Connection: close
Redirect to the same URL again!
</data>
<datacheck>
HTTP/1.1 301 This is a weirdo text message
Server: test-server/fake
Location: data/reply/25
Content-Length: 32
Connection: close
HTTP/1.1 301 This is a weirdo text message
Server: test-server/fake
Location: data/reply/25
Content-Length: 32
Connection: close
HTTP/1.1 301 This is a weirdo text message
Server: test-server/fake
Location: data/reply/25
Content-Length: 32
Connection: close
HTTP/1.1 301 This is a weirdo text message
Server: test-server/fake
Location: data/reply/25
Content-Length: 32
Connection: close
HTTP/1.1 301 This is a weirdo text message
Server: test-server/fake
Location: data/reply/25
Content-Length: 32
Connection: close
HTTP/1.1 301 This is a weirdo text message
Server: test-server/fake
Location: data/reply/25
Content-Length: 32
Connection: close
</datacheck>
</reply>
# Client-side
<client>
<server>
http
</server>
<name>
looping HTTP Location: following with --max-redirs, no persistance
</name>
<command>
http://%HOSTIP:%HOSTPORT/want/25 -L --max-redirs 5
</command>
</test>
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent: curl/.*
</strip>
<protocol>
GET /want/25 HTTP/1.1
User-Agent: curl/7.8.1-pre3 (sparc-sun-solaris2.7) libcurl 7.8.1-pre3 (OpenSSL 0.9.6a) (krb4 enabled)
Host: 127.0.0.1:8999
Pragma: no-cache
Accept: */*
GET /want/data/reply/25 HTTP/1.1
User-Agent: curl/7.8.1-pre3 (sparc-sun-solaris2.7) libcurl 7.8.1-pre3 (OpenSSL 0.9.6a) (krb4 enabled)
Host: 127.0.0.1:8999
Pragma: no-cache
Accept: */*
GET /want/data/reply/data/reply/25 HTTP/1.1
User-Agent: curl/7.8.1-pre3 (sparc-sun-solaris2.7) libcurl 7.8.1-pre3 (OpenSSL 0.9.6a) (krb4 enabled)
Host: 127.0.0.1:8999
Pragma: no-cache
Accept: */*
GET /want/data/reply/data/reply/data/reply/25 HTTP/1.1
User-Agent: curl/7.8.1-pre3 (sparc-sun-solaris2.7) libcurl 7.8.1-pre3 (OpenSSL 0.9.6a) (krb4 enabled)
Host: 127.0.0.1:8999
Pragma: no-cache
Accept: */*
GET /want/data/reply/data/reply/data/reply/data/reply/25 HTTP/1.1
User-Agent: curl/7.8.1-pre3 (sparc-sun-solaris2.7) libcurl 7.8.1-pre3 (OpenSSL 0.9.6a) (krb4 enabled)
Host: 127.0.0.1:8999
Pragma: no-cache
Accept: */*
GET /want/data/reply/data/reply/data/reply/data/reply/data/reply/25 HTTP/1.1
User-Agent: curl/7.8.1-pre3 (sparc-sun-solaris2.7) libcurl 7.8.1-pre3 (OpenSSL 0.9.6a) (krb4 enabled)
Host: 127.0.0.1:8999
Pragma: no-cache
Accept: */*
</protocol>
<errorcode>
47
</errorcode>
</verify>

View File

@@ -0,0 +1,38 @@
# Server-side
<reply>
<data>
HTTP/1.1 200 Mooo swsclose
Server: test-server/fake
Connection: close
*flopp*
</data>
</reply>
# Client-side
<client>
<server>
http
</server>
<name>
specify more -o than URLs
</name>
<command>
http://%HOSTIP:%HOSTPORT/want/26 -o - -o -
</command>
</test>
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent: curl.*
</strip>
<protocol>
GET /want/26 HTTP/1.1
User-Agent: curl/7.8.1-pre3 (sparc-sun-solaris2.7) libcurl 7.8.1-pre3 (OpenSSL 0.9.6a) (krb4 enabled)
Host: 127.0.0.1:8999
Pragma: no-cache
Accept: */*
</protocol>
</verify>

View File

@@ -0,0 +1,49 @@
# Server-side
<reply>
<data>
HTTP/1.1 200 Mooo swsclose
Connection: close
Set-Cookie: path=/; thewinneris=nowayyouwin;
*flopp*
</data>
</reply>
# Client-side
<client>
<server>
http
</server>
<name>
Get same cookie page several times
</name>
<command>
'http://%HOSTIP:%HOSTPORT/want/{27,27,27}' -b none
</command>
</test>
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent: curl.*
</strip>
<protocol>
GET /want/27 HTTP/1.1
Host: 127.0.0.1:8999
Pragma: no-cache
Accept: */*
GET /want/27 HTTP/1.1
Host: 127.0.0.1:8999
Pragma: no-cache
Accept: */*
Cookie: thewinneris=nowayyouwin
GET /want/27 HTTP/1.1
Host: 127.0.0.1:8999
Pragma: no-cache
Accept: */*
Cookie: thewinneris=nowayyouwin
</protocol>
</verify>

View File

@@ -0,0 +1,67 @@
# 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: /online/1,1795,Welcome,00.html/280002.txt?logout=TRUE
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
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: /online/1,1795,Welcome,00.html/280002.txt?logout=TRUE
Connection: close
HTTP/1.1 200 Followed here fine swsclose
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
If this is received, the location following worked
</datacheck>
</reply>
# Client-side
<client>
<server>
http
</server>
<name>
HTTP Location: following with extra spaces in header
</name>
<command>
http://%HOSTIP:%HOSTPORT/want/28 -L
</command>
</test>
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /want/28 HTTP/1.1
Host: 127.0.0.1:8999
Pragma: no-cache
Accept: */*
GET /online/1,1795,Welcome,00.html/280002.txt?logout=TRUE HTTP/1.1
Host: 127.0.0.1:8999
Pragma: no-cache
Accept: */*
</protocol>
</verify>

View File

@@ -0,0 +1,43 @@
# Server-side
<reply>
<data>
HTTP/1.1 200 OK swsclose
Date: Thu, 09 Nov 2010 14:49:00 GMT
Connection: close
<html>result</html>
</data>
<postcmd>
wait 10
</postcmd>
</reply>
# Client-side
<client>
<server>
http
</server>
<name>
HTTP with 2 secs timeout
</name>
<command>
http://%HOSTIP:%HOSTPORT/want/29 -m 2
</command>
</test>
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /want/29 HTTP/1.1
Host: 127.0.0.1:8999
Pragma: no-cache
Accept: */*
</protocol>
<errorcode>
28
</errorcode>
</verify>

52
neo/curl/tests/data/test3 Normal file
View File

@@ -0,0 +1,52 @@
#
# Server-side
<reply name="1">
<data>
HTTP/1.0 200 OK
Server: test-server/fake
Content-Type: text/html
Content-Length: 0
this is data even though Content-Length is set to zero
</data>
<datacheck>
HTTP/1.0 200 OK
Server: test-server/fake
Content-Type: text/html
Content-Length: 0
</datacheck>
</reply>
#
# Client-side
<client>
<server>
http
</server>
<name>
HTTP POST with auth and contents but with content-length set to 0
</name>
<command>
-d "fooo=mooo&pooo=clue&doo=%20%20%20++++" -u "fake:-user" http://%HOSTIP:%HOSTPORT/3
</command>
</test>
#
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol nonewline=yes>
POST /3 HTTP/1.1
Authorization: Basic ZmFrZTotdXNlcg==
Host: 127.0.0.1:8999
Pragma: no-cache
Accept: */*
Content-Length: 37
Content-Type: application/x-www-form-urlencoded
fooo=mooo&pooo=clue&doo=%20%20%20++++
</protocol>
</verify>

View File

@@ -0,0 +1,35 @@
# Server-side
<reply>
<data>
</data>
</reply>
# Client-side
<client>
<server>
http
</server>
<name>
HTTP with no data in server reply
</name>
<command>
http://%HOSTIP:%HOSTPORT/want/30
</command>
</test>
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /want/30 HTTP/1.1
Host: 127.0.0.1:8999
Pragma: no-cache
Accept: */*
</protocol>
<errorcode>
52
</errorcode>
</verify>

View File

@@ -0,0 +1,41 @@
#
# Server-side
<reply>
<data>
HTTP/1.1 200 OK
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
Content-Length: 7
MooMoo
</data>
</reply>
#
# Client-side
<client>
<server>
https
</server>
<name>
simple HTTPS GET
</name>
<command>
-k https://%HOSTIP:%HTTPSPORT/300
</command>
</test>
#
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /300 HTTP/1.1
Host: 127.0.0.1:8433
Pragma: no-cache
Accept: */*
</protocol>
</verify>

View File

@@ -0,0 +1,45 @@
#
# Server-side
<reply>
<data>
HTTP/1.1 200 OK swsclose
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
Content-Type: text/html
Funny-head: yesyes
</data>
</reply>
#
# Client-side
<client>
<server>
https
</server>
<name>
HTTPS GET with user and password
</name>
<command>
-k -u fake:user https://%HOSTIP:%HTTPSPORT/301
</command>
</test>
#
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /301 HTTP/1.1
Authorization: Basic ZmFrZTp1c2Vy
Host: 127.0.0.1:8433
Pragma: no-cache
Accept: */*
</protocol>
<data>
[insert full protocol verifiction dump here]
</data>
</verify>

View File

@@ -0,0 +1,35 @@
#
# Server-side
<reply>
MOOOOO
</reply>
#
# Client-side
<client>
<server>
https
</server>
<name>
HTTPS GET over HTTP proxy fails
</name>
<command>
-k -U fake:user -x %HOSTIP:%HOSTPORT https://bad.fakeurl-to.test/slash/302
</command>
</test>
#
# Verify data after the test has been "shot"
<verify>
<errorcode>
56
</errorcode>
<strip>
^User-Agent:.*
</strip>
<protocol>
</protocol>
<data>
[insert full protocol verifiction dump here]
</data>
</verify>

View File

@@ -0,0 +1,43 @@
# Server-side
<reply>
<data>
HTTP/1.1 200 OK
Date: Thu, 09 Nov 2010 14:49:00 GMT
Connection: close
<html>result</html>
</data>
<postcmd>
wait 10
</postcmd>
</reply>
# Client-side
<client>
<server>
https
</server>
<name>
HTTPS with 2 secs timeout
</name>
<command>
http://%HOSTIP:%HOSTPORT/want/303 -m 2
</command>
</test>
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /want/303 HTTP/1.1
Host: 127.0.0.1:8999
Pragma: no-cache
Accept: */*
</protocol>
<errorcode>
28
</errorcode>
</verify>

View File

@@ -0,0 +1,61 @@
# Server-side
<reply>
<data>
HTTP/1.1 200 OK
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
Content-Length: 10
blablabla
</data>
</reply>
# Client-side
<client>
<server>
https
</server>
<name>
HTTPS multipart formpost
</name>
<command>
-k https://%HOSTIP:%HTTPSPORT/we/want/304 -F name=daniel -F tool=curl -F file=@log/test304.txt
</command>
# We create this file before the command is invoked!
<file name="log/test304.txt">
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
</file>
</test>
# Verify data after the test has been "shot"
<verify>
<strip>
^(User-Agent:|Content-Type: multipart/form-data;|------).*
</strip>
<protocol>
POST /we/want/304 HTTP/1.1
User-Agent: curl/7.10.4 (i686-pc-linux-gnu) libcurl/7.10.4 OpenSSL/0.9.7a ipv6 zlib/1.1.3
Host: 127.0.0.1:8433
Pragma: no-cache
Accept: */*
Content-Length: 1390
Expect: 100-continue
Content-Type: multipart/form-data; boundary=----------------------------c3b2ef7f0bb8
------------------------------c3b2ef7f0bb8
Content-Disposition: form-data; name="name"
daniel
------------------------------c3b2ef7f0bb8
Content-Disposition: form-data; name="tool"
curl
------------------------------c3b2ef7f0bb8
Content-Disposition: form-data; name="file"; filename="log/test304.txt"
Content-Type: text/plain
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
------------------------------c3b2ef7f0bb8--
</protocol>
</verify>

View File

@@ -0,0 +1,30 @@
# Server-side
<reply>
<data>
</data>
</reply>
# Client-side
<client>
<server>
https
</server>
<name>
insecure HTTPS without permission
</name>
<command>
https://%HOSTIP:%HOSTPORT/want/305 --cacert moooo
</command>
</test>
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
</protocol>
<errorcode>
60
</errorcode>
</verify>

View File

@@ -0,0 +1,54 @@
#
# Server-side
<reply>
<data>
No headers at all, just data swsclose
Let's get
a little
so that
we
have
some
test
data to
verify
</data>
</reply>
#
# Client-side
<client>
<server>
https
</server>
<name>
HTTPS GET, receive no headers only data!
</name>
<command>
-k https://%HOSTIP:%HTTPSPORT/306
</command>
</test>
#
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /306 HTTP/1.1
Host: 127.0.0.1:8433
Pragma: no-cache
Accept: */*
</protocol>
</verify>

View File

@@ -0,0 +1,59 @@
# Server-side
<reply>
<data>
HTTP/1.1 200 OK
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
Content-Length: 4
Content-Type: text/html
Funny-head: yesyes
Set-Cookie: foobar=name; domain=anything.com; path=/ ; secure
Set-Cookie:ismatch=this ; domain=127.0.0.1; path=/silly/
Set-Cookie: partmatch=present; domain=127.0.0.1 ; path=/;
Set-Cookie:eat=this; domain=moo.foo.moo;
Set-Cookie: eat=this-too; domain=.foo.moo;
Set-Cookie: nodomainnovalue
Set-Cookie: nodomain=value; expires=Tue Feb 1 11:56:27 MET 2014
Set-Cookie: novalue; domain=reallysilly
Set-Cookie: test=yes; domain=foo.com; expires=Tue Feb 1 11:56:27 MET 2007
Set-Cookie: test2=yes; domain=se; expires=Tue Feb 1 11:56:27 MET 2007
boo
</data>
</reply>
# Client-side
<client>
<server>
http
</server>
<name>
HTTP with weirdly formatted cookies and cookiejar storage
</name>
<command>
http://%HOSTIP:%HOSTPORT/we/want/31 -b none -c log/jar31.txt
</command>
</test>
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /we/want/31 HTTP/1.1
Host: 127.0.0.1:8999
Pragma: no-cache
Accept: */*
</protocol>
<file name="log/jar31.txt">
# Netscape HTTP Cookie File
# http://www.netscape.com/newsref/std/cookie_spec.html
# This file was generated by libcurl! Edit at your own risk.
.127.0.0.1 TRUE /silly/ FALSE 0 ismatch this
.127.0.0.1 TRUE / FALSE 0 partmatch present
127.0.0.1 FALSE /we/want/ FALSE 1391252187 nodomain value
</file>
</verify>

View File

@@ -0,0 +1,48 @@
#
# 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 with -d and -G
</name>
<command>
-d "foo=moo&moo=poo" http://%HOSTIP:%HOSTPORT/32 -G
</command>
</client>
#
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /32?foo=moo&moo=poo HTTP/1.1
User-Agent: curl/7.9.5 (i686-pc-linux-gnu) libcurl 7.9.5-cvs (OpenSSL 0.9.5) (ipv6 enabled)
Host: 127.0.0.1:8999
Pragma: no-cache
Accept: */*
</protocol>
</verify>

View File

@@ -0,0 +1,55 @@
# Server-side
<reply>
<data>
HTTP/1.1 OK swsclose
</data>
</reply>
# Client-side
<client>
<server>
http
</server>
<name>
HTTP PUT with resume
</name>
<file name="log/test33.txt">
012345678
012345678
012345678
012345678
012345678
012345678
012345678
012345678
012345678
012345678
</file>
<command>
http://%HOSTIP:%HOSTPORT/33 -Tlog/test33.txt -C 50
</command>
</test>
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
PUT /33 HTTP/1.1
Content-Range: bytes 50-99/100
User-Agent: curl/7.6 (sparc-sun-solaris2.7) libcurl 7.6-pre4 (SSL 0.9.6) (krb4 enabled)
Host: 127.0.0.1:8999
Pragma: no-cache
Accept: */*
Content-Length: 50
Expect: 100-continue
012345678
012345678
012345678
012345678
012345678
</protocol>
</verify>

View File

@@ -0,0 +1,58 @@
#
# Server-side
<reply>
<data>
HTTP/1.1 200 funky chunky!
Server: fakeit/0.9 fakeitbad/1.0
Transfer-Encoding: chunked
Connection: mooo
40
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
30
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
21;heresatest=moooo
cccccccccccccccccccccccccccccccc
0
muuu
</data>
<datacheck>
HTTP/1.1 200 funky chunky!
Server: fakeit/0.9 fakeitbad/1.0
Transfer-Encoding: chunked
Connection: mooo
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcccccccccccccccccccccccccccccccc
</datacheck>
</reply>
#
# Client-side
<client>
<server>
http
</server>
<name>
HTTP GET with chunked Transfer-Encoding
</name>
<command>
http://%HOSTIP:%HOSTPORT/34
</command>
</test>
#
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /34 HTTP/1.1
Host: 127.0.0.1:8999
Pragma: no-cache
Accept: */*
</protocol>
</verify>

View File

@@ -0,0 +1,57 @@
#
# Server-side
<reply>
<data>
HTTP/1.1 200 funky chunky!
Server: fakeit/0.9 fakeitbad/1.0
Transfer-Encoding: chunked
Connection: mooo
2
a
ILLEGAL
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
</data>
<datacheck>
HTTP/1.1 200 funky chunky!
Server: fakeit/0.9 fakeitbad/1.0
Transfer-Encoding: chunked
Connection: mooo
a
</datacheck>
</reply>
#
# Client-side
<client>
<server>
http
</server>
<name>
HTTP GET with bad chunked Transfer-Encoding
</name>
<command>
http://%HOSTIP:%HOSTPORT/36
</command>
</test>
#
# Verify data after the test has been "shot"
<verify>
<errorcode>
56
</errocode>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /36 HTTP/1.1
Host: 127.0.0.1:8999
Pragma: no-cache
Accept: */*
</protocol>
</verify>

View File

@@ -0,0 +1,39 @@
#
# Server-side
<reply>
<data>
</data>
</reply>
#
# Client-side
<client>
<server>
http
</server>
<name>
HTTP GET with nothing returned from server
</name>
<command>
http://%HOSTIP:%HOSTPORT/37
</command>
</test>
#
# Verify data after the test has been "shot"
<verify>
<errorcode>
52
</errocode>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /37 HTTP/1.1
Host: 127.0.0.1:8999
Pragma: no-cache
Accept: */*
</protocol>
</verify>

View File

@@ -0,0 +1,52 @@
# Server-side
<reply>
<data nocheck=1>
HTTP/1.0 200 Mooo
Date: Mon, 13 Nov 2000 13:41:09 GMT
Server: myown/1.0
Connection: close
todelooooo lalalala yada yada, we know nothing about ranges ;-)
</data>
</reply>
# Client-side
<client>
<server>
http
</server>
<name>
HTTP resume request without server supporting it
</name>
<command option="no-output">
http://%HOSTIP:%HOSTPORT/want/38 -C - -i -o log/fewl.txt
</command>
<file name="log/fewl.txt">
This text is here to simulate a partly downloaded file to resume
download on.
</file>
</client>
# Verify data after the test has been "shot"
<verify>
<errorcode>
33
</errorcode>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /want/38 HTTP/1.1
Range: bytes=78-
Host: 127.0.0.1:8999
Pragma: no-cache
Accept: */*
</protocol>
# the download target file must remain untouched
<file name="log/fewl.txt">
This text is here to simulate a partly downloaded file to resume
download on.
</file>
</verify>

View File

@@ -0,0 +1,76 @@
# Server-side
<reply>
<data>
HTTP/1.1 200 OK
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
Content-Length: 10
blablabla
</data>
</reply>
# Client-side
<client>
<server>
http
</server>
<name>
HTTP RFC1867-type formposting with filename= and type=
</name>
<command>
http://%HOSTIP:%HOSTPORT/we/want/39 -F name=daniel -F tool=curl -F "file=@log/test39.txt;filename=fakerfile;type=moo/foobar" -F file2=@log/test39.txt
</command>
# We create this file before the command is invoked!
<file name="log/test39.txt">
foo bar
This is a bar foo
bar
foo
</file>
</test>
# Verify data after the test has been "shot"
<verify>
<strip>
^(User-Agent:|Content-Type: multipart/form-data;|-------).*
</strip>
<protocol>
POST /we/want/39 HTTP/1.1
User-Agent: curl/7.10.4 (i686-pc-linux-gnu) libcurl/7.10.4 OpenSSL/0.9.7a ipv6 zlib/1.1.3
Host: 127.0.0.1:8999
Pragma: no-cache
Accept: */*
Content-Length: 598
Expect: 100-continue
Content-Type: multipart/form-data; boundary=----------------------------24e78000bd32
------------------------------24e78000bd32
Content-Disposition: form-data; name="name"
daniel
------------------------------24e78000bd32
Content-Disposition: form-data; name="tool"
curl
------------------------------24e78000bd32
Content-Disposition: form-data; name="file"; filename="fakerfile"
Content-Type: moo/foobar
foo bar
This is a bar foo
bar
foo
------------------------------24e78000bd32
Content-Disposition: form-data; name="file2"; filename="log/test39.txt"
Content-Type: text/plain
foo bar
This is a bar foo
bar
foo
------------------------------24e78000bd32--
</protocol>
</verify>

42
neo/curl/tests/data/test4 Normal file
View File

@@ -0,0 +1,42 @@
#
# Server-side
<reply name="1">
<data>
HTTP/1.1 200 OK
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>
<name>
Replaced internal and added custom HTTP headers
</name>
<command>
-H "extra-header: here" -H "Accept: replaced" http://%HOSTIP:%HOSTPORT/4
</command>
</test>
#
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /4 HTTP/1.1
Host: 127.0.0.1:8999
Pragma: no-cache
extra-header: here
Accept: replaced
</protocol>
</verify>

Some files were not shown because too many files have changed in this diff Show More