diff options
Diffstat (limited to 'tests/zfs-tests/tests/functional/snapshot/snapshot_006_pos.ksh')
-rwxr-xr-x | tests/zfs-tests/tests/functional/snapshot/snapshot_006_pos.ksh | 39 |
1 files changed, 19 insertions, 20 deletions
diff --git a/tests/zfs-tests/tests/functional/snapshot/snapshot_006_pos.ksh b/tests/zfs-tests/tests/functional/snapshot/snapshot_006_pos.ksh index 68a616c02..d2a304670 100755 --- a/tests/zfs-tests/tests/functional/snapshot/snapshot_006_pos.ksh +++ b/tests/zfs-tests/tests/functional/snapshot/snapshot_006_pos.ksh @@ -54,24 +54,28 @@ function cleanup cd $CWD || log_fail "Could not cd $CWD" fi - snapexists $SNAPCTR - if [[ $? -eq 0 ]]; then - log_must zfs destroy $SNAPCTR - fi + snapexists $SNAPCTR + if [[ $? -eq 0 ]]; then + log_must zfs destroy $SNAPCTR + fi - if [[ -e $SNAPDIR1 ]]; then - log_must rm -rf $SNAPDIR1 > /dev/null 2>&1 - fi + if [[ -e $SNAPDIR1 ]]; then + log_must rm -rf $SNAPDIR1 > /dev/null 2>&1 + fi - if [[ -e $TESTDIR1 ]]; then - log_must rm -rf $TESTDIR1/* > /dev/null 2>&1 - fi + if [[ -e $TESTDIR1 ]]; then + log_must rm -rf $TESTDIR1/* > /dev/null 2>&1 + fi + if [[ -d "$SNAPSHOT_TARDIR" ]]; then + log_must rm -rf $SNAPSHOT_TARDIR > /dev/null 2>&1 + fi } log_assert "Verify that an archive of a dataset is identical to " \ "an archive of the dataset's snapshot." +SNAPSHOT_TARDIR="$(mktemp -d /tmp/zfstests_snapshot_006.XXXXXX)" log_onexit cleanup typeset -i COUNT=21 @@ -85,14 +89,13 @@ typeset i=1 while [ $i -lt $COUNT ]; do log_must file_write -o $OP -f $TESTDIR1/file$i \ -b $BLOCKSZ -c $NUM_WRITES -d $DATA - (( i = i + 1 )) done log_note "Create a tarball from $TESTDIR1 contents..." CWD=$PWD cd $TESTDIR1 || log_fail "Could not cd $TESTDIR1" -log_must tar cf $TESTDIR1/tarball.original.tar file* +log_must tar cf $SNAPSHOT_TARDIR/original.tar . cd $CWD || log_fail "Could not cd $CWD" log_note "Create a snapshot and mount it..." @@ -104,7 +107,7 @@ log_must rm -f $TESTDIR1/file* > /dev/null 2>&1 log_note "Create tarball of snapshot..." CWD=$PWD cd $SNAPDIR1 || log_fail "Could not cd $SNAPDIR1" -log_must tar cf $TESTDIR1/tarball.snapshot.tar file* +log_must tar cf $SNAPSHOT_TARDIR/snapshot.tar . cd $CWD || log_fail "Could not cd $CWD" log_must mkdir $TESTDIR1/original @@ -112,16 +115,12 @@ log_must mkdir $TESTDIR1/snapshot CWD=$PWD cd $TESTDIR1/original || log_fail "Could not cd $TESTDIR1/original" -log_must tar xf $TESTDIR1/tarball.original.tar +log_must tar xf $SNAPSHOT_TARDIR/original.tar cd $TESTDIR1/snapshot || log_fail "Could not cd $TESTDIR1/snapshot" -log_must tar xf $TESTDIR1/tarball.snapshot.tar +log_must tar xf $SNAPSHOT_TARDIR/snapshot.tar cd $CWD || log_fail "Could not cd $CWD" -diff -q -r $TESTDIR1/original $TESTDIR1/snapshot > /dev/null 2>&1 -if [[ $? -eq 1 ]]; then - log_fail "Directory structures differ." -fi - +log_must directory_diff $TESTDIR1/original $TESTDIR1/snapshot log_pass "Directory structures match." |