[BACK]Return to dotest CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / pari / src / test

Annotation of OpenXM_contrib/pari/src/test/dotest, Revision 1.1

1.1     ! maekawa     1: #!/bin/sh
        !             2:
        !             3: wrln () { echo "$1"; echo "$1" >> $file_bench; }
        !             4:
        !             5: wr () { echo $n "$1$c"; echo $n "$1$c" >> $file_bench; }
        !             6:
        !             7: confdir=../config
        !             8: testdir=../src/test
        !             9: execdir=.
        !            10: #Format: filename_weight (weight = 1000 if omitted)
        !            11: #  individual times are not modified whereas accumulated time is weighed
        !            12: #  by (weight / 1000)
        !            13: test -z "$testlist" && testlist="\
        !            14:   objets\
        !            15:   analyz\
        !            16:   number\
        !            17:   polyser\
        !            18:   linear\
        !            19:   elliptic\
        !            20:   sumiter\
        !            21:   graph\
        !            22:   program\
        !            23:   trans\
        !            24:   nfields_200\
        !            25: "
        !            26: if test -f /bin/rm ; then RM=/bin/rm; else RM=rm ; fi
        !            27: if sh -c 'test -x /bin/sh' 2>&-; then x=-x; else x=-r; fi
        !            28: (echo "hi there\c" ; echo " ") > echotmp
        !            29: if grep c echotmp >/dev/null 2>&1 ; then n=-n; c=; else n=; c='\c'; fi
        !            30: $RM echotmp
        !            31:
        !            32: case "$1" in
        !            33:   8) bitlen=64 ;;
        !            34:   *) bitlen=32 ;;
        !            35: esac
        !            36: case "$2" in
        !            37:   -c) testlist=compat;;
        !            38:   -g) testlist=ploth;;
        !            39:   -a) testlist=all;;
        !            40: esac
        !            41:
        !            42: . $confdir/version
        !            43: file_bench=Bench-$version.$patch
        !            44: if (touch $file_bench 2> /dev/null); then
        !            45:   SUF=
        !            46: else
        !            47:   if test ! $x $execdir/gp.exe; then
        !            48:     echo "build gp.exe first" >&2; exit 1
        !            49:   fi
        !            50:   if (echo | gp -test -q 2> /dev/null); then
        !            51:     gp=gp
        !            52:   else
        !            53:     gp="command /c gp"
        !            54:   fi
        !            55:   if (expr 2 \* 2 2> /dev/null); then exprbug=0; else exprbug=1; fi
        !            56:   SUF="exe"; file_bench=Bench.$patch
        !            57: fi
        !            58: $RM -f $file_bench
        !            59:
        !            60: dotestSUF=${dotestSUF:-"sta dyn"}
        !            61: for arg in $dotestSUF; do
        !            62:   case "$arg" in
        !            63:     sta|dyn) if test $x $execdir/gp-$arg; then SUF="$SUF $arg"; fi ;;
        !            64:   esac
        !            65: done
        !            66: file_test=gp.out
        !            67: for suf in $SUF; do eval time$suf=0 files$suf=; done
        !            68: for testdata in $testlist; do
        !            69:   O=$IFS;IFS=_;set $testdata;IFS=$O;testname=$1;testmul=$2
        !            70:   file_in=$testdir/in/$testname
        !            71:   file_out=$testdir/$bitlen/$testname
        !            72:   if test ! -r $file_in -o ! -r $file_out; then
        !            73:     wrln "Error! Missing file, can't test $testname"
        !            74:   else
        !            75:     testmul=${testmul:-1000}
        !            76:     wr "* Testing $testname $c"
        !            77:     for suf in $SUF; do
        !            78:       wr "     for gp-$suf..$c"
        !            79:       case "$suf" in
        !            80:         exe) file_diff=$testname.dif;;
        !            81:        *)   file_diff=$testname-$suf.dif
        !            82:             gp=$execdir/gp-$suf;;
        !            83:       esac
        !            84:       $gp -q -test < $file_in > $file_test 2>&1
        !            85:       diff -c $file_out $file_test > $file_diff
        !            86:       pat=`grep "^[-+!] " $file_diff | grep -v "Total time"`
        !            87:       time=`tail -2 $file_test | sed -n 's,.*Total time spent: \(.*\),\1,p'`
        !            88:       if test -n "$time"; then
        !            89:         eval t='$'time$suf
        !            90:        if test -n "$exprbug"; then
        !            91:          t=`expr $time \'\*\' $testmul / 1000 + $t`
        !            92:        else
        !            93:          t=`expr $time '*' $testmul / 1000 + $t`
        !            94:        fi
        !            95:         eval time$suf=$t
        !            96:       fi
        !            97:       if test -z "$pat"; then
        !            98:         wr "TIME=$time";
        !            99:       else
        !           100:         eval BUG$suf=BUG
        !           101:         eval files$suf=\"'$'files$suf $file_diff\"
        !           102:         wr "BUG [${time:-0}]"
        !           103:       fi
        !           104:     done
        !           105:     wrln
        !           106:   fi
        !           107: done
        !           108: $RM $file_test
        !           109: BUG=
        !           110: for suf in $SUF; do
        !           111:   B=`eval echo '$'BUG$suf`; BUG="$BUG$B"
        !           112:   t=`eval echo '$'time$suf`
        !           113:   if test -n "$B"; then B=' [BUG]'; fi
        !           114:   wrln "+++$B Total bench for gp-$suf is $t"
        !           115: done
        !           116: if test -n "$BUG"; then
        !           117:   pwd=`pwd`
        !           118:   wrln
        !           119:   wrln "PROBLEMS WERE NOTED. The following files list them in diff format: "
        !           120:   wrln "Directory: $pwd"
        !           121:   lastnote=ok; bug=
        !           122:   for suf in $SUF; do
        !           123:     B=`eval echo '$'BUG$suf`; BUG="$BUG$B"
        !           124:     if test -n "$B"; then
        !           125:       flist=`eval echo '$'files$suf`
        !           126:       for f in $flist; do
        !           127:         case "$f" in
        !           128:           *program*) if test -n "$bug"; then bug=all; else bug=$suf; fi;;
        !           129:           *) lastnote="";;
        !           130:         esac
        !           131:         wrln " $f"
        !           132:       done
        !           133:     fi
        !           134:   done
        !           135:   if test -n "$lastnote"; then
        !           136:     case "$bug" in
        !           137:       all) end=""
        !           138:            file_diff=program-sta.dif;;
        !           139:       sta|dyn)
        !           140:            end=" (gp-$bug only)"
        !           141:            file_diff=program-$bug.dif;;
        !           142:       exe)
        !           143:            end=" (gp-$bug)"
        !           144:           file_diff=program.dif;;
        !           145:     esac
        !           146:     pat=`head -4 $file_diff|tail -1|grep "108,118"`
        !           147:     if test -n "$pat"; then
        !           148: cat << EOT
        !           149: NOTE: actually, the only problem noted is that install() does not work
        !           150: in your configuration$end, so you will not be able to use
        !           151: this feature. Otherwise you can safely ignore the above warning.
        !           152: EOT
        !           153:     fi
        !           154:   fi
        !           155: fi

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>