#! /bin/sh
#
# Run the tests in this directory
#
NPLIST="02"
do_base=1
do_html=0
runtestargs=""
Show=eval
logarg=""
for arg in "$@" ; do
    case $arg in 
	-echo) set -x ; runtestargs="$runtestargs -echo" ;;
        -np=*) NPLIST=`echo a$arg | sed "s/a-np=//"` ;;
        -base) do_base=1 ;;
        -show) runtestargs="$runtestargs -show" ; Show="echo" ;;
	-logs) runtestargs="$runtestargs -logs" ; logarg="-log" ;;
	-update) runtestargs="$runtestargs -update" ;;
	-nopoll) runtestargs="$runtestargs -nopoll" ;;
	-html) do_html=1 ; runtestargs="$runtestargs -html" ;;
	-mach=*) MACH=`echo a$arg | sed "s/a-mach=//"` 
	       runtestargs="$runtestargs -mach=$MACH" ;;
        *) echo "Unrecognized argument $arg" ; exit 1 ;;
    esac
done

if [ $do_html = 1 ] ; then
	cat <<EOF
<TITLE>Results for MPI perforance tests on $MACH</TITLE>
<BODY BGCOLOR="FFFFFF">
<H1>Results for MPI perforance tests on $MACH</H1>

<H2>Contents</H2>
<UL>
<LI> <A HREF="#memcpy">Memcpy</A>
<LI> <A HREF="#pingpong">Point-to-point tests</A>
<LI> <A HREF="#barrier">Collective tests</A>
<LI> <A HREF="#vector">Vector datatype tests</A>
<LI> <A HREF="#circulate">Synchronization tests</A>
<LI> <A HREF="#3way">More Synchronization tests</A>
<LI> <A HREF="#jacobi">Sample application (Jacobi iteration)</A>
</UL>
EOF
fi
for NP in $NPLIST ; do
    for dir in memcpy pingpong barrier vector circulate 3way jacobi ; do
	if [ -x $dir/C/runtests ] ; then
	    if [ $do_html = 1 ] ; then 
	        echo "<!-- runtests in $dir -->"
		echo "<A NAME="'"'"$dir"'"'"><H1>$dir</H1></A>"
	    else
	        echo "runtests in $dir"
            fi
	    ( cd $dir/C ; ./runtests -base $runtestargs )
        else
	    echo "Could not find runtests in $dir"
	fi
    done
done
if [ $do_html = 1 ] ; then
    echo "</BODY>"
fi
#
if [ -n "$logarg" ] ; then
    # Gather up the created log files
    $Show "find . -name '*.alog' -print > logfiles.list"
    os=`uname -s`
    case $os in 
    Sun*) $Show tar cf logs.tar -I logfiles.list ;;
    AIX*) $Show tar -c -L logfiles.list -f logs.tar ;;
    IRIX*) $Show cat logfiles.list | tar cf logs.tar - ;;
    *) $Show tar cf logs.tar `cat logfiles.list` ;;
    esac
    echo "Created file `pwd`/logs.tar containing alog files"
    /bin/rm -f logfiles.list
fi
