Gunter Knauf 75dbb3189a quick hack to make it working again on Win32 - however we should consider to set some defaults depending on the compiler architecture we guess we are since it doesnt work well if we prefer building the msvc makefile with gmake instead of nmake because we found gmake first in path.... 19 years ago
..
data a4773fcbbb Toby Peterson added CURLOPT_IGNORE_CONTENT_LENGTH to the library, accessible 19 years ago
libtest 34a827bbfe Needs 'struct_stat'. Increased verbosity. 19 years ago
server e22ac39da4 detabify 19 years ago
.cvsignore f71b3676bb ignore more generated files 19 years ago
FILEFORMAT 17ea2631cd Add support for text mode on stdout tests as well, and add the mode=text 19 years ago
Makefile.am b8417be1f2 removed ftpsserver.pl 19 years ago
README 9e7657d6ed mention what ports the test suite uses 21 years ago
ftp.pm ac5635f77d added function for individual ftp slave kills 19 years ago
ftpserver.pl 72e532cb67 no more time/re-start of sockfilt, no more redirect of stdin/stdout when 19 years ago
getpart.pm 967ec296c0 fixed the attribute parser to better handle multiple ones, with or without 19 years ago
httpserver.pl dc28a9c0c1 make sure the ipv6 http server gets its pid stored in a separate file 20 years ago
httpsserver.pl 0334509754 Stop using stunnel.pm, we pass in the path from the main script instead. 21 years ago
keywords.pl 3d985688e4 sum up 19 years ago
memanalyze.pl 6508d446e1 Support realloc() on a NULL pointer properly (printf(%p) on a NULL pointer 19 years ago
runtests.1 d34f32b39e format mistake 19 years ago
runtests.pl 1e038c4bc6 valgrind version 3 renames the --logfile command line option to --log-file... 19 years ago
stunnel.pem 3a61c98b65 Peter Sylvester brought code that now allows a callback to modified the URL 21 years ago
testcurl.1 bee7b874ea added -nobuildconf 19 years ago
testcurl.pl 75dbb3189a quick hack to make it working again on Win32 - however we should consider to set some defaults depending on the compiler architecture we guess we are since it doesnt work well if we prefer building the msvc makefile with gmake instead of nmake because we found gmake first in path.... 19 years ago
valgrind.pm 160d6b26b0 Moved out the valgrind report parser to valgrind.pm, to make it easier to 20 years ago

README

_ _ ____ _
___| | | | _ \| |
/ __| | | | |_) | |
| (__| |_| | _ <| |___
\___|\___/|_| \_\_____|

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