From 821a23535b6cef515bd06a815b2b5476587367da Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Mon, 21 Jun 2004 14:56:48 +0000 Subject: [PATCH] This is the old script for testing curl, now use tests/testcurl.pl instead. It is more portable. --- testcurl.sh | 304 ---------------------------------------------------- 1 file changed, 304 deletions(-) delete mode 100755 testcurl.sh diff --git a/testcurl.sh b/testcurl.sh deleted file mode 100755 index 194af9f50..000000000 --- a/testcurl.sh +++ /dev/null @@ -1,304 +0,0 @@ -#!/bin/sh -#*************************************************************************** -# _ _ ____ _ -# Project ___| | | | _ \| | -# / __| | | | |_) | | -# | (__| |_| | _ <| |___ -# \___|\___/|_| \_\_____| -# -# Copyright (C) 1998 - 2004, Daniel Stenberg, , et al. -# -# This software is licensed as described in the file COPYING, which -# you should have received as part of this distribution. The terms -# are also available at http://curl.haxx.se/docs/copyright.html. -# -# You may opt to use, copy, modify, merge, publish, distribute and/or sell -# copies of the Software, and permit persons to whom the Software is -# furnished to do so, under the terms of the COPYING file. -# -# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY -# KIND, either express or implied. -# -# $Id$ -########################################################################### - -########################### -# 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 automatically. The most -# current build status (with a resonable backlog) will be published on the -# curl site, at http://curl.haxx.se/auto/ - -# USAGE: -# testcurl.sh [curl-daily-name] > output - -# Updated: -# v1.1 6-Nov-03 - to take an optional parameter, the name of a daily-build -# directory. If present, build from that directory, otherwise -# perform a normal CVS build. - -# version of this script -version='$Revision$' -fixed=0 - -# Determine if we're running from CVS or a canned copy of curl -if [ "$#" -ge "1" -a "$1" ]; then - CURLDIR=$1 - CVS=0 -else - CURLDIR="curl" - CVS=1 -fi - -LANG="C" - -export LANG - -log() { - text=$1 - if test -n "$text"; then - echo "testcurl: $text" - fi -} - -die(){ - text=$1 - log "$text" - cd $pwd # cd back to the original root dir - - if test -n "$pwd/$build"; then - # we have a build directory name, remove the dir - log "removing the $build dir" - rm -rf "$pwd/$build" - fi - if test -r "$buildlog"; then - # we have a build log output file left, remove it - log "removing the $buildlogname file" - rm -rf "$buildlog" - fi - log "ENDING HERE" # last line logged! - exit 1 -} - -if [ -f setup ]; then - . "./setup" - infixed="$fixed" -else - infixed=0 # so that "additional args to configure" works properly first time... -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 description" - read desc - fixed="3" -fi - -if [ -z "$confopts" ]; then - if [ $infixed -lt 4 ]; then - echo "please enter your additional arguments to configure" - echo "examples: --with-ssl --enable-debug --enable-ipv6 --with-krb4" - read confopts - fixed="4" - fi -fi - - -if [ "$fixed" -gt "0" ]; then - echo "name='$name'" > setup - echo "email='$email'" >> setup - echo "desc='$desc'" >> setup - echo "confopts='$confopts'" >> setup - echo "fixed='$fixed'" >> setup -fi - -log "STARTING HERE" # first line logged -log "NAME = $name" -log "EMAIL = $email" -log "DESC = $desc" -log "CONFOPTS = $confopts" -log "CFLAGS = $CFLAGS" -log "CC = $CC" -log "version = $version" -log "date = `date -u`" -log "testscript = obsolete shell version, use tests/testcurl.pl instead!" - -# 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 "$CURLDIR" ]; then - if [ $CVS -eq 1 -a -d $CURLDIR/CVS ]; then - log "curl is verified to be a fine source dir" - # remove the generated sources to force them to be re-generated each - # time we run this test - rm -f $CURLDIR/lib/getdate.c - rm -f $CURLDIR/src/hugehelp.c - elif [ $CVS -eq 0 -a -f $CURLDIR/testcurl.sh ]; then - log "curl is verified to be a fine daily source dir" - else - die "curl is not a daily source dir or checked out from CVS!" - fi -fi -build="build-$$" -buildlogname="buildlog-$$" -buildlog="$pwd/$buildlogname" - -# remove any previous left-overs -rm -rf build-* -rm -rf buildlog-* - -# this is to remove old build logs that ended up in the wrong dir -rm -rf $CURLDIR/buildlog-* - -# create a dir to build in -mkdir $build - -if [ -d $build ]; then - log "build dir $build was created fine" -else - die "failed to create dir $build" -fi - -# get in the curl source tree root -cd $CURLDIR - -# Do the CVS thing, or not... -if [ $CVS -eq 1 ]; then - - # this is a temporary fix to make things work again, remove later - log "remove ares/aclocal.m4" - rm -f ares/aclocal.m4 - - log "update from CVS" - - cvsup() { - # update quietly to the latest CVS - log "run cvs up" - cvs -Q up -dP 2>&1 - - cvsstat=$? - - # return (1 - RETURNVALUE) so that errors return 0 while goodness - # returns 1 - return `expr 1 - $cvsstat` - } - - att="0" - while cvsup; do - att=`expr $att + 1` - log "failed CVS update attempt number $att." - if [ $att -gt 10 ]; then - cvsstat="111" - break # get out of the loop - fi - sleep 5 - done - - if [ "$cvsstat" -ne "0" ]; then - die "failed to update from CVS ($cvsstat), exiting" - fi - - # remove possible left-overs from the past - rm -f configure - rm -rf autom4te.cache - - # generate the build files - log "invoke buildconf, but filter off the silly aclocal warnings" - ./buildconf 2>&1 | grep -v "warning: underquoted definition of" | tee $buildlog - - if { grep "^buildconf: OK" $buildlog >/dev/null 2>&1; } then - log "buildconf was successful" - else - die "buildconf was NOT successful" - fi - -fi - -if [ -f configure ]; then - log "configure created" -else - die "no configure created" -fi - -# change to build dir -cd "../$build" - -# run configure script -../$CURLDIR/configure $confopts 2>&1 - -if [ -f lib/Makefile ]; then - log "configure seems to have finished fine" -else - die "configure didn't work" -fi - -log "display lib/config.h" -grep "^ *#" lib/config.h - -log "display src/config.h" -grep "^ *#" src/config.h - -if { grep "define USE_ARES" lib/config.h; } then - log "setup to build ares" - - log "build ares" - cd ares - make 2>&1 | sed -e "s:$pwd::g" - - if [ -f libcares.a ]; then - log "ares is now built successfully" - else - log "ares build failed" - fi - - # cd back to the curl build dir - cd .. -fi - -log "run make" -make -i 2>&1 | sed -e "s:$pwd::g" - -if [ -f src/curl ]; then - log "src/curl was created fine" -else - die "src/curl was not created" -fi - -log "display curl --version output" - -./src/curl --version - -log "run make test-full" -make test-full 2>&1 | sed -e "s:$pwd::g" | tee $buildlog - -if { grep "^TEST" $buildlog >/dev/null 2>&1; } then - log "tests were run" -else - die "test suite failure" -fi - -if { grep "^TESTFAIL:" $buildlog >/dev/null 2>&1; } then - log "the tests were not successful" -else - log "the tests were successful!" -fi - -# die to cleanup -die "ending nicely"