|
NAME | SYNOPSIS | DESCRIPTION | OPTIONS | INITIAL SETUP | CRONTAB EXAMPLE | SEE ALSO | COLOPHON |
|
|
|
testcurl.pl(1) General Commands Manual testcurl.pl(1)
testcurl.pl - (automatically) test curl
testcurl.pl [options] [dir] > output
testcurl is the master script to use for automatic distributed
testing of curl from git or daily snapshots. It is written for the
purpose of being run from a crontab job or similar at a regular
interval. The output is suitable to be mailed to
[email protected] to be dealt with automatically (make sure
the subject includes the word "autobuild" as the mail gets
silently discarded otherwise). The most current build status (with
a reasonable backlog) is published on the curl site, at
https://curl.se/dev/builds.html
options may be omitted. See --setup for what happens then.
dir is a curl source directory, possibly a daily snapshot one.
Using this makes testcurl skip the autoreconf stage and thus it
removes the dependency on automake, autoconf, libtool, GNU m4 and
possibly a few other things.
testcurl runs autoreconf (or similar), configure, builds curl and
libcurl in a separate build directory and then runs make test to
test the fresh build.
--configure=[options]
Configure options passed to configure.
--crosscompile
This is a cross-compile. Makes testcurl skip a few things.
--desc=[desc]
Description of your test system. Displayed on the build
summary page on the website.
--email=[email]
Set email address to report as. Displayed in the build logs
on the site.
--mktarball=[command]
Generic command to run after completed test.
--name=[name]
Set name to report as. Displayed in the build summary on
the site.
--nobuildconf
Do not run autoreconf. Useful when many builds use the same
source tree, as then only one need to do this. Also, if
multiple processes run tests simultaneously on the same
source tree (like several hosts on a NFS mounted
directory), simultaneous autoreconf invokes may cause
problems. (Added in 7.14.1)
--nogitpull
Do not update from git even though it is a git tree. Useful
to still be able to test even though your network is down,
or similar.
--runtestopts=[options]
Options that is passed to the runtests script. Useful for
disabling valgrind by force, and similar.
--setup=[filename]
filename to read setup from (deprecated). The old style of
providing info. If info is missing when testcurl is
started, it prompts you and then stores the info in a
'setup' file, which it looks for on each invoke. Use
--name, --email, --configure and --desc instead.
--target=[your os]
Specify your target environment. Recognized strings include
vc, mingw32, and borland.
First, make a checkout from git (or you write a script that
downloads daily snapshots automatically):
$ mkdir curl-testing
$ cd curl-testing
$ git clone https://github.com/curl/curl.git
With the curl sources checked out, or downloaded, you can start
testing right away. If you want to use testcurl without command
line arguments and to have it store and remember the config in its
'setup' file, then start it manually now and fill in the answers
to the questions it prompts you for:
$ ./curl/tests/testcurl
Now you are ready to go. If you let the script run, it performs a
full cycle and spit out lots of output. Mail us that output as
described above.
The crontab could include something like this:
# autobuild curl:
0 4 * * * cd curl-testing && ./testit.sh
Where testit.sh is a shell script that could look similar to this:
mail="mail -s autobuild [email protected]"
name="--name=whoami"
email="--email=iamme@nowhere"
desc='"--desc=supermachine Turbo 2000"'
testprog="perl ./curl/tests/testcurl.pl $name $email $desc"
opts1="--configure=--enable-debug"
opts2="--configure=--enable-ipv6"
# run first test
$testprog $opts1 | $mail
# run second test
$testprog $opts2 | $mail
runtests.pl
This page is part of the curl (Command line tool and library for
transferring data with URLs) project. Information about the
project can be found at ⟨https://curl.haxx.se/⟩. If you have a
bug report for this manual page, see
⟨https://curl.haxx.se/docs/bugs.html⟩. This page was obtained
from the project's upstream Git repository
⟨https://github.com/curl/curl.git⟩ on 2025-08-11. (At that time,
the date of the most recent commit that was found in the
repository was 2025-08-10.) If you discover any rendering
problems in this HTML version of the page, or you believe there is
a better or more up-to-date source for the page, or you have
corrections or improvements to the information in this COLOPHON
(which is not part of the original manual page), send a mail to
[email protected]
testcurl 2025-08-09 testcurl.pl(1)