#!/bin/csh # build-testcase-cvs # ------------------ # Description: # Create a directory called auto-test/ containing the output # generated by the LATEST CVS VERSION (without any user mods) # using run.in and start.in, also copied to the auto-test dir. # # Tasks: # Go and recheck out the $PENCIL-HOME/src having moved the current # src/ to underdev_src/. (currently the latest CVS version will be # checked out) # # Rebuild the source # # ([actually call built-testcase] # # Create auto-test/ and point datadir at it. # # Run start.csh # Run run.csh # # Copy *.in to auto-test/ # # Reset datadir # ) # Restore $PENCIL-HOME/src/ from $PENCIL_HOME/underdev_src/ # Link files into a local src directory # Also link files from the bin directory ==> should be renamed # CVS $Id$ # Usage: # pc_setupsrc [src-dir] if (! $?PENCIL_HOME) then echo "You need to set PENCIL_HOME; consider sourcing sourceme.{,c}sh" exit 0 endif set rundir = `pwd ` set testprefix = auto-test #if ($#argv > 0) set src = "$1" # ## Determine directories to link from # set bindir="No-such-directory" # set srcdir="No-such-directory" # foreach dir ( ../../.. ../..) # # Note: the _last_ matching directory will be used # if (-d $dir/bin) set bindir=$dir/bin # if (-d $dir/src) set srcdir=$dir/src # end set mainbindir = $PENCIL_HOME/bin set mainsrcdir = $PENCIL_HOME/src set underdevdir = $PENCIL_HOME/underdev_src set srcdir = $rundir/src set savesrcdir = $rundir/underdev_src set testsrcdir = $rundir/src set testdatadir = $rundir/${testprefix}-data if (-d $underdevdir) then echo "" echo ">> STOPPING: $PENCIL_HOME/underdev/ already exists! " echo ">> A previous instance of build-testcase-cvs is running or has failed" echo ">> please recover manually. " echo exit 1 endif if (-d $testdatadir) then echo "" echo ">> STOPPING: $testdatadir already exists! " echo ">> Please remove previous test data before retrying" echo exit 1 endif mv -f $mainsrcdir $underdevdir mv -f $srcdir $savesrcdir (cd $PENCIL_HOME; cvs -Q up -dP src) mkdir $srcdir mkdir $testdatadir (pc_setupsrc) if (-e $rundir/datadir.in) then mv -f $rundir/datadir.in $rundir/datadir.save endif echo $testdatadir > datadir.in cp -f $rundir/*.in $testdatadir/ cp -f $savesrcdir/*.local $srcdir/ (cd $srcdir; make cleann; make; ) source start.csh source run.csh rm -rf $mainsrcdir rm -rf $srcdir mv -f $underdevdir $mainsrcdir mv -f $savesrcdir $srcdir rm -rf $rundir/datadir.in if (-e $rundir/datadir.save) then mv -f $rundir/datadir.save $rundir/datadir.in endif