Blame maint/testbuild

Packit Service c5cf8c
#! /bin/sh
Packit Service c5cf8c
#
Packit Service c5cf8c
# This is a simple script that makes sure that checkbuilds can be 
Packit Service c5cf8c
# created and then runs it.
Packit Service c5cf8c
# The cb suffix is for "check build"
Packit Service c5cf8c
# Set defaults for the MPICH2 home
Packit Service c5cf8c
srcdir=/home/MPI/testing/mpich2/mpich2
Packit Service c5cf8c
if [ ! -d $srcdir ] ; then
Packit Service c5cf8c
    if [ -d /homes/MPI/testing/mpich2/mpich2 ] ; then
Packit Service c5cf8c
        srcdir=/homes/MPI/testing/mpich2/mpich2
Packit Service c5cf8c
    else
Packit Service c5cf8c
        # We'll check for it later, after the args
Packit Service c5cf8c
        srcdir=
Packit Service c5cf8c
    fi
Packit Service c5cf8c
fi
Packit Service c5cf8c
outdir=/home/MPI/nightly
Packit Service c5cf8c
if [ ! -d $outdir ] ; then
Packit Service c5cf8c
    if [ -d /homes/MPI/nightly ] ; then
Packit Service c5cf8c
        outdir=/homes/MPI/nightly
Packit Service c5cf8c
    else
Packit Service c5cf8c
        # We'll check for it later, after the args
Packit Service c5cf8c
        outdir=
Packit Service c5cf8c
    fi
Packit Service c5cf8c
fi
Packit Service c5cf8c
if [ -d "/home/MPI/testing/tsuites" ] ; then 
Packit Service c5cf8c
    projectsdir="/home/MPI/testing/tsuites"
Packit Service c5cf8c
elif [ -d "/homes/MPI/testing/tsuites" ] ; then
Packit Service c5cf8c
    projectsdir="/homes/MPI/testing/tsuites"
Packit Service c5cf8c
elif [ -d "/Users/$LOGNAME/projects/software/testing" ] ; then
Packit Service c5cf8c
    projectsdir="/Users/$LOGNAME/projects/software/testing"
Packit Service c5cf8c
fi
Packit Service c5cf8c
Packit Service c5cf8c
date=`date "+%Y-%m-%d"`
Packit Service c5cf8c
# default outfile
Packit Service c5cf8c
outfile=testbuild.xml
Packit Service c5cf8c
tests="mpich:mpicxx:intel:testmpio" # Optional: mpich2
Packit Service c5cf8c
#
Packit Service c5cf8c
# Option options to checkbuild
Packit Service c5cf8c
other_opts=""
Packit Service c5cf8c
# Keep track of which compilers are set
Packit Service c5cf8c
ccset=no
Packit Service c5cf8c
cxxset=no
Packit Service c5cf8c
fcset=no
Packit Service c5cf8c
f90set=no
Packit Service c5cf8c
#
Packit Service c5cf8c
# Get options
Packit Service c5cf8c
for arg in "$@" ; do
Packit Service c5cf8c
    argval=""
Packit Service c5cf8c
    case $arg in 
