#!/bin/bash
##
## Name: test.sh
## Purpose: Run test suites for IMath library.
##
## Copyright (C) 2002-2007 Michael J. Fromberger. All Rights Reserved.
##
set -o pipefail
if [ ! -f ../imtest ] ; then
echo "I can't find the imath test driver 'imtest', did you build it?"
echo "I can't proceed with the unit tests until you do so, sorry."
exit 2
fi
echo "-- Running all available unit tests"
if ../imtest *.tc | (grep -v 'OK'||true) ; then
echo "ALL PASSED"
else
echo "FAILED"
exit 1
fi
echo ""
echo "-- Running test to compute 1024 decimal digits of pi"
if [ ! -f ../pi ] ; then
echo "I can't find the pi computing program, did you build it?"
echo "I can't proceed with the pi test until you do so, sorry."
exit 1
fi
tempfile="/tmp/pi.1024.$$"
../pi 1024 | tr -d '\r\n' > ${tempfile}
if cmp -s ${tempfile} ./pi1024.txt ; then
echo " PASSED 1024 digits"
else
echo " FAILED"
echo "Obtained:"
cat ${tempfile}
echo "Expected:"
cat ./pi1024.txt
fi
rm -f ${tempfile}
tempfile="/tmp/pi.1698.$$"
echo "-- Running test to compute 1698 hexadecimal digits of pi"
../pi 1698 16 | tr -d '\r\n' > ${tempfile}
if cmp -s ${tempfile} ./pi1698-16.txt ; then
echo " PASSED 1698 digits"
else
echo " FAILED"
echo "Obtained:"
cat ${tempfile}
echo "Expected:"
cat ./pi1698-16.txt
fi
rm -f ${tempfile}
tempfile="/tmp/pi.1500.$$"
echo "-- Running test to compute 1500 decimal digits of pi"
../pi 1500 10 | tr -d '\r\n' > ${tempfile}
if cmp -s ${tempfile} ./pi1500-10.txt ; then
echo " PASSED 1500 digits"
else
echo " FAILED"
echo "Obtained:"
cat ${tempfile}
echo "Expected:"
cat ./pi1500-10.txt
fi
rm -f ${tempfile}
echo "-- Running regression tests"
for bug in bug-swap ; do
../${bug}
done
exit 0