Skip to content
Snippets Groups Projects
Commit c14fa2c9 authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

use a die and a log function to die and log texts

better detect test suite failures
remove the buildlog at exit
make a random buildlog file name, now in the same dir where the build dir
is created
checks if the ares build succeeded
parent 6ca7af34
No related branches found
No related tags found
No related merge requests found
......@@ -36,16 +36,28 @@ LANG="C"
export LANG
log() {
text=$1
if test -n "$text"; then
echo "testcurl: $text"
fi
}
die(){
echo "testcurl: ENDING HERE"
text=$1
log "$text"
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 "$pwd/build.log"; then
if test -r "$pwd/$buildlog"; then
# we have a build log output file left, remove it
rm -rf "$pwd/build.log"
log "removing the $buildlog file"
rm -rf "$buildlog"
fi
log "ENDING HERE" # last line logged!
exit 1
}
......@@ -92,13 +104,13 @@ if [ "$fixed" -gt "0" ]; then
echo "fixed='$fixed'" >> setup
fi
echo "testcurl: STARTING HERE"
echo "testcurl: NAME = $name"
echo "testcurl: EMAIL = $email"
echo "testcurl: DESC = $desc"
echo "testcurl: CONFOPTS = $confopts"
echo "testcurl: version = $version"
echo "testcurl: date = `date -u`"
log "STARTING HERE" # first line logged
log "NAME = $name"
log "EMAIL = $email"
log "DESC = $desc"
log "CONFOPTS = $confopts"
log "version = $version"
log "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.
......@@ -107,15 +119,15 @@ pwd=`echo $ipwd | sed -e 's/$//g'`
if [ -d "$CURLDIR" ]; then
if [ $CVS -eq 1 -a -d $CURLDIR/CVS ]; then
echo "testcurl: curl is verified to be a fine source dir"
log "curl is verified to be a fine source dir"
elif [ $CVS -eq 0 -a -f $CURLDIR/testcurl.sh ]; then
echo "testcurl: curl is verified to be a fine daily source dir"
log "curl is verified to be a fine daily source dir"
else
echo "testcurl: curl is not a daily source dir or checked out from CVS!"
die
die "curl is not a daily source dir or checked out from CVS!"
fi
fi
build="build-$$"
buildlog="buildlog-$$"
# remove any previous left-overs
rm -rf build-*
......@@ -124,10 +136,9 @@ rm -rf build-*
mkdir $build
if [ -d $build ]; then
echo "testcurl: build dir $build was created fine"
log "build dir $build was created fine"
else
echo "testcurl: failed to create dir $build"
die
die "failed to create dir $build"
fi
# get in the curl source tree root
......@@ -135,11 +146,11 @@ cd $CURLDIR
# Do the CVS thing, or not...
if [ $CVS -eq 1 ]; then
echo "testcurl: update from CVS"
log "update from CVS"
cvsup() {
# update quietly to the latest CVS
echo "testcurl: run cvs up"
log "run cvs up"
cvs -Q up -dP 2>&1
cvsstat=$?
......@@ -152,7 +163,7 @@ if [ $CVS -eq 1 ]; then
att="0"
while cvsup; do
att=`expr $att + 1`
echo "testcurl: failed CVS update attempt number $att."
log "failed CVS update attempt number $att."
if [ $att -gt 10 ]; then
cvsstat="111"
break # get out of the loop
......@@ -160,11 +171,8 @@ if [ $CVS -eq 1 ]; then
sleep 5
done
echo "testcurl: cvs returned: $cvsstat"
if [ "$cvsstat" -ne "0" ]; then
echo "testcurl: failed to update from CVS, exiting"
die
die "failed to update from CVS ($cvsstat), exiting"
fi
# remove possible left-overs from the past
......@@ -172,22 +180,20 @@ if [ $CVS -eq 1 ]; then
rm -rf autom4te.cache
# generate the build files
./buildconf 2>&1 | tee build.log
./buildconf 2>&1 | tee $buildlog
if { grep "^buildconf: OK" build.log >/dev/null 2>&1; } then
echo "testcurl: buildconf was successful"
if { grep "^buildconf: OK" $buildlog >/dev/null 2>&1; } then
log "buildconf was successful"
else
echo "testcurl: buildconf was NOT successful"
die
die "buildconf was NOT successful"
fi
fi
if [ -f configure ]; then
echo "testcurl: configure created"
log "configure created"
else
echo "testcurl: no configure created"
die
die "no configure created"
fi
# change to build dir
......@@ -197,50 +203,54 @@ cd "../$build"
../$CURLDIR/configure $confopts 2>&1
if [ -f lib/Makefile ]; then
echo "testcurl: configure seems to have finished fine"
log "configure seems to have finished fine"
else
echo "testcurl: configure didn't work"
die
die "configure didn't work"
fi
echo "testcurl: display lib/config.h"
log "display lib/config.h"
grep "^ *#" lib/config.h
if { grep "define USE_ARES" lib/config.h; } then
echo "testcurl: setup to build ares"
log "setup to build ares"
echo "testcurl: build ares"
log "build ares"
cd ares
make 2>&1 | sed -e "s:$pwd::g"
echo "testcurl: ares is now built"
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
echo "testcurl: now run make"
log "run make"
make -i 2>&1 | sed -e "s:$pwd::g"
if [ -f src/curl ]; then
echo "testcurl: src/curl was created fine"
log "src/curl was created fine"
else
echo "testcurl: src/curl was not created"
die
die "src/curl was not created"
fi
echo "testcurl: now run make test-full"
make test-full 2>&1 | sed -e "s:$pwd::g" | tee build.log
log "run make test-full"
make test-full 2>&1 | sed -e "s:$pwd::g" | tee $buildlog
if { grep "^TESTFAIL:" build.log; } then
echo "testcurl: the tests were not successful"
if { grep "^TEST" $buildlog >/dev/null 2>&1; } then
log "tests were run"
else
echo "testcurl: the tests were successful!"
die "test suite failure"
fi
# get out of dir
cd ..
# delete build dir
rm -rf "$build"
if { grep "^TESTFAIL:" $buildlog >/dev/null 2>&1; } then
log "the tests were not successful"
else
log "the tests were successful!"
fi
die
# die to cleanup
die "ending nicely"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment