Testing latest pari + WASM + node.js... and it works?! Wow.
License: GPL3
ubuntu2004
#!/bin/sh trap exit 2 bitlen=$1; shift exe_suff=$1; shift testlist=$@ if (tail -n 1 $0 >/dev/null 2>&1); then tail='tail -n' else tail='tail -' fi if (head -n 1 $0 >/dev/null 2>&1); then head='head -n' else head='head -' fi if (printf %-22s foo >/dev/null 2>&1); then printf=OK else printf= fi wrln () { echo "$1"; echo "$1" >&3; } wr () { echo $n "$1$c"; echo $n "$1$c" >&3; } wrtab () { if test -n "$printf"; then printf %$1s "$2" printf %$1s "$2" >&3 else echo $n "$2 $c" echo $n "$2 $c" >&3 fi; } confdir=../config testdir=../src/test execdir=. case `$confdir/arch-osname` in *-cygwin*|*-mingw*|*-msys*) crlf=OK ;; *) crlf= ;; esac if test -f /bin/rm ; then RM=/bin/rm; else RM=rm ; fi (echo "hi there\c" ; echo " ") > echotmp if grep c echotmp >/dev/null 2>&1 ; then n=-n; c=; else n=; c='\c'; fi $RM -f echotmp . $confdir/version exec 3>> Bench-$VersionMajor.$VersionMinor.$patch dotestSUF=${dotestSUF:-"sta dyn"} for arg in $dotestSUF; do if test -s $execdir/gp-$arg$exe_suff; then SUF="$SUF $arg" datadir=`echo 'print(default(datadir))' | $RUNTEST $execdir/gp-$arg -q -f` fi done file_test=gp.out for suf in $SUF; do eval time$suf=0 files$suf=; done for testdata in $testlist; do O=$IFS;IFS=_;set $testdata;IFS=$O;testname=$1;testmul=$2 pkgs=`${head}1 $testdir/in/$testname | grep package: | cut -f2 -d:` skip="" for pkg in $pkgs; do if test ! -x "$datadir/$pkg"; then wrln "! Skipping $testname: optional package $pkg not installed." skip="true"; fi done if test "$skip" = "true"; then untested="$untested $testname" else file_in=$testdir/in/$testname file_out=$testdir/$bitlen/$testname if test ! -r $file_out; then file_out=$testdir/32/$testname; fi if test ! -r $file_out; then touch $file_out; fi if test ! -r $file_in; then wrln "Error! Missing file, can't test $testname" exit 1 fi testmul=${testmul:-1000} wrtab -27 "* Testing $testname " for suf in $SUF; do file_diff=$testname-$suf.dif gp=$execdir/gp-$suf$exe_suff (echo 'gettime();0;'; cat $file_in; \ echo 'print("Total time spent: ",gettime);') \ | $RUNTEST $gp -q --test > $file_test 2>&1 if test -n "$crlf"; then # when building on windows, remove extra cr so diff's will match cat $file_test | tr -d '\r' | diff -c $file_out - > $file_diff else diff -c $file_out $file_test > $file_diff fi pat=`grep "^[-+!] " $file_diff | grep -v "Total time"` time=`${tail}1 $file_test | sed -n 's,.*Total time spent: \(.*\),\1,p'` if test -n "$time"; then eval t='$'time$suf if test -n "$exprbug"; then t=`expr $time \'\*\' $testmul / 1000 + $t` else t=`expr $time '*' $testmul / 1000 + $t` fi eval time$suf=$t fi pre= if test -z "$pat"; then wr "gp-$suf..TIME=" wrtab 8 "$time "; else eval BUG$suf=BUG eval files$suf=\"'$'files$suf $file_diff\" wrtab -21 "gp-$suf..BUG [${time:-0}]" fi done wrln fi done $RM -f $file_test BUG= for suf in $SUF; do B=`eval echo '$'BUG$suf`; BUG="$BUG$B" t=`eval echo '$'time$suf` if test -n "$B"; then B=' [BUG]'; fi wrln "+++$B Total bench for gp-$suf is $t" done if test -n "$untested"; then wrln "The following tests were skipped:$untested" fi if test -z "$BUG"; then exit 0; fi pwd=`pwd` wrln wrln "PROBLEMS WERE NOTED. The following files list them in diff format: " wrln "Directory: $pwd" for suf in $SUF; do B=`eval echo '$'BUG$suf`; BUG="$BUG$B" if test -n "$B"; then flist=`eval echo '$'files$suf` for f in $flist; do wrln " $f" if test "$dump_dif" = 1; then cat $f; fi done fi done exit 1