7260 disable libdiskmgmt in zfstest unless it's required
[unleashed.git] / usr / src / test / zfs-tests / tests / functional / cli_root / zpool_create / zpool_create_009_neg.ksh
blob09159c393356900f547f34602b8a1e5ea3e0ae34
1 #!/bin/ksh -p
3 # CDDL HEADER START
5 # The contents of this file are subject to the terms of the
6 # Common Development and Distribution License (the "License").
7 # You may not use this file except in compliance with the License.
9 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10 # or http://www.opensolaris.org/os/licensing.
11 # See the License for the specific language governing permissions
12 # and limitations under the License.
14 # When distributing Covered Code, include this CDDL HEADER in each
15 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16 # If applicable, add the following below this CDDL HEADER, with the
17 # fields enclosed by brackets "[]" replaced with your own identifying
18 # information: Portions Copyright [yyyy] [name of copyright owner]
20 # CDDL HEADER END
24 # Copyright 2009 Sun Microsystems, Inc. All rights reserved.
25 # Use is subject to license terms.
29 # Copyright (c) 2012, 2015 by Delphix. All rights reserved.
32 . $STF_SUITE/include/libtest.shlib
33 . $STF_SUITE/tests/functional/cli_root/zpool_create/zpool_create.shlib
36 # DESCRIPTION:
37 # Create a pool with same devices twice or create two pools with same
38 # devices, 'zpool create' should failed.
40 # STRATEGY:
41 # 1. Loop to create the following three kinds of pools.
42 # - Regular pool
43 # - Mirror
44 # - Raidz
45 # 2. Create two pools but using the same disks, expect failed.
46 # 3. Create one pool but using the same disks twice, expect failed.
49 verify_runnable "global"
51 function cleanup
53 typeset dtst
54 typeset disk
56 for dtst in $TESTPOOL $TESTPOOL1; do
57 poolexists $dtst && destroy_pool $dtst
58 done
60 for disk in $DISKS; do
61 partition_disk $SIZE $disk 6
62 done
65 log_assert "Create a pool with same devices twice or create two pools with " \
66 "same devices, 'zpool create' should fail."
67 log_onexit cleanup
69 unset NOINUSE_CHECK
70 typeset opt
71 for opt in "" "mirror" "raidz" "raidz1"; do
72 typeset disk="$DISKS"
73 (( ${#opt} == 0 )) && disk=${DISKS%% *}
75 typeset -i count=$(get_word_count $disk)
76 if (( count < 2 && ${#opt} != 0 )) ; then
77 continue
80 # Create two pools but using the same disks.
81 create_pool $TESTPOOL $opt $disk
82 log_mustnot $ZPOOL create -f $TESTPOOL1 $opt $disk
83 destroy_pool $TESTPOOL
85 # Create two pools and part of the devices were overlapped
86 create_pool $TESTPOOL $opt $disk
87 log_mustnot $ZPOOL create -f $TESTPOOL1 $opt ${DISKS% *}
88 destroy_pool $TESTPOOL
90 # Create one pool but using the same disks twice.
91 log_mustnot $ZPOOL create -f $TESTPOOL $opt $disk $disk
92 done
94 log_pass "Using overlapping or in-use disks to create a new pool fails as expected."