3 # This file and its contents are supplied under the terms of the
4 # Common Development and Distribution License ("CDDL"), version 1.0.
5 # You may only use this file in accordance with the terms of version
8 # A full copy of the text of the CDDL should have accompanied this
9 # source. A copy of the CDDL is also available via the Internet at
10 # http://www.illumos.org/license/CDDL.
14 # Copyright 2018, loli10K <ezomori.nozomu@gmail.com>. All rights reserved.
17 .
$STF_SUITE/include
/libtest.shlib
18 .
$STF_SUITE/tests
/functional
/removal
/removal.kshlib
22 # 'zfs remap' depends on 'feature@obsolete_counts' being active
25 # 1. Prepare a pool where a top-level VDEV has been removed and with
26 # feature@obsolete_counts disabled
27 # 2. Verify any 'zfs remap' command cannot be executed
28 # 3. Verify the same commands complete successfully when
29 # feature@obsolete_counts is enabled
32 # N.B. The 'zfs remap' command has been disabled and may be removed.
33 export ZFS_REMAP_ENABLED
=YES
35 verify_runnable
"both"
39 destroy_pool
$TESTPOOL
43 log_assert
"'zfs remap' depends on feature@obsolete_counts being active"
51 DISK1
="$TEST_BASE_DIR/zfs_remap-1"
52 DISK2
="$TEST_BASE_DIR/zfs_remap-2"
54 # 1. Prepare a pool where a top-level VDEV has been removed with
55 # feature@obsolete_counts disabled
56 log_must truncate
-s $
(($MINVDEVSIZE * 2)) $DISK1
57 log_must zpool create
-o feature@obsolete_counts
=disabled
$TESTPOOL $DISK1
58 log_must zfs create
$f
59 log_must zfs create
-V 1M
-s $v
61 log_must zfs clone
$s $c
62 log_must truncate
-s $
(($MINVDEVSIZE * 2)) $DISK2
63 log_must zpool add
$TESTPOOL $DISK2
64 log_must zpool remove
$TESTPOOL $DISK1
65 log_must wait_for_removal
$TESTPOOL
67 # 2. Verify any 'zfs remap' command cannot be executed
68 log_mustnot zfs remap
$f
69 log_mustnot zfs remap
$v
70 log_mustnot zfs remap
$c
72 # 3. Verify the same commands complete successfully when
73 # feature@obsolete_counts is enabled
74 log_must zpool
set feature@obsolete_counts
=enabled
$TESTPOOL
79 log_pass
"'zfs remap' correctly depends on feature@obsolete_counts being active"