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_upgrade_008_pos.ksh 1.5 09/06/22 SMI" 30# 31 32. $STF_SUITE/include/libtest.kshlib 33. $STF_SUITE/tests/cli_root/zpool_upgrade/zpool_upgrade.kshlib 34 35################################################################################ 36# 37# __stc_assertion_start 38# 39# ID: zpool_upgrade_008_pos 40# 41# DESCRIPTION: 42# 43# Zpool upgrade should be able to upgrade pools to a given version using -V 44# 45# STRATEGY: 46# 1. For all versions pools that can be upgraded on a given OS version 47# (latest pool version - 1) 48# 2. Pick a version that's a random number, greater than the version 49# we're running. 50# 3. Attempt to upgrade that pool to the given version 51# 4. Check the pool was upgraded correctly. 52# 53# TESTABILITY: explicit 54# 55# TEST_AUTOMATION_LEVEL: automated 56# 57# CODING_STATUS: COMPLETED (2007-09-27) 58# 59# __stc_assertion_end 60# 61################################################################################ 62 63verify_runnable "global" 64 65function cleanup 66{ 67 destroy_upgraded_pool $config 68} 69 70log_assert \ 71 "Zpool upgrade should be able to upgrade pools to a given version using -V" 72 73$ZPOOL upgrade --help 2>&1 | $GREP "V version" > /dev/null 74if [ $? -ne 0 ] 75then 76 log_unsupported "Zpool upgrade -V not supported on this release." 77fi 78log_onexit cleanup 79 80# We're just using the single disk version of the pool, which should be 81# enough to determine if upgrade works correctly. Also set a MAX_VER 82# variable, which specifies the highest version that we should expect 83# a zpool upgrade operation to succeed from. (latest version - 1) 84CONFIGS="1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 28" 85MAX_VER=28 86 87for config in $CONFIGS 88do 89 create_old_pool $config 90 pool=$($ENV| $GREP "ZPOOL_VERSION_${config}_NAME" \ 91 | $AWK -F= '{print $2}') 92 NEXT=$(random $config $MAX_VER) 93 log_must $ZPOOL upgrade -V $NEXT $pool 94 check_poolversion $pool $NEXT 95 destroy_upgraded_pool $config 96done 97 98log_pass \ 99 "Zpool upgrade should be able to upgrade pools to a given version using -V" 100