1# tdir that only exes the files. 2args="../.." 3if test "$1" = "-a"; then 4 args=$2 5 shift 6 shift 7fi 8quiet=0 9if test "$1" = "-q"; then 10 quiet=1 11 shift 12fi 13 14if test "$1" = "clean"; then 15 if test $quiet = 0; then 16 echo "rm -f result.* .done* .tdir.var.master .tdir.var.test" 17 fi 18 rm -f result.* .done* .tdir.var.master .tdir.var.test 19 exit 0 20fi 21if test "$1" = "fake"; then 22 if test $quiet = 0; then 23 echo "minitdir fake $2" 24 fi 25 echo "fake" > .done-`basename $2 .tdir` 26 exit 0 27fi 28if test "$1" = "-f" && test "$2" = "report"; then 29 echo "Minitdir Long Report" 30 pass=0 31 fail=0 32 skip=0 33 echo " STATUS ELAPSED TESTNAME TESTDESCRIPTION" 34 for result in *.tdir; do 35 name=`basename $result .tdir` 36 timelen=" " 37 desc="" 38 if test -f "result.$name"; then 39 timestart=`grep ^DateRunStart: "result.$name" | sed -e 's/DateRunStart: //'` 40 timeend=`grep ^DateRunEnd: "result.$name" | sed -e 's/DateRunEnd: //'` 41 timesec=`expr $timeend - $timestart` 42 timelen=`printf %4ds $timesec` 43 if test $? -ne 0; then 44 timelen="$timesec""s" 45 fi 46 desc=`grep ^Description: "result.$name" | sed -e 's/Description: //'` 47 fi 48 if test -f ".done-$name"; then 49 if test $quiet = 0; then 50 echo "** PASSED ** $timelen $name: $desc" 51 pass=`expr $pass + 1` 52 fi 53 else 54 if test -f "result.$name"; then 55 echo "!! FAILED !! $timelen $name: $desc" 56 fail=`expr $fail + 1` 57 else 58 echo ".> SKIPPED<< $timelen $name: $desc" 59 skip=`expr $skip + 1` 60 fi 61 fi 62 done 63 echo "" 64 if test "$skip" = "0"; then 65 echo "$pass pass, $fail fail" 66 else 67 echo "$pass pass, $fail fail, $skip skip" 68 fi 69 echo "" 70 exit 0 71fi 72if test "$1" = "report" || test "$2" = "report"; then 73 echo "Minitdir Report" 74 for result in *.tdir; do 75 name=`basename $result .tdir` 76 if test -f ".done-$name"; then 77 if test $quiet = 0; then 78 echo "** PASSED ** : $name" 79 fi 80 else 81 if test -f "result.$name"; then 82 echo "!! FAILED !! : $name" 83 else 84 echo ">> SKIPPED<< : $name" 85 fi 86 fi 87 done 88 exit 0 89fi 90 91if test "$1" != 'exe'; then 92 # usage 93 echo "mini tdir. Reduced functionality for old shells." 94 echo " tdir [-q] exe <file>" 95 echo " tdir [-q] fake <file>" 96 echo " tdir [-q] clean" 97 echo " tdir [-q|-f] report" 98 exit 1 99fi 100shift 101 102# do not execute if the disk is too full 103#DISKLIMIT=100000 104# This check is not portable (to Solaris 10). 105#avail=`df . | tail -1 | awk '{print $4}'` 106#if test "$avail" -lt "$DISKLIMIT"; then 107 #echo "minitdir: The disk is too full! Only $avail." 108 #exit 1 109#fi 110 111name=`basename $1 .tdir` 112dir=$name.$$ 113result=result.$name 114done=.done-$name 115success="no" 116if test -x "`which bash`"; then 117 shell="bash" 118else 119 shell="sh" 120fi 121 122# check already done 123if test -f .done-$name; then 124 echo "minitdir .done-$name exists. skip test." 125 exit 0 126fi 127 128# Copy 129if test $quiet = 0; then 130 echo "minitdir copy $1 to $dir" 131fi 132mkdir $dir 133if cp --help 2>&1 | grep -- "-a" >/dev/null; then 134cp -a $name.tdir/* $dir/ 135else 136cp -R $name.tdir/* $dir/ 137fi 138cd $dir 139 140# EXE 141echo "minitdir exe $name" > $result 142grep "Description:" $name.dsc >> $result 2>&1 143echo "DateRunStart: "`date "+%s" 2>/dev/null` >> $result 144if test -f $name.pre; then 145 if test $quiet = 0; then 146 echo "minitdir exe $name.pre" 147 fi 148 echo "minitdir exe $name.pre" >> $result 149 $shell $name.pre $args >> $result 150 if test $? -ne 0; then 151 echo "Warning: $name.pre did not exit successfully" 152 fi 153fi 154if test -f $name.test; then 155 if test $quiet = 0; then 156 echo "minitdir exe $name.test" 157 fi 158 echo "minitdir exe $name.test" >> $result 159 $shell $name.test $args >>$result 2>&1 160 if test $? -ne 0; then 161 echo "$name: FAILED" >> $result 162 echo "$name: FAILED" 163 success="no" 164 else 165 echo "$name: PASSED" >> $result 166 echo "$name: PASSED" > ../.done-$name 167 if test $quiet = 0; then 168 echo "$name: PASSED" 169 fi 170 success="yes" 171 fi 172fi 173if test -f $name.post; then 174 if test $quiet = 0; then 175 echo "minitdir exe $name.post" 176 fi 177 echo "minitdir exe $name.post" >> $result 178 $shell $name.post $args >> $result 179 if test $? -ne 0; then 180 echo "Warning: $name.post did not exit successfully" 181 fi 182fi 183echo "DateRunEnd: "`date "+%s" 2>/dev/null` >> $result 184 185mv $result .. 186cd .. 187rm -rf $dir 188# compat for windows where deletion may not succeed initially (files locked 189# by processes that still have to exit). 190if test $? -eq 1; then 191 echo "minitdir waiting for processes to terminate" 192 sleep 2 # some time to exit, and try again 193 rm -rf $dir 194fi 195