From c14fa2c935555ec9489678cc7a0f3e38ce801539 Mon Sep 17 00:00:00 2001
From: Daniel Stenberg <daniel@haxx.se>
Date: Thu, 19 Feb 2004 12:56:45 +0000
Subject: [PATCH] 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

---
 testcurl.sh | 118 ++++++++++++++++++++++++++++------------------------
 1 file changed, 64 insertions(+), 54 deletions(-)

diff --git a/testcurl.sh b/testcurl.sh
index 4cbe95d55d..61a23690c3 100755
--- a/testcurl.sh
+++ b/testcurl.sh
@@ -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"
-- 
GitLab