]> git.proxmox.com Git - mirror_zfs.git/blame - 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
CommitLineData
b4555c77 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
6e91a72f
BB
32# N.B. The 'zfs remap' command has been disabled and may be removed.
33export ZFS_REMAP_ENABLED=YES
34
b4555c77 35verify_runnable "both"
36
37function cleanup
38{
39 destroy_pool $TESTPOOL
40 rm -f $DISK1 $DISK2
41}
42
43log_assert "'zfs remap' depends on feature@obsolete_counts being active"
44log_onexit cleanup
45
46f="$TESTPOOL/fs"
47v="$TESTPOOL/vol"
48s="$TESTPOOL/fs@snap"
49c="$TESTPOOL/clone"
50
51DISK1="$TEST_BASE_DIR/zfs_remap-1"
52DISK2="$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
56log_must truncate -s $(($MINVDEVSIZE * 2)) $DISK1
57log_must zpool create -o feature@obsolete_counts=disabled $TESTPOOL $DISK1
58log_must zfs create $f
59log_must zfs create -V 1M -s $v
60log_must zfs snap $s
61log_must zfs clone $s $c
62log_must truncate -s $(($MINVDEVSIZE * 2)) $DISK2
63log_must zpool add $TESTPOOL $DISK2
64log_must zpool remove $TESTPOOL $DISK1
65log_must wait_for_removal $TESTPOOL
66
67# 2. Verify any 'zfs remap' command cannot be executed
68log_mustnot zfs remap $f
69log_mustnot zfs remap $v
70log_mustnot zfs remap $c
71
72# 3. Verify the same commands complete successfully when
73# feature@obsolete_counts is enabled
74log_must zpool set feature@obsolete_counts=enabled $TESTPOOL
75log_must zfs remap $f
76log_must zfs remap $v
77log_must zfs remap $c
78
79log_pass "'zfs remap' correctly depends on feature@obsolete_counts being active"