62 lines
1.3 KiB
Bash
Executable file
62 lines
1.3 KiB
Bash
Executable file
#! /bin/sh
|
|
|
|
set -e
|
|
|
|
TESTING_DATABASE=/tmp/wesnoth-uploads.db
|
|
TESTING_LOGFILE=/tmp/wesnoth-upload-log.
|
|
export TESTING_DATABASE
|
|
export TESTING_LOGFILE
|
|
|
|
for f in testsuite/*.input; do
|
|
echo $f
|
|
rm -f $TESTING_DATABASE $TESTING_LOGFILE*
|
|
./upload.cgi --initialize
|
|
echo 'INSERT INTO bad_serial VALUES ("BADSERIAL");' | sqlite3 $TESTING_DATABASE
|
|
for i in $f*; do
|
|
case $i in *~) :;; *)
|
|
if ./upload.cgi < $i > /dev/null; then :
|
|
else echo ERROR:; cat ${TESTING_LOGFILE}0; exit 1
|
|
fi;;
|
|
esac
|
|
done
|
|
BASE=`echo $f | sed 's/\.input$//'`
|
|
[ x"`sqlite3 $TESTING_DATABASE < $BASE.test`" = x"`cat $BASE.output`" ]
|
|
done
|
|
|
|
echo -n Parallel test
|
|
rm -f $TESTING_DATABASE $TESTING_LOGFILE*
|
|
./upload.cgi --initialize
|
|
|
|
parallel_test()
|
|
{
|
|
while [ -f $1 ]; do sleep 0; done
|
|
if ./upload.cgi < $2 > /dev/null; then
|
|
echo $2 succeeded >> $3
|
|
echo -n .
|
|
else
|
|
echo $2 failed >> $3
|
|
fi
|
|
}
|
|
|
|
STARTFILE=`mktemp`
|
|
OUTPUTFILE=`mktemp`
|
|
trap "rm -f $OUTPUTFILE $STARTFILE" EXIT
|
|
|
|
COUNT=0
|
|
for i in testsuite/*.parallel; do
|
|
COUNT=$(($COUNT + 1))
|
|
parallel_test $STARTFILE $i $OUTPUTFILE &
|
|
done
|
|
|
|
rm $STARTFILE
|
|
while [ `wc -l < $OUTPUTFILE` -lt $COUNT ]; do
|
|
sleep 1
|
|
done
|
|
echo
|
|
|
|
if grep failed $OUTPUTFILE; then
|
|
exit 1
|
|
fi
|
|
|
|
[ x"`sqlite3 $TESTING_DATABASE < testsuite/parallel-test`" = x"`cat testsuite/parallel-output`" ]
|
|
echo Succeeded.
|