Admin/isatest-makeall
author wenzelm
Fri Feb 03 23:12:28 2006 +0100 (2006-02-03 ago)
changeset 18921 f47c46d7d654
parent 17483 c6005bfc1630
permissions -rwxr-xr-x
canonical member/insert/merge;
     1 #!/usr/bin/env bash
     2 #
     3 # $Id$
     4 # Author: Gerwin Klein, TU Muenchen
     5 #
     6 # DESCRIPTION: Run isatool makeall from specified distribution and settings.
     7 
     8 ## global settings
     9 . ~/admin/isatest-settings
    10 
    11 # max time until test is aborted (in sec)
    12 MAXTIME=28800
    13 
    14 ## diagnostics
    15 
    16 PRG="$(basename "$0")"
    17 
    18 function usage()
    19 {
    20   echo
    21   echo "Usage: $PRG settings1 [settings2 ...]"
    22   echo
    23   echo "  Runs isatool makeall for specified settings."
    24   echo "  Leaves messages in ${ERRORLOG} and ${LOGPREFIX} if it fails."
    25   echo
    26   exit 1
    27 }
    28 
    29 function fail()
    30 {
    31   echo "$1" >&2
    32   echo "$(date) $HOSTNAME $PRG: FAILED, $1" >> $MASTERLOG
    33   exit 2
    34 }
    35 
    36 ## main
    37 
    38 # argument checking
    39 
    40 [ "$1" = "-?" ] && usage
    41 [ "$#" -lt "1" ] && usage
    42 
    43 [ -d $DISTPREFIX ] || fail "$DISTPREFIX is not a directory."
    44 
    45 # make file flags and nice setup for different target platforms
    46 case $HOSTNAME in
    47     atbroy51)
    48         # 2 processors
    49         MFLAGS="-j 2"
    50         # MFLAGS=""
    51         NICE=""
    52         ;;
    53 
    54     atbroy31)
    55         # cluster
    56         MFLAGS="-j 5"
    57         ;;
    58   
    59     sunbroy2)
    60         MFLAGS="-j 6"
    61         NICE="nice"
    62         ;;
    63 
    64     sunbroy1)
    65         MFLAGS="-j 2"
    66         NICE="nice"
    67         ;;
    68 
    69     macbroy5)
    70         MFLAGS="" # -j 2 does not work on poly/macos 10.4.1
    71         NICE=""
    72         ;;
    73 
    74     *)
    75         MFLAGS=""
    76         # be nice by default
    77         NICE=nice
    78         ;;
    79 esac
    80 
    81 # main test loop
    82 
    83 for SETTINGS in $@; do
    84 
    85     [ -r $SETTINGS ] || fail "Cannot read $SETTINGS."
    86 
    87     # logfile setup
    88 
    89     DATE=$(date "+%Y-%m-%d")
    90     SHORT=${SETTINGS##*/}
    91     TESTLOG=$LOGPREFIX/isatest-makeall-$SHORT-$DATE-$HOSTNAME.log
    92 
    93     # the test
    94 
    95     touch $RUNNING/$SHORT.running
    96 
    97     echo ------------------- starting test --- `date` --- $HOSTNAME > $TESTLOG 2>&1
    98 
    99     cat $SETTINGS >> $DISTPREFIX/Isabelle/etc/settings
   100     (ulimit -t $MAXTIME; $NICE $DISTPREFIX/Isabelle/bin/isatool makeall $MFLAGS all >> $TESTLOG 2>&1)
   101 
   102     if [ $? -eq 0 ]
   103     then
   104         # test log and cleanup
   105         echo ------------------- test successful --- `date` --- $HOSTNAME >> $TESTLOG 2>&1
   106         gzip -f $TESTLOG
   107     else
   108         # test log
   109         echo ------------------- test FAILED --- `date` --- $HOSTNAME >> $TESTLOG 2>&1
   110 
   111         # error log
   112         echo "Test for platform ${SHORT} failed. Log file attached." >> $ERRORLOG
   113         echo "[...]" >> $ERRORLOG
   114         tail -3 $TESTLOG >> $ERRORLOG
   115         echo >> $ERRORLOG
   116 
   117         FAIL="$FAIL$SHORT "
   118         (cd $ERRORDIR; ln -s $TESTLOG)
   119     fi
   120 
   121     rm -f $RUNNING/$SHORT.running
   122 done
   123 
   124 # time and success/failure to master log
   125 ELAPSED=$("$HOME/bin/showtime" "$SECONDS")
   126 
   127 if [ -z "$FAIL" ]; then
   128     echo "$(date) $HOSTNAME $PRG: all tests successful, elapsed time $ELAPSED." >> $MASTERLOG
   129 else
   130     echo "$(date) $HOSTNAME $PRG: targets ${FAIL}FAILED, elapsed time $ELAPSED." >> $MASTERLOG
   131     exit 1
   132 fi
   133 
   134 # end