You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

63 lines
1.5 KiB

TESTS=$*
if test "$TESTS"x = x ; then
for i in $SRCDIR/tests/*.img.bz2
do
TESTS="$TESTS `basename $i .img.bz2`"
done
fi
mkdir -p tests/tmp
for i in $TESTS
do
printf "%s: " $i
RESULTS=$SRCDIR/tests/$i.results
IMAGE_BZ2=$SRCDIR/tests/$i.img.bz2
IMAGE=tests/tmp/$i.img.$$
if test ! -f $IMAGE_BZ2 -a ! -f $RESULTS ;
then
echo "non-existent"
continue
fi
if [ "$i" = "swap0" ] && which mkswap > /dev/null; then
# swap is native-endian, so regenerate before testing
dd if=/dev/zero of=$IMAGE bs=16k count=64 2> /dev/null
mkswap -v0 $IMAGE > /dev/null
elif [ "$i" = "swap1" ] && which mkswap > /dev/null; then
# swap is native-endian, so regenerate before testing
dd if=/dev/zero of=$IMAGE bs=16k count=64 2> /dev/null
# check if mkswap supports the "-U" option
if mkswap -h 2>&1 | grep -q -- '-U'; then
UUID="-U 8ff8e77f-8553-485e-8656-58be67a81666"
else
RMUUID="| grep -v UUID"
RES_TMP=$SRCDIR/tests/tmp/$i.results
grep -v UUID $RESULTS > $RES_TMP
RESULTS=$RES_TMP
fi
mkswap -v1 -L SWAP-TEST $UUID $IMAGE >/dev/null
else
bunzip2 < $IMAGE_BZ2 > $IMAGE
fi
eval ./tst_probe $IMAGE $RMUUID > tests/$i.out
rm -f $IMAGE tests/$i.ok tests/$i.failed
cmp -s tests/$i.out $RESULTS
unset RMUUID
if [ $? = 0 ]; then
echo ok
touch tests/$i.ok
else
echo failed
diff -c tests/$i.out $RESULTS > tests/$i.failed
fi
done
num_ok=`ls tests/*.ok 2>/dev/null | wc -l`
num_failed=`ls tests/*.failed 2>/dev/null | wc -l`
echo "$num_ok tests succeeded $num_failed tests failed"
test "$num_failed" -eq 0 || exit 1