testcurl(1) — Linux manual page

NAME | SYNOPSIS | DESCRIPTION | OPTIONS | INITIAL SETUP | CRONTAB EXAMPLE | SEE ALSO | COLOPHON

testcurl.pl(1)           General Commands Manual           testcurl.pl(1)

NAME         top

       testcurl.pl - (automatically) test curl

SYNOPSIS         top

       testcurl.pl [options] [dir] > output

DESCRIPTION         top

       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
       curl-autocompile@haxx.se 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.

OPTIONS         top

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

INITIAL SETUP         top

       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.

CRONTAB EXAMPLE         top

       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 curl-autocompile@haxx.se"
       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

SEE ALSO         top

       runtests.pl

COLOPHON         top

       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
       man-pages@man7.org

testcurl                        2025-08-09                 testcurl.pl(1)