summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorSerapheim Dimitropoulos <[email protected]>2018-10-30 09:46:18 -0700
committerBrian Behlendorf <[email protected]>2018-10-30 11:46:18 -0500
commit0a544c174d54d9adcea2faf5817596174582139e (patch)
treee6dae62fe20d54d8313ce699784c83c33f2281e9 /tests
parent63a77ae3cff2eea8f7d92c5ab2ab99af664b34a5 (diff)
zdb -k does not work on Linux when used with -e
This minor bug was introduced with the port of the feature from OpenZFS to ZoL. This patch fixes the issue that was caused by a minor re-ordering from the original code. Reviewed-by: Matthew Ahrens <[email protected]> Reviewed-by: George Melikov <[email protected]> Reviewed-by: Tim Chase <[email protected]> Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Serapheim Dimitropoulos <[email protected]> Closes #8001
Diffstat (limited to 'tests')
-rwxr-xr-xtests/zfs-tests/tests/functional/pool_checkpoint/checkpoint_zdb.ksh26
-rw-r--r--tests/zfs-tests/tests/functional/pool_checkpoint/pool_checkpoint.kshlib11
2 files changed, 32 insertions, 5 deletions
diff --git a/tests/zfs-tests/tests/functional/pool_checkpoint/checkpoint_zdb.ksh b/tests/zfs-tests/tests/functional/pool_checkpoint/checkpoint_zdb.ksh
index 50c45b5b4..fdefc0c3b 100755
--- a/tests/zfs-tests/tests/functional/pool_checkpoint/checkpoint_zdb.ksh
+++ b/tests/zfs-tests/tests/functional/pool_checkpoint/checkpoint_zdb.ksh
@@ -19,7 +19,7 @@
#
# DESCRIPTION:
-# Ensure that checkpoint verification within zdb wowrks as
+# Ensure that checkpoint verification within zdb works as
# we expect.
#
# STRATEGY:
@@ -30,10 +30,12 @@
# 5. Verify zdb finds checkpoint when run on current state
# 6. Verify zdb finds old dataset when run on checkpointed
# state
-# 7. Discard checkpoint
-# 8. Verify zdb does not find the checkpoint anymore in the
+# 7. Export pool, and verify the same things with zdb to
+# test the -e option.
+# 8. Import pool and discard checkpoint
+# 9. Verify zdb does not find the checkpoint anymore in the
# current state.
-# 9. Verify that zdb cannot find the checkpointed state
+# 10.Verify that zdb cannot find the checkpointed state
# anymore when trying to open it for verification.
#
@@ -68,6 +70,22 @@ zdb $TESTPOOL | grep "Dataset $FS1" && \
zdb -k $TESTPOOL | grep "Dataset $CHECKPOINTED_FS1" || \
log_fail "zdb could not find destroyed dataset in checkpoint"
+log_must zpool export $TESTPOOL
+
+zdb -e $TESTPOOL | grep "Checkpointed uberblock found" || \
+ log_fail "zdb could not find checkpointed uberblock"
+
+zdb -k -e $TESTPOOL | grep "Checkpointed uberblock found" && \
+ log_fail "zdb found checkpointed uberblock in checkpointed state"
+
+zdb -e $TESTPOOL | grep "Dataset $FS1" && \
+ log_fail "zdb found destroyed dataset in current state"
+
+zdb -k -e $TESTPOOL | grep "Dataset $CHECKPOINTED_FS1" || \
+ log_fail "zdb could not find destroyed dataset in checkpoint"
+
+log_must zpool import $TESTPOOL
+
log_must zpool checkpoint -d $TESTPOOL
zdb $TESTPOOL | grep "Checkpointed uberblock found" && \
diff --git a/tests/zfs-tests/tests/functional/pool_checkpoint/pool_checkpoint.kshlib b/tests/zfs-tests/tests/functional/pool_checkpoint/pool_checkpoint.kshlib
index cac05b392..3638e3dfe 100644
--- a/tests/zfs-tests/tests/functional/pool_checkpoint/pool_checkpoint.kshlib
+++ b/tests/zfs-tests/tests/functional/pool_checkpoint/pool_checkpoint.kshlib
@@ -161,7 +161,16 @@ function cleanup_nested_pool
function cleanup_test_pool
{
log_must zpool destroy $TESTPOOL
- zpool labelclear -f "$TESTDISK"
+
+ #
+ # We always clear the labels of all disks
+ # between tests so imports from zpool or
+ # or zdb do not get confused with leftover
+ # data from old pools.
+ #
+ for disk in $DISKS; do
+ zpool labelclear -f $disk
+ done
}
function cleanup_nested_pools