diff options
-rwxr-xr-x | testcurl.sh | 139 |
1 files changed, 139 insertions, 0 deletions
diff --git a/testcurl.sh b/testcurl.sh new file mode 100755 index 000000000..a5ecd1775 --- /dev/null +++ b/testcurl.sh @@ -0,0 +1,139 @@ +#!/bin/sh +########################### +# What is This Script? +########################### + +# testcurl.sh is the master script to use for automatic testing of CVS-curl. +# This is written for the purpose of being run from a crontab job or similar +# at a regular interval. The output will be suitable to be mailed automaticly +# to "curl-autocompile@haxx.se" to be dealt with automaticly. The most +# current build status (with a resonable backlog) will be published on the +# curl site, at http://curl.haxx.se/ + +# USAGE: +# testcurl.sh [configure options] > output + +# version of this script +version=1 +fixed=0 + +die(){ + echo "testcurl: ENDING HERE" + exit 1 +} + +if [ -f setup ]; then + . "./setup" +fi + +if [ -z "$name" ]; then + echo "please enter your name" + read name + fixed="1" +fi + +if [ -z "$email" ]; then + echo "please enter your contact email address" + read email + fixed="2" +fi + +if [ -z "$desc" ]; then + echo "please enter a one line system desrciption" + read desc + fixed="3" +fi + + +if [ "$fixed" -gt "0" ]; then + echo "name='$name'" > setup + echo "email='$email'" >> setup + echo "desc='$desc'" >> setup +fi + +echo "testcurl: STARTING HERE" +echo "testcurl: NAME = $name" +echo "testcurl: EMAIL = $email" +echo "testcurl: DESC = $desc" +echo "testcurl: version = $version" +echo "testcurl: confopts = $1" +echo "testcurl: date = `date -u`" + +# Make $pwd to become the path without newline. We'll use that in order to cut +# off that path from all possible logs and error messages etc. +ipwd=`pwd` +pwd=`echo $ipwd | sed -e 's/$//g'` + +if [ -d curl -a -d curl/CVS ]; then + echo "testcurl: curl is verified to be a fine source dir" +else + echo "testcurl: curl is not a source dir checked out from CVS!" + die +fi + +# remove any previous left-overs +rm -rf build + +# create a dir to build in +mkdir build + +# get in the curl source tree root +cd curl + +echo "testcurl: update from CVS" +# update quietly to the latest CVS +cvs -Q up -dP 2>&1 + +# remove possible left-overs from the past +rm -f configure +rm -rf autom4te.cache + +# generate the build files +./buildconf 2>&1 + +if [ -f configure ]; then + echo "testcurl: configure created" +else + echo "testcurl: no configure created" + die +fi + +# change to build dir +cd ../build + +# run configure script +../curl/configure $1 2>&1 + +if [ -f lib/Makefile ]; then + echo "testcurl: configure seems to have finished fine" +else + echo "testcurl: configure didn't work" + die +fi + +echo "testcurl: now run make" +make 2>&1 | sed -e "s:$pwd::g" + +if [ -f src/curl ]; then + echo "testcurl: src/curl was created fine" +else + echo "testcurl: src/curl was not created" + die +fi + +echo "testcurl: now run make test" +make test 2>&1 | sed -e "s:$pwd::g" | tee build.log + +if { grep "^TESTFAIL:" build.log; } then + echo "testcurl: the tests were not successful" +else + echo "testcurl: the tests were successful!" +fi + +# get out of dir +cd .. + +# delete build dir +rm -rf build + +die |