diff options
Diffstat (limited to 'lib/blkid/test_probe.in')
-rw-r--r-- | lib/blkid/test_probe.in | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/lib/blkid/test_probe.in b/lib/blkid/test_probe.in new file mode 100644 index 0000000..a7b29a2 --- /dev/null +++ b/lib/blkid/test_probe.in @@ -0,0 +1,62 @@ + +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 |