1#!/usr/local/bin/ksh93 -p 2# 3# CDDL HEADER START 4# 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. 8# 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. 13# 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] 19# 20# CDDL HEADER END 21# 22 23# $FreeBSD$ 24 25# 26# Copyright 2009 Sun Microsystems, Inc. All rights reserved. 27# Use is subject to license terms. 28# 29# ident "@(#)zpool_create_006_pos.ksh 1.6 09/06/22 SMI" 30# 31 32. $STF_SUITE/include/libtest.kshlib 33 34################################################################################# 35# 36# __stc_assertion_start 37# 38# ID: zpool_create_006_pos 39# 40# DESCRIPTION: 41# Verify zpool create succeed with multiple keywords combination. 42# 43# STRATEGY: 44# 1. Create base filesystem to hold virtual disk files. 45# 2. Create several files >= 64M. 46# 3. Verify 'zpool create' succeed with valid keywords combination. 47# 48# TESTABILITY: explicit 49# 50# TEST_AUTOMATION_LEVEL: automated 51# 52# CODING_STATUS: COMPLETED (2006-08-16) 53# 54# __stc_assertion_end 55# 56################################################################################ 57 58verify_runnable "global" 59 60function cleanup 61{ 62 datasetexists $TESTPOOL1 && destroy_pool $TESTPOOL1 63 datasetexists $TESTPOOL && destroy_pool $TESTPOOL 64} 65 66 67log_assert "Verify 'zpool create' succeed with keywords combination." 68log_onexit cleanup 69 70create_pool $TESTPOOL $DISKS 71mntpnt=$(get_prop mountpoint $TESTPOOL) 72 73typeset -i i=0 74while ((i < 10)); do 75 log_must create_vdevs $mntpnt/vdev$i 76 77 eval vdev$i=$mntpnt/vdev$i 78 ((i += 1)) 79done 80 81set -A valid_args \ 82 "mirror $vdev0 $vdev1 $vdev2 mirror $vdev3 $vdev4 $vdev5" \ 83 "mirror $vdev0 $vdev1 mirror $vdev2 $vdev3 mirror $vdev4 $vdev5" \ 84 "mirror $vdev0 $vdev1 $vdev2 mirror $vdev3 $vdev4 $vdev5 \ 85 spare $vdev6" \ 86 "mirror $vdev0 $vdev1 mirror $vdev2 $vdev3 mirror $vdev4 $vdev5 \ 87 spare $vdev6 $vdev7" \ 88 "mirror $vdev0 $vdev1 spare $vdev2 mirror $vdev3 $vdev4" \ 89 "raidz $vdev0 $vdev1 $vdev2 raidz1 $vdev3 $vdev4 $vdev5" \ 90 "raidz $vdev0 $vdev1 raidz1 $vdev2 $vdev3 raidz $vdev4 $vdev5" \ 91 "raidz $vdev0 $vdev1 $vdev2 raidz1 $vdev3 $vdev4 $vdev5 \ 92 spare $vdev6" \ 93 "raidz $vdev0 $vdev1 raidz1 $vdev2 $vdev3 raidz $vdev4 $vdev5 \ 94 spare $vdev6 $vdev7" \ 95 "raidz $vdev0 $vdev1 spare $vdev2 raidz $vdev3 $vdev4" \ 96 "raidz2 $vdev0 $vdev1 $vdev2 raidz2 $vdev3 $vdev4 $vdev5" \ 97 "raidz2 $vdev0 $vdev1 $vdev2 raidz2 $vdev3 $vdev4 $vdev5 \ 98 raidz2 $vdev6 $vdev7 $vdev8" \ 99 "raidz2 $vdev0 $vdev1 $vdev2 raidz2 $vdev3 $vdev4 $vdev5 \ 100 spare $vdev6" \ 101 "raidz2 $vdev0 $vdev1 $vdev2 raidz2 $vdev3 $vdev4 $vdev5 \ 102 raidz2 $vdev6 $vdev7 $vdev8 spare $vdev9" \ 103 "raidz2 $vdev0 $vdev1 $vdev2 spare $vdev3 raidz2 $vdev4 $vdev5 $vdev6" 104 105set -A forced_args \ 106 "$vdev0 raidz $vdev1 $vdev2 raidz1 $vdev3 $vdev4 $vdev5" \ 107 "$vdev0 raidz2 $vdev1 $vdev2 $vdev3 raidz2 $vdev4 $vdev5 $vdev6" \ 108 "$vdev0 mirror $vdev1 $vdev2 mirror $vdev3 $vdev4" \ 109 "$vdev0 mirror $vdev1 $vdev2 raidz $vdev3 $vdev4 \ 110 raidz2 $vdev5 $vdev6 $vdev7 spare $vdev8" \ 111 "$vdev0 mirror $vdev1 $vdev2 spare $vdev3 raidz $vdev4 $vdev5" \ 112 "raidz $vdev0 $vdev1 raidz2 $vdev2 $vdev3 $vdev4" \ 113 "raidz $vdev0 $vdev1 raidz2 $vdev2 $vdev3 $vdev4 spare $vdev5" \ 114 "raidz $vdev0 $vdev1 spare $vdev2 raidz2 $vdev3 $vdev4 $vdev5" \ 115 "mirror $vdev0 $vdev1 raidz $vdev2 $vdev3 raidz2 $vdev4 $vdev5 $vdev6" \ 116 "mirror $vdev0 $vdev1 raidz $vdev2 $vdev3 \ 117 raidz2 $vdev4 $vdev5 $vdev6 spare $vdev7" \ 118 "mirror $vdev0 $vdev1 raidz $vdev2 $vdev3 \ 119 spare $vdev4 raidz2 $vdev5 $vdev6 $vdev7" \ 120 "spare $vdev0 $vdev1 $vdev2 mirror $vdev3 $vdev4 raidz $vdev5 $vdev6" 121 122i=0 123while ((i < ${#valid_args[@]})); do 124 log_must $ZPOOL create $TESTPOOL1 ${valid_args[$i]} 125 $SYNC; $SYNC 126 log_must $ZPOOL destroy -f $TESTPOOL1 127 128 ((i += 1)) 129done 130 131i=0 132while ((i < ${#forced_args[@]})); do 133 log_mustnot $ZPOOL create $TESTPOOL1 ${forced_args[$i]} 134 log_must $ZPOOL create -f $TESTPOOL1 ${forced_args[$i]} 135 $SYNC; $SYNC 136 log_must $ZPOOL destroy -f $TESTPOOL1 137 138 ((i += 1)) 139done 140 141log_pass "'zpool create' succeed with keywords combination." 142