Move quick-regression.sh from examples to testing
authorStelian Pop <stelian@popies.net>
Fri, 10 Jun 2011 12:15:29 +0000 (12:15 +0000)
committerStelian Pop <stelian@popies.net>
Fri, 10 Jun 2011 12:15:29 +0000 (12:15 +0000)
examples/quick-regression/quick-regression.sh [deleted file]
testing/scripts/quick-regression.sh [new file with mode: 0644]

diff --git a/examples/quick-regression/quick-regression.sh b/examples/quick-regression/quick-regression.sh
deleted file mode 100644 (file)
index 3374305..0000000
+++ /dev/null
@@ -1,354 +0,0 @@
-#!/bin/bash
-
-#
-# 5-second regression test for dump/verify/restore. It's not intended to be
-# an exhaustive regression test, just a quick way to verify that you haven't
-# introduced any errors when changing code.
-#
-# N.B., this only verifies that THIS build of dump(8) and THIS build of
-# restore(8) will play well together. It does not guarantee that these systems
-# are compatible with released versions of the software! For that we need
-# to keep images of known-good partitions and dump files.
-#
-# Author: Bear Giles (bgiles@coyotesong.com)
-# License granted to dump project under non-advertising BSD license.
-#
-
-#
-# Create 10 MB virtual partition.
-#
-# mkvirtpart(filename, loop device)
-#
-mkvirtpart()
-{
-    FILENAME=$1
-    LOOPDEV=$2
-    
-    if [ "$#" -ne "2" ]; then
-      /bin/echo "usage: mkvrtpart FILENAME LOOPDEV"
-      return 1
-    fi
-    
-    # create 10M sparse file
-    /usr/bin/truncate -s 10M $FILENAME
-    if [ "$?" -ne "0" ]; then
-      /bin/echo "unable to create partition image."
-      return 1
-    fi
-    
-    # mount and format it
-    /sbin/losetup $LOOPDEV $FILENAME
-    if [ "$?" -ne "0" ]; then
-      /bin/echo "setting up loop device failed."
-      return 1
-    fi
-    
-    /sbin/mkfs -text4 $LOOPDEV
-    if [ "$?" -ne "0" ]; then
-      /bin/echo "formating test partition failed."
-      /sbin/losetup -d $LOOPDEV
-      return 1
-    fi
-    
-    /sbin/losetup -d $LOOPDEV
-    if [ "$?" -ne "0" ]; then
-      /bin/echo "tearing down loop device failed."
-      return 1
-    fi
-}
-
-#
-# Populate test filesystem
-#
-# mktestfs(root)
-mktestfs()
-{
-    ROOT=$1
-    
-    if [ "$#" -ne "1" ]; then
-      /bin/echo "usage: mktestfs ROOT"
-      return 1
-    fi
-
-    if [ "$ROOT" == "" -o "$ROOT" == "/" ]; then
-        /bin/echo "cowardly refusing to stomp on root."
-        return 1
-    fi
-    
-    /usr/bin/install -d $ROOT
-    
-    # create typical file
-    /usr/bin/touch $ROOT/perm644
-    /bin/chmod 0644 $ROOT/perm644
-    
-    # create typical executable
-    /usr/bin/touch $ROOT/perm755
-    /bin/chmod 0755 $ROOT/perm755
-    
-    # create multiple symlinks
-    /usr/bin/touch $ROOT/symlink
-    /bin/ln $ROOT/symlink $ROOT/symlink1
-    /bin/ln $ROOT/symlink $ROOT/symlink2
-    
-    # create hard links
-    /usr/bin/touch $ROOT/hardlink
-    /bin/ln $ROOT/hardlink $ROOT/hardlink1
-    /bin/ln $ROOT/hardlink $ROOT/hardlink2
-    
-    # create block device
-    /bin/mknod $ROOT/block b 10 20
-    
-    # create character device
-    /bin/mknod $ROOT/char c 11 21
-    
-    # create FIFO
-    /bin/mknod $ROOT/pipe p
-    
-    # make sparse device
-    #/usr/bin/truncate -s 500k $ROOT/sparse
-    
-    # populate some files
-    /bin/mkdir $ROOT/man1
-    /bin/cp -rp /usr/share/man/man1/* $ROOT/man1
-}
-
-#
-# Single test cycle
-#
-dump_verify_restore() {    
-    
-    if [ "$#" -lt "5" ]; then
-      /bin/echo "usage: dump_verify_restore SRC_LOOPDEV SRC_MOUNTPOINT DEST_LOOPDEV DEST_MOUNTPOINT DUMPFILE ..."
-      return 1
-    fi
-
-    SRC_LOOPDEV=$1
-    SRC_MOUNTPOINT=$2
-    DEST_LOOPDEV=$3
-    DEST_MOUNTPOINT=$4
-    DUMPFILE=$5
-    
-    shift; shift; shift; shift; shift
-
-    /sbin/losetup $SRC_LOOPDEV $SRC_FILENAME
-    if [ "$?" -ne "0" ]; then
-      /bin/echo "setting up loop device failed."
-      return 1
-    fi
-
-    # we have to mount partition for verify to work even if we dump the
-    # underlying partition.
-    /bin/mount $SRC_LOOPDEV $SRC_MOUNTPOINT
-    if [ "$?" -ne "0" ]; then
-        /bin/echo "mounting source partition failed."
-        /sbin/losetup -d $SRC_LOOPDEV
-        return 1;
-    fi
-
-    # dump the test partition
-    ../dump/dump -0 $@ -f $DUMPFILE $SRC_LOOPDEV
-    if [ "$?" -ne "0" ]; then
-      echo "dump failed, error code $?"
-      /bin/rm $DUMPFILE
-      /bin/umount $SRC_MOUNTPOINT
-      /sbin/losetup -d $SRC_LOOPDEV
-      return 1
-    fi
-
-    # verify
-    ../restore/restore -C -f $DUMPFILE
-    if [ "$?" -ne "0" ]; then
-      echo "verification failed, error code $?"
-      /bin/rm $DUMPFILE
-      /bin/umount $SRC_MOUNTPOINT
-      /sbin/losetup -d $SRC_LOOPDEV
-      return 1
-    fi
-
-    # restore fs, compare to orginal one
-    # I can't do that yet since restore will only restore to the current directory.
-    # this makes sense for a number of reasons it difficult to test our newly
-    # compiled code.
-    # ../../restore/restore -r ...    
-    
-    # tear everything down
-    /bin/umount $SRC_MOUNTPOINT
-    if [ "$?" -ne "0" ]; then
-       /bin/echo "unmounting test partition failed."
-       return 1    
-    fi
-
-    /sbin/losetup -d $SRC_LOOPDEV
-    if [ "$?" -ne "0" ]; then
-      /bin/echo "tearing down loop device failed."
-      return 1
-    fi
-}
-
-#
-# set up source partition.
-#
-setup_src_partition() {
-    SRC_FILENAME=$1
-    SRC_LOOPDEV=$2
-    SRC_MOUNTPOINT=$3
-    
-    if [ "$#" -ne "3" ]; then
-      /bin/echo "usage: setup_src_partition SRC_FILENAME SRC_LOOPDEV SRC_MOUNTPOINT"
-      return 1
-    fi
-    
-    mkvirtpart $SRC_FILENAME $SRC_LOOPDEV
-    if [ $? -ne 0 ]; then
-       /bin/echo "creating source test partition failed."
-       return 1
-    fi
-
-    # mount it
-    /sbin/losetup $SRC_LOOPDEV $SRC_FILENAME
-    if [ "$?" -ne "0" ]; then
-       /bin/echo "setting up loop device failed."
-       return 1
-    fi
-
-    /bin/mount $SRC_LOOPDEV $SRC_MOUNTPOINT
-    if [ "$?" -ne "0" ]; then
-       /bin/echo "mounting test partition failed."
-       return 1
-    fi
-
-    mktestfs $SRC_MOUNTPOINT
-    if [ "$?" -ne "0" ]; then
-       return 1
-    fi
-      
-    /bin/umount $SRC_LOOPDEV
-    if [ "$?" -ne "0" ]; then
-       /bin/echo "unmounting test partition failed."
-       return 1
-    fi
-      
-    /sbin/losetup -d $SRC_LOOPDEV
-    if [ "$?" -ne "0" ]; then
-      /bin/echo "tearing down loop device failed."
-      return 1
-    fi
-    
-    return 0
-}
-
-
-#
-# clean up temporary files. We want to be extremely careful here that
-# we don't accidently do a 'rm -rf' on / 
-#
-cleanup() {
-    
-    if [ "$#" -ne "6" ]; then
-      /bin/echo "usage: cleanup SRC_FILENAME SRC_MOUNTPOINT DEST_FILENAME DEST_MOUNTPOINT BASEDIR DUMPFILE"
-      return 1
-    fi
-    
-    SRC_FILENAME=$1
-    SRC_MOUNTPOINT=$2
-    DEST_FILENAME=$3
-    DEST_MOUNTPOINT=$4
-    BASEDIR=$5
-    DUMPFILE=$6
-
-    if [ "$BASEDIR" == "" -o "$BASEDIR" == "/" ]; then
-        /bin/echo "cowardly refusing to delete root."
-        return 1
-    fi
-
-    # we don't do rm -r since we don't want to delete
-    # anything we didn't create.
-    /bin/rm -f $SRC_FILENAME
-    /bin/rmdir $SRC_MOUNTPOINT
-    /bin/rm -f $DEST_FILENAME
-    /bin/rmdir $DEST_MOUNTPOINT
-    /bin/rm -f $DUMPFILE
-    /bin/rmdir $BASEDIR
-   
-    return 0 
-}
-
-###############################################
-#
-# the actual script
-#
-BASEDIR=`/bin/mktemp -d`
-
-SRC_FILENAME=$BASEDIR/dump-test-src.img
-SRC_LOOPDEV=/dev/loop6
-SRC_MOUNTPOINT=$BASEDIR/src
-DEST_FILENAME=$BASEDIR/dump-test-dst.img
-DEST_LOOPDEV=/dev/loop7
-DEST_MOUNTPOINT=$BASEDIR/dest
-DUMPFILE=$BASEDIR/dump-test.dump
-
-/bin/echo BASEDIR = $BASEDIR
-
-/usr/bin/install -d $BASEDIR
-/usr/bin/install -d $SRC_MOUNTPOINT
-/usr/bin/install -d $DEST_MOUNTPOINT
-
-# Setup source partition
-setup_src_partition $SRC_FILENAME $SRC_LOOPDEV $SRC_MOUNTPOINT
-if [ $? -ne 0 ]; then
-   /bin/echo "creating source test partition failed."
-   cleanup $SRC_FILENAME $SRC_MOUNTPOINT $DEST_FILENAME $DEST_MOUNTPOINT $BASEDIR $DUMPFILE
-   exit 1
-fi
-
-# create dest partition (for restores)
-mkvirtpart $DEST_FILENAME $DEST_LOOPDEV
-if [ $? -ne 0 ]; then
-   /bin/echo "creating destination test partition failed."
-   cleanup $SRC_FILENAME $SRC_MOUNTPOINT $DEST_FILENAME $DEST_MOUNTPOINT $BASEDIR $DUMPFILE
-   exit 1
-fi
-
-echo
-echo "testing basic dump/restore" 
-dump_verify_restore $SRC_LOOPDEV $SRC_MOUNTPOINT $DEST_LOOPDEV $DEST_MOUNTPOINT $DUMPFILE
-if [ $? -ne 0 ]; then
-   /bin/echo "dump cycle failed."
-   cleanup $SRC_FILENAME $SRC_MOUNTPOINT $DEST_FILENAME $DEST_MOUNTPOINT $BASEDIR $DUMPFILE
-   exit 1
-fi
-
-echo
-echo "testing compressed dump/restore (lzo)..."
-dump_verify_restore $SRC_LOOPDEV $SRC_MOUNTPOINT $DEST_LOOPDEV $DEST_MOUNTPOINT $DUMPFILE -y
-if [ $? -ne 0 ]; then
-   /bin/echo "dump cycle failed."
-   cleanup $SRC_FILENAME $SRC_MOUNTPOINT $DEST_FILENAME $DEST_MOUNTPOINT $BASEDIR $DUMPFILE
-   exit 1
-fi
-
-echo
-echo "testing compressed dump/restore (zlib)..."
-dump_verify_restore $SRC_LOOPDEV $SRC_MOUNTPOINT $DEST_LOOPDEV $DEST_MOUNTPOINT $DUMPFILE -z2
-if [ $? -ne 0 ]; then
-   /bin/echo "dump cycle failed."
-   cleanup $SRC_FILENAME $SRC_MOUNTPOINT $DEST_FILENAME $DEST_MOUNTPOINT $BASEDIR $DUMPFILE
-   exit 1
-fi
-
-echo
-echo "testing compressed dump/restore (bzlib)..."
-dump_verify_restore $SRC_LOOPDEV $SRC_MOUNTPOINT $DEST_LOOPDEV $DEST_MOUNTPOINT $DUMPFILE -j2
-if [ $? -ne 0 ]; then
-   /bin/echo "dump cycle failed."
-   cleanup $SRC_FILENAME $SRC_MOUNTPOINT $DEST_FILENAME $DEST_MOUNTPOINT $BASEDIR $DUMPFILE
-   exit 1
-fi
-
-cleanup $SRC_FILENAME $SRC_MOUNTPOINT $DEST_FILENAME $DEST_MOUNTPOINT $BASEDIR $DUMPFILE
-
-/bin/echo "#"
-/bin/echo "# success!"
-/bin/echo "#"
-
-exit 0
diff --git a/testing/scripts/quick-regression.sh b/testing/scripts/quick-regression.sh
new file mode 100644 (file)
index 0000000..3374305
--- /dev/null
@@ -0,0 +1,354 @@
+#!/bin/bash
+
+#
+# 5-second regression test for dump/verify/restore. It's not intended to be
+# an exhaustive regression test, just a quick way to verify that you haven't
+# introduced any errors when changing code.
+#
+# N.B., this only verifies that THIS build of dump(8) and THIS build of
+# restore(8) will play well together. It does not guarantee that these systems
+# are compatible with released versions of the software! For that we need
+# to keep images of known-good partitions and dump files.
+#
+# Author: Bear Giles (bgiles@coyotesong.com)
+# License granted to dump project under non-advertising BSD license.
+#
+
+#
+# Create 10 MB virtual partition.
+#
+# mkvirtpart(filename, loop device)
+#
+mkvirtpart()
+{
+    FILENAME=$1
+    LOOPDEV=$2
+    
+    if [ "$#" -ne "2" ]; then
+      /bin/echo "usage: mkvrtpart FILENAME LOOPDEV"
+      return 1
+    fi
+    
+    # create 10M sparse file
+    /usr/bin/truncate -s 10M $FILENAME
+    if [ "$?" -ne "0" ]; then
+      /bin/echo "unable to create partition image."
+      return 1
+    fi
+    
+    # mount and format it
+    /sbin/losetup $LOOPDEV $FILENAME
+    if [ "$?" -ne "0" ]; then
+      /bin/echo "setting up loop device failed."
+      return 1
+    fi
+    
+    /sbin/mkfs -text4 $LOOPDEV
+    if [ "$?" -ne "0" ]; then
+      /bin/echo "formating test partition failed."
+      /sbin/losetup -d $LOOPDEV
+      return 1
+    fi
+    
+    /sbin/losetup -d $LOOPDEV
+    if [ "$?" -ne "0" ]; then
+      /bin/echo "tearing down loop device failed."
+      return 1
+    fi
+}
+
+#
+# Populate test filesystem
+#
+# mktestfs(root)
+mktestfs()
+{
+    ROOT=$1
+    
+    if [ "$#" -ne "1" ]; then
+      /bin/echo "usage: mktestfs ROOT"
+      return 1
+    fi
+
+    if [ "$ROOT" == "" -o "$ROOT" == "/" ]; then
+        /bin/echo "cowardly refusing to stomp on root."
+        return 1
+    fi
+    
+    /usr/bin/install -d $ROOT
+    
+    # create typical file
+    /usr/bin/touch $ROOT/perm644
+    /bin/chmod 0644 $ROOT/perm644
+    
+    # create typical executable
+    /usr/bin/touch $ROOT/perm755
+    /bin/chmod 0755 $ROOT/perm755
+    
+    # create multiple symlinks
+    /usr/bin/touch $ROOT/symlink
+    /bin/ln $ROOT/symlink $ROOT/symlink1
+    /bin/ln $ROOT/symlink $ROOT/symlink2
+    
+    # create hard links
+    /usr/bin/touch $ROOT/hardlink
+    /bin/ln $ROOT/hardlink $ROOT/hardlink1
+    /bin/ln $ROOT/hardlink $ROOT/hardlink2
+    
+    # create block device
+    /bin/mknod $ROOT/block b 10 20
+    
+    # create character device
+    /bin/mknod $ROOT/char c 11 21
+    
+    # create FIFO
+    /bin/mknod $ROOT/pipe p
+    
+    # make sparse device
+    #/usr/bin/truncate -s 500k $ROOT/sparse
+    
+    # populate some files
+    /bin/mkdir $ROOT/man1
+    /bin/cp -rp /usr/share/man/man1/* $ROOT/man1
+}
+
+#
+# Single test cycle
+#
+dump_verify_restore() {    
+    
+    if [ "$#" -lt "5" ]; then
+      /bin/echo "usage: dump_verify_restore SRC_LOOPDEV SRC_MOUNTPOINT DEST_LOOPDEV DEST_MOUNTPOINT DUMPFILE ..."
+      return 1
+    fi
+
+    SRC_LOOPDEV=$1
+    SRC_MOUNTPOINT=$2
+    DEST_LOOPDEV=$3
+    DEST_MOUNTPOINT=$4
+    DUMPFILE=$5
+    
+    shift; shift; shift; shift; shift
+
+    /sbin/losetup $SRC_LOOPDEV $SRC_FILENAME
+    if [ "$?" -ne "0" ]; then
+      /bin/echo "setting up loop device failed."
+      return 1
+    fi
+
+    # we have to mount partition for verify to work even if we dump the
+    # underlying partition.
+    /bin/mount $SRC_LOOPDEV $SRC_MOUNTPOINT
+    if [ "$?" -ne "0" ]; then
+        /bin/echo "mounting source partition failed."
+        /sbin/losetup -d $SRC_LOOPDEV
+        return 1;
+    fi
+
+    # dump the test partition
+    ../dump/dump -0 $@ -f $DUMPFILE $SRC_LOOPDEV
+    if [ "$?" -ne "0" ]; then
+      echo "dump failed, error code $?"
+      /bin/rm $DUMPFILE
+      /bin/umount $SRC_MOUNTPOINT
+      /sbin/losetup -d $SRC_LOOPDEV
+      return 1
+    fi
+
+    # verify
+    ../restore/restore -C -f $DUMPFILE
+    if [ "$?" -ne "0" ]; then
+      echo "verification failed, error code $?"
+      /bin/rm $DUMPFILE
+      /bin/umount $SRC_MOUNTPOINT
+      /sbin/losetup -d $SRC_LOOPDEV
+      return 1
+    fi
+
+    # restore fs, compare to orginal one
+    # I can't do that yet since restore will only restore to the current directory.
+    # this makes sense for a number of reasons it difficult to test our newly
+    # compiled code.
+    # ../../restore/restore -r ...    
+    
+    # tear everything down
+    /bin/umount $SRC_MOUNTPOINT
+    if [ "$?" -ne "0" ]; then
+       /bin/echo "unmounting test partition failed."
+       return 1    
+    fi
+
+    /sbin/losetup -d $SRC_LOOPDEV
+    if [ "$?" -ne "0" ]; then
+      /bin/echo "tearing down loop device failed."
+      return 1
+    fi
+}
+
+#
+# set up source partition.
+#
+setup_src_partition() {
+    SRC_FILENAME=$1
+    SRC_LOOPDEV=$2
+    SRC_MOUNTPOINT=$3
+    
+    if [ "$#" -ne "3" ]; then
+      /bin/echo "usage: setup_src_partition SRC_FILENAME SRC_LOOPDEV SRC_MOUNTPOINT"
+      return 1
+    fi
+    
+    mkvirtpart $SRC_FILENAME $SRC_LOOPDEV
+    if [ $? -ne 0 ]; then
+       /bin/echo "creating source test partition failed."
+       return 1
+    fi
+
+    # mount it
+    /sbin/losetup $SRC_LOOPDEV $SRC_FILENAME
+    if [ "$?" -ne "0" ]; then
+       /bin/echo "setting up loop device failed."
+       return 1
+    fi
+
+    /bin/mount $SRC_LOOPDEV $SRC_MOUNTPOINT
+    if [ "$?" -ne "0" ]; then
+       /bin/echo "mounting test partition failed."
+       return 1
+    fi
+
+    mktestfs $SRC_MOUNTPOINT
+    if [ "$?" -ne "0" ]; then
+       return 1
+    fi
+      
+    /bin/umount $SRC_LOOPDEV
+    if [ "$?" -ne "0" ]; then
+       /bin/echo "unmounting test partition failed."
+       return 1
+    fi
+      
+    /sbin/losetup -d $SRC_LOOPDEV
+    if [ "$?" -ne "0" ]; then
+      /bin/echo "tearing down loop device failed."
+      return 1
+    fi
+    
+    return 0
+}
+
+
+#
+# clean up temporary files. We want to be extremely careful here that
+# we don't accidently do a 'rm -rf' on / 
+#
+cleanup() {
+    
+    if [ "$#" -ne "6" ]; then
+      /bin/echo "usage: cleanup SRC_FILENAME SRC_MOUNTPOINT DEST_FILENAME DEST_MOUNTPOINT BASEDIR DUMPFILE"
+      return 1
+    fi
+    
+    SRC_FILENAME=$1
+    SRC_MOUNTPOINT=$2
+    DEST_FILENAME=$3
+    DEST_MOUNTPOINT=$4
+    BASEDIR=$5
+    DUMPFILE=$6
+
+    if [ "$BASEDIR" == "" -o "$BASEDIR" == "/" ]; then
+        /bin/echo "cowardly refusing to delete root."
+        return 1
+    fi
+
+    # we don't do rm -r since we don't want to delete
+    # anything we didn't create.
+    /bin/rm -f $SRC_FILENAME
+    /bin/rmdir $SRC_MOUNTPOINT
+    /bin/rm -f $DEST_FILENAME
+    /bin/rmdir $DEST_MOUNTPOINT
+    /bin/rm -f $DUMPFILE
+    /bin/rmdir $BASEDIR
+   
+    return 0 
+}
+
+###############################################
+#
+# the actual script
+#
+BASEDIR=`/bin/mktemp -d`
+
+SRC_FILENAME=$BASEDIR/dump-test-src.img
+SRC_LOOPDEV=/dev/loop6
+SRC_MOUNTPOINT=$BASEDIR/src
+DEST_FILENAME=$BASEDIR/dump-test-dst.img
+DEST_LOOPDEV=/dev/loop7
+DEST_MOUNTPOINT=$BASEDIR/dest
+DUMPFILE=$BASEDIR/dump-test.dump
+
+/bin/echo BASEDIR = $BASEDIR
+
+/usr/bin/install -d $BASEDIR
+/usr/bin/install -d $SRC_MOUNTPOINT
+/usr/bin/install -d $DEST_MOUNTPOINT
+
+# Setup source partition
+setup_src_partition $SRC_FILENAME $SRC_LOOPDEV $SRC_MOUNTPOINT
+if [ $? -ne 0 ]; then
+   /bin/echo "creating source test partition failed."
+   cleanup $SRC_FILENAME $SRC_MOUNTPOINT $DEST_FILENAME $DEST_MOUNTPOINT $BASEDIR $DUMPFILE
+   exit 1
+fi
+
+# create dest partition (for restores)
+mkvirtpart $DEST_FILENAME $DEST_LOOPDEV
+if [ $? -ne 0 ]; then
+   /bin/echo "creating destination test partition failed."
+   cleanup $SRC_FILENAME $SRC_MOUNTPOINT $DEST_FILENAME $DEST_MOUNTPOINT $BASEDIR $DUMPFILE
+   exit 1
+fi
+
+echo
+echo "testing basic dump/restore" 
+dump_verify_restore $SRC_LOOPDEV $SRC_MOUNTPOINT $DEST_LOOPDEV $DEST_MOUNTPOINT $DUMPFILE
+if [ $? -ne 0 ]; then
+   /bin/echo "dump cycle failed."
+   cleanup $SRC_FILENAME $SRC_MOUNTPOINT $DEST_FILENAME $DEST_MOUNTPOINT $BASEDIR $DUMPFILE
+   exit 1
+fi
+
+echo
+echo "testing compressed dump/restore (lzo)..."
+dump_verify_restore $SRC_LOOPDEV $SRC_MOUNTPOINT $DEST_LOOPDEV $DEST_MOUNTPOINT $DUMPFILE -y
+if [ $? -ne 0 ]; then
+   /bin/echo "dump cycle failed."
+   cleanup $SRC_FILENAME $SRC_MOUNTPOINT $DEST_FILENAME $DEST_MOUNTPOINT $BASEDIR $DUMPFILE
+   exit 1
+fi
+
+echo
+echo "testing compressed dump/restore (zlib)..."
+dump_verify_restore $SRC_LOOPDEV $SRC_MOUNTPOINT $DEST_LOOPDEV $DEST_MOUNTPOINT $DUMPFILE -z2
+if [ $? -ne 0 ]; then
+   /bin/echo "dump cycle failed."
+   cleanup $SRC_FILENAME $SRC_MOUNTPOINT $DEST_FILENAME $DEST_MOUNTPOINT $BASEDIR $DUMPFILE
+   exit 1
+fi
+
+echo
+echo "testing compressed dump/restore (bzlib)..."
+dump_verify_restore $SRC_LOOPDEV $SRC_MOUNTPOINT $DEST_LOOPDEV $DEST_MOUNTPOINT $DUMPFILE -j2
+if [ $? -ne 0 ]; then
+   /bin/echo "dump cycle failed."
+   cleanup $SRC_FILENAME $SRC_MOUNTPOINT $DEST_FILENAME $DEST_MOUNTPOINT $BASEDIR $DUMPFILE
+   exit 1
+fi
+
+cleanup $SRC_FILENAME $SRC_MOUNTPOINT $DEST_FILENAME $DEST_MOUNTPOINT $BASEDIR $DUMPFILE
+
+/bin/echo "#"
+/bin/echo "# success!"
+/bin/echo "#"
+
+exit 0