]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Index: nightly/bin/nightly
authorNicholas Nethercote <njn@valgrind.org>
Wed, 7 Jan 2009 06:19:03 +0000 (06:19 +0000)
committerNicholas Nethercote <njn@valgrind.org>
Wed, 7 Jan 2009 06:19:03 +0000 (06:19 +0000)
    - Check that it is passed two arguments, abort if not (avoids some
      possibly confusing behaviour).
    - Remove various uses of $ABT_TOP in paths; it's not necessary because
      the first thing the script does is 'cd' to $ABT_TOP.  Furthemore, some
      paths lacked the $ABT_TOP which was confusing.
    - Gather up all the diffs from the tests, grab the first 100 lines (or
      less, if shorter) of each, and concatenate into a file, the name of
      which is passed to the <tag>.sendmail script so it can be attached.

Index: nightly/README.txt
    Explain the new 3rd argument.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8915

nightly/README.txt
nightly/bin/nightly

index 76ab6ca30812a6e4f0279af46002ab1cb63bf478..b3817fe38edfc414ec8d731a793a19698c884122 100644 (file)
@@ -9,7 +9,7 @@ existing tree.
 
 To use, choose a tag, probably a machine name, and run
 
-   bin/nightly  /path/to/valgrind/nightly  <tag>
+   bin/nightly  /path/to/valgrind/nightly/  <tag>
 
 and supply the following two config files:
 
@@ -29,4 +29,7 @@ and supply the following two config files:
 - conf/<tag>.sendmail:  this should be a script that sends an email to the
   desired recipient (eg. the valgrind-developers list).  It must take two
   command line arguments.  The first is the email subject line, the second
-  is the email's body.
+  is the name of the file containing the email's body (showing the tests
+  that failed, and the difference between now and 24 hours ago), the third
+  is the name of the file containing all the diffs (which can be made into
+  an attachment, for example).
index cc6c49be939864dbe62713dbf13aa76d35582754..42152230e71501c673924a255565810b26a05024 100755 (executable)
@@ -39,6 +39,12 @@ runcmd () {
 #----------------------------------------------------------------------------
 # Startup
 #----------------------------------------------------------------------------
+# Must have at two arguments
+if [ $# -ne 2 ] ; then
+    echo "usage: bin/night /path/to/valgrind/nightly <tag>"
+    exit 1
+fi
+
 # Get args from command line
 ABT_TOP=$1
 ABT_MACHINE=$2
@@ -51,7 +57,8 @@ svn_new_date=`date --date=today     +%Y-%m-%dT%H:%M:%S`
 
 cd $ABT_TOP
 
-source $ABT_TOP/conf/$ABT_MACHINE.conf
+# Setup any relevant environment variables from conf/<tag>.conf.
+source conf/$ABT_MACHINE.conf
 if [ "${ABT_JOBS}" = "" ]; then
   ABT_JOBS=1
 fi
@@ -92,7 +99,7 @@ for logfile in old new ; do
    \
    runcmd $logfile \
           "Configuring valgrind             " \
-          "cd valgrind && ./autogen.sh  && ./configure --prefix=$ABT_TOP/Inst ${ABT_CONFIGURE_OPTIONS}" && \
+          "cd valgrind && ./autogen.sh  && ./configure --prefix=`pwd`/Inst ${ABT_CONFIGURE_OPTIONS}" && \
    \
    runcmd $logfile \
           "Building valgrind                " \
@@ -155,7 +162,29 @@ if [ $changed != 0 ] ; then
    echo                                                     >> final
 fi
 
-# Email the results
-$ABT_TOP/conf/$ABT_MACHINE.sendmail \
+# Gather up the diffs (at most the first 100 lines for each one) into a
+# single file.
+MAX_LINES=100
+rm -f diffs
+diff_files=`find . -name '*.diff'`
+if [ z"$diff_files" = z ] ; then
+   echo "Congratulations, all tests passed!" >> diffs
+else
+   for i in $diff_files ; do
+      echo "=================================================" >> diffs
+      echo $i                                                  >> diffs 
+      echo "=================================================" >> diffs
+      if [ `wc -l < $i` -le $MAX_LINES ] ; then
+         cat $i                                                >> diffs
+      else
+         head -$MAX_LINES $i                                   >> diffs
+         echo "<truncated beyond $MAX_LINES lines>"            >> diffs
+      fi
+   done
+fi
+
+# Use the conf/<tag>.sendmail script to email the results.
+conf/$ABT_MACHINE.sendmail \
    "$ABT_START nightly build ($ABT_MACHINE, $ABT_DETAILS)" \
-   $ABT_TOP/final
+   final \
+   diffs