Packit Service c5cf8c
        -*=*) argval=`echo "$arg" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
Packit Service c5cf8c
    esac
Packit Service c5cf8c
Packit Service c5cf8c
    case $arg in 
Packit Service c5cf8c
    -outfile=*) outfile=$argval ;;
Packit Service c5cf8c
    -outdir=*)  outdir=$argval ;;
Packit Service c5cf8c
    -srcdir=*)  srcdir=$argval ;;
Packit Service c5cf8c
    -tests=*)   tests=$argval ;;
Packit Service c5cf8c
    -tmpdir=*)  tmpdir=$argval ;;
Packit Service c5cf8c
    -projectsdir=*) projectsdir=$argval ;;  # directory containing test sources
Packit Service c5cf8c
    -echo) set -x ;;
Packit Service c5cf8c
    *) other_opts="$other_opts '$arg'" 
Packit Service c5cf8c
    envset=`echo A$arg | sed -e 's/A-env=\([A-Z]*\).*/\1/'`
Packit Service c5cf8c
    if [ "$envset" != "$arg" ] ; then
Packit Service c5cf8c
        case $envset in 
Packit Service c5cf8c
	    CC) ccset=yes ;;
Packit Service c5cf8c
	    FC) fcset=yes ;;
Packit Service c5cf8c
	    CXX) cxxset=yes ;;
Packit Service c5cf8c
	    F90) f90set=yes ;;
Packit Service c5cf8c
	esac
Packit Service c5cf8c
    fi
Packit Service c5cf8c
    ;;
Packit Service c5cf8c
    esac
Packit Service c5cf8c
done
Packit Service c5cf8c
Packit Service c5cf8c
if [ -z "$rundir" ] ; then rundir=$tmpdir/cb/mpich2 ; fi
Packit Service c5cf8c
if [ -z "$mpichtestdir" ] ; then mpichtestdir=$tmpdir/cb/mpitest ; fi
Packit Service c5cf8c
if [ -z "$mpicxxtestdir" ] ; then mpicxxtestdir=$tmpdir/cb/mpicxxtest ; fi
Packit Service c5cf8c
if [ -z "$inteltestdir" ] ; then inteltestdir=$tmpdir/cb/MPITEST ; fi
Packit Service c5cf8c
if [ -z "$testmpiodir" ] ; then testmpiodir=$tmpdir/cb/testmpio ; fi
Packit Service c5cf8c
if [ -z "$tmpdir" ] ; then tmpdir=/sandbox/$LOGNAME ; fi
Packit Service c5cf8c
Packit Service c5cf8c
# Construct the full outfile name from the dir and file
Packit Service c5cf8c
outfile="$outdir/$outfile"
Packit Service c5cf8c
if [ -z "$srcdir" ] ; then
Packit Service c5cf8c
    echo "Source directory for MPICH not specified!"
Packit Service c5cf8c
    exit 1
Packit Service c5cf8c
fi
Packit Service c5cf8c
if [ ! -d "$srcdir" ] ; then
Packit Service c5cf8c
    echo "Could not find MPICH2 source dir $srcdir"
Packit Service c5cf8c
    exit 1
Packit Service c5cf8c
fi
Packit Service c5cf8c
if [ ! -d $rundir ] ; then 
Packit Service c5cf8c
    # Assume that we have mkdir -p
Packit Service c5cf8c
    mkdir -p $rundir
Packit Service c5cf8c
fi
Packit Service c5cf8c
if [ ! -d $outdir ] ; then 
Packit Service c5cf8c
    # Assume that we have mkdir -p
Packit Service c5cf8c
    mkdir -p $outdir
Packit Service c5cf8c
fi
Packit Service c5cf8c
if [ ! -d "$rundir/maint" ] ; then
Packit Service c5cf8c
    mkdir "$rundir/maint"
Packit Service c5cf8c
fi
Packit Service c5cf8c
if [ ! -d $mpichtestdir ] ; then
Packit Service c5cf8c
    mkdir $mpichtestdir
Packit Service c5cf8c
fi
Packit Service c5cf8c
if [ ! -d $mpicxxtestdir ] ; then
Packit Service c5cf8c
    mkdir $mpicxxtestdir
Packit Service c5cf8c
fi
Packit Service c5cf8c
if [ ! -d $testmpiodir ] ; then
Packit Service c5cf8c
    mkdir $testmpiodir
Packit Service c5cf8c
fi
Packit Service c5cf8c
if [ ! -d $inteltestdir ] ; then
Packit Service c5cf8c
    mkdir $inteltestdir
Packit Service c5cf8c
fi
Packit Service c5cf8c
# We don't need to build the mpich2testdir because it is part of the mpich2
Packit Service c5cf8c
# distribution
Packit Service c5cf8c
# Build the current version of checkbuilds
Packit Service c5cf8c
(cd $rundir/maint && $srcdir/maint/configure 2>&1 >/dev/null)
Packit Service c5cf8c
if [ ! -x $rundir/maint/checkbuilds ] ; then
Packit Service c5cf8c
    echo "Could not build checkbuilds"
Packit Service c5cf8c
    exit 1
Packit Service c5cf8c
fi
Packit Service c5cf8c
#
Packit Service c5cf8c
#
Packit Service c5cf8c
# -tests="mpich:mpicxx:intel"
Packit Service c5cf8c
# Use -tests="mpich:mpicxx" to get a smaller list of tests.
Packit Service c5cf8c
# Use eval to make sure that quoted arguments containing spaces are handled
Packit Service c5cf8c
# correctly
Packit Service c5cf8c
# Set the default values of the CC and FC environment variables
Packit Service c5cf8c
#envargs='-envopt="CC;cc;gcc" -envopt="FC;f77;g77"'
Packit Service c5cf8c
envargs=""
Packit Service c5cf8c
if [ "$ccset" = no ] ; then
Packit Service c5cf8c
    envargs='-envopt="CC;cc;gcc"'
Packit Service c5cf8c
fi
Packit Service c5cf8c
if [ "$fcset" = no ] ; then
Packit Service c5cf8c
#    envargs="$envargs '-envopt="'"'"FC;f77;g77"'"'"'"
Packit Service c5cf8c
    envargs="$envargs -envopt="'"'"FC;f77;g77"'"'
Packit Service c5cf8c
fi
Packit Service c5cf8c
#			  '-envopt="CC;cc;gcc"' '-envopt="FC;f77;g77"' 
Packit Service c5cf8c
eval $rundir/maint/checkbuilds -rundir=$rundir \
Packit Service c5cf8c
                        --srcdir=$srcdir \
Packit Service c5cf8c
                        --projectsdir=$projectsdir \
Packit Service c5cf8c
			$envargs \
Packit Service c5cf8c
			  "-tests='""$tests""'" -tmpdir=$tmpdir \
Packit Service c5cf8c
			  -xml -maxcount=1 -outfile=$outfile $other_opts