ldc/tests/runtest
2009-02-26 14:49:32 +01:00

56 lines
1.5 KiB
Bash
Executable file

#!/bin/sh
# check for command line arguments
if [ -z "$1" ] ; then
echo "Usage: `basename $0` <test result file>"
exit
fi
TARGETFILE=$1
# check for dstress
if ! [ -d dstress ] ; then
echo "Testing requires DStress to be checked out into dstress/"
exit
fi
BASEPATH=`pwd`
cd dstress
# remove excessive tests
sed -e 's/torture-//g' -i Makefile
# make sure only .d files in 'run' tests are run
sed -e 's/find run -type f |/find run -type f -name "*\\\\.d" |/' -i Makefile
sed -e 's/find norun -type f |/find norun -type f -name "*\\\\.d" |/' -i Makefile
# impose more conservative constraints (10s and 256 MB)
sed -e 's/crashRun 30 1000/crashRun 10 256/' -i dstress.c
echo
echo "Running new test and storing result in $TARGETFILE ..."
echo
echo "Remember to make sure you have an up to date runtime!"
echo
if [ -z "$DMD" ] ; then
echo "Testing with LDC. Set DMD environment variable to select compiler."
DMD="ldmd -I$BASEPATH/testincludes -L$BASEPATH/testincludes/libtangobos-partial.a"
echo "Default is $DMD"
else
echo "Using compiler given by DMD environment variable: $DMD"
fi
echo
echo "This will take a while, try 'tail -f $TARGETFILE' to follow progress."
echo "Note that aborting is tricky. Try killing the processes by the name of"
echo "run.sh, compile.sh, nocompile.sh and norun.sh as well as this one."
echo
DMD=$DMD make compile nocompile run norun > ../$TARGETFILE
cd ..
echo
echo "Cleanup... (removing all .o and .exe files)"
echo
find dstress -name "*\.o" -o -name "*\.exe" -delete