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