]> git.proxmox.com Git - mirror_zfs.git/blob - tests/zfs-tests/tests/functional/cli_root/zfs_remap/zfs_remap_obsolete_counts.ksh
Disable 'zfs remap' command
[mirror_zfs.git] / tests / zfs-tests / tests / functional / cli_root / zfs_remap / zfs_remap_obsolete_counts.ksh
1 #!/bin/ksh -p
2 #
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
6 # 1.0 of the CDDL.
7 #
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.
11 #
12
13 #
14 # Copyright 2018, loli10K <ezomori.nozomu@gmail.com>. All rights reserved.
15 #
16
17 . $STF_SUITE/include/libtest.shlib
18 . $STF_SUITE/tests/functional/removal/removal.kshlib
19
20 #
21 # DESCRIPTION:
22 # 'zfs remap' depends on 'feature@obsolete_counts' being active
23 #
24 # STRATEGY:
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
30 #
31
32 # N.B. The 'zfs remap' command has been disabled and may be removed.
33 export ZFS_REMAP_ENABLED=YES
34
35 verify_runnable "both"
36
37 function cleanup
38 {
39 destroy_pool $TESTPOOL
40 rm -f $DISK1 $DISK2
41 }
42
43 log_assert "'zfs remap' depends on feature@obsolete_counts being active"
44 log_onexit cleanup
45
46 f="$TESTPOOL/fs"
47 v="$TESTPOOL/vol"
48 s="$TESTPOOL/fs@snap"
49 c="$TESTPOOL/clone"
50
51 DISK1="$TEST_BASE_DIR/zfs_remap-1"
52 DISK2="$TEST_BASE_DIR/zfs_remap-2"
53
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
60 log_must zfs snap $s
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
66
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
71
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
75 log_must zfs remap $f
76 log_must zfs remap $v
77 log_must zfs remap $c
78
79 log_pass "'zfs remap' correctly depends on feature@obsolete_counts being active"