<html><head>
<title>testcurl.pl man page</title>
<meta name="generator" content="roffit 0.7">
<STYLE type="text/css">
P.level0 {
 padding-left: 2em;
}

P.level1 {
 padding-left: 4em;
}

P.level2 {
 padding-left: 6em;
}

span.emphasis {
 font-style: italic;
}

span.bold {
 font-weight: bold;
}

span.manpage {
 font-weight: bold;
}

h2.nroffsh {
 background-color: #e0e0e0;
}

span.nroffip {
 font-weight: bold;
 font-size: 120%;
 font-family: monospace;
}

p.roffit {
 text-align: center;
 font-size: 80%;
}
</STYLE>
</head><body>

<p class="level0"><a name="NAME"></a><h2 class="nroffsh">NAME</h2>
<p class="level0">testcurl.pl - (automatically) test curl <a name="SYNOPSIS"></a><h2 class="nroffsh">SYNOPSIS</h2>
<p class="level0"><span Class="bold">testcurl.pl [options] [dir] &gt; output</span> <a name="DESCRIPTION"></a><h2 class="nroffsh">DESCRIPTION</h2>
<p class="level0"><span Class="emphasis">testcurl.pl</span> is the master script to use for automatic testing of curl off 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) will be published on the curl site, at <a href="http://curl.haxx.se/auto/">http://curl.haxx.se/auto/</a> 
<p class="level0"><span Class="emphasis">options</span> may be omitted. See <span Class="emphasis">--setup</span> for what happens then. 
<p class="level0"><span Class="emphasis">dir</span> is a curl source dir, possibly a daily snapshot one. Using this will make testcurl.pl skip the 'buildconf' stage and thus it removes the dependency on automake, autoconf, libtool, GNU m4 and possibly a few other things. 
<p class="level0">testcurl.pl will run 'buildconf' (or similar), run configure, build curl and libcurl in a separate build directory and then run 'make test' to test the fresh build. <a name="OPTIONS"></a><h2 class="nroffsh">OPTIONS</h2>
<p class="level0">
<p class="level0"><a name="--configureoptions"></a><span class="nroffip">--configure=[options]</span> 
<p class="level1">Configure options passed to configure. 
<p class="level0"><a name="--crosscompile"></a><span class="nroffip">--crosscompile</span> 
<p class="level1">This is a cross-compile. Makes <span Class="emphasis">testcurl.pl</span> skip a few things. 
<p class="level0"><a name="--descdesc"></a><span class="nroffip">--desc=[desc]</span> 
<p class="level1">Description of your test system. Displayed on the build summary page on the weba site. 
<p class="level0"><a name="--emailemail"></a><span class="nroffip">--email=[email]</span> 
<p class="level1">Set email address to report as. Displayed in the build logs on the site. 
<p class="level0"><a name="--mktarballcommand"></a><span class="nroffip">--mktarball=[command]</span> 
<p class="level1">Generic command to run after completed test. 
<p class="level0"><a name="--namename"></a><span class="nroffip">--name=[name]</span> 
<p class="level1">Set name to report as. Displayed in the build summary on the site. 
<p class="level0"><a name="--nobuildconf"></a><span class="nroffip">--nobuildconf</span> 
<p class="level1">Don't run buildconf. 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 dir), simultaneous buildconf invokes may cause problems. (Added in 7.14.1) 
<p class="level0"><a name="--nogitpull"></a><span class="nroffip">--nogitpull</span> 
<p class="level1">Don't 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. 
<p class="level0"><a name="--runtestoptsoptions"></a><span class="nroffip">--runtestopts=[options]</span> 
<p class="level1">Options that is passed to the runtests.pl script. Useful for disabling valgrind by force, and similar. 
<p class="level0"><a name="--setupfile"></a><span class="nroffip">--setup=[file name]</span> 
<p class="level1">File name to read setup from (deprecated). The old style of providing info. If info is missing when testcurl.pl is started, it will prompt you and then store the info in a 'setup' file, which it will look for on each invoke. Use <span Class="emphasis">--name</span>, <span Class="emphasis">--emacs</span>, <span Class="emphasis">--configure</span> and <span Class="emphasis">--desc</span> instead. 
<p class="level0"><a name="--targetyour"></a><span class="nroffip">--target=[your os]</span> 
<p class="level1">Specify your target environment. Recognized strings include 'vc', 'mingw32', 'borland' and 'netware'. <a name="INITIAL"></a><h2 class="nroffsh">INITIAL SETUP</h2>
<p class="level0">First you make a checkout from git (or you write a script that downloads daily snapshots automatically, find inspiration at <a href="http://curl.haxx.se/auto/autocurl.txt">http://curl.haxx.se/auto/autocurl.txt</a>): 
<p class="level0"><pre>
<p class="level0">&nbsp; $ mkdir daily-curl
 &nbsp; $ cd daily-curl
 &nbsp; $ git clone git://github.com/bagder/curl.git
 </pre>

<p class="level0">
<p class="level0">With the curl sources checked out, or downloaded, you can start testing right away. If you want to use <span Class="emphasis">testcurl.pl</span> 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: 
<p class="level0"><pre>
<p class="level0">&nbsp; $ ./curl/tests/testcurl.pl
 </pre>

<p class="level0">
<p class="level0">Now you are ready to go. If you let the script run, it will perform a full cycle and spit out lots of output. Mail us that output as described above. <a name="CRONTAB"></a><h2 class="nroffsh">CRONTAB EXAMPLE</h2>
<p class="level0">The crontab could include something like this: 
<p class="level0"><pre>
<p class="level0"># autobuild curl:
 0 4 * * * cd daily-curl && ./testit.sh
 </pre>

<p class="level0">
<p class="level0">Where testit.sh is a shell script that could look similar to this: 
<p class="level0"><pre>
<p class="level0">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"
 <p class="level0"># run first test
 $testprog $opts1 | $mail
 <p class="level0"># run second test
 $testprog $opts2 | $mail
 <p class="roffit">
 This HTML page was made with <a href="http://daniel.haxx.se/projects/roffit/">roffit</a>.
</body></html>
