blob: 79423abe25756ea1ca7035a94ba15848d4705db3 [file] [log] [blame]
#
# CDDL HEADER START
#
# The contents of this file are subject to the terms of the
# Common Development and Distribution License (the "License").
# You may not use this file except in compliance with the License.
#
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
# or http://www.opensolaris.org/os/licensing.
# See the License for the specific language governing permissions
# and limitations under the License.
#
# When distributing Covered Code, include this CDDL HEADER in each
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
# If applicable, add the following below this CDDL HEADER, with the
# fields enclosed by brackets "[]" replaced with your own identifying
# information: Portions Copyright [yyyy] [name of copyright owner]
#
# CDDL HEADER END
#
#
# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
#
# Copyright (c) 2012, 2016 by Delphix. All rights reserved.
#
. $STF_SUITE/include/libtest.shlib
export DISKSARRAY=$DISKS
export DISK_ARRAY_NUM=$(echo ${DISKS} | nawk '{print NF}')
typeset -a disk_array=($(find_disks $DISKS))
case "${#disk_array[*]}" in
0)
#
# on stf_configure, disk_freelist returns empty.
#
DISK_COUNT=0
;;
1)
# We need to repartition the single disk to two slices.
if is_linux; then
set_device_dir
set_slice_prefix
PRIMARY_SLICE=1
DISK_COUNT=1
ZFS_DISK1=${disk_array[0]}
ZFS_DISK2=${disk_array[0]}
if is_mpath_device $ZFS_DISK1; then
export DEV_DSKDIR=$DEV_MPATHDIR
else
export DEV_DSKDIR=$DEV_RDSKDIR
fi
if ( is_mpath_device $ZFS_DISK1 ) && [[ -z $(echo $ZFS_DISK1 | awk 'substr($1,18,1)\
~ /^[[:digit:]]+$/') ]] || ( is_real_device $ZFS_DISK1 ); then
ZFSSIDE_DISK1=${ZFS_DISK1}1
elif ( is_mpath_device $ZFS_DISK1 || is_loop_device $ZFS_DISK1 ); then
ZFSSIDE_DISK1=${ZFS_DISK1}p1
else
log_fail "$ZFS_DISK1 not supported for partitioning."
fi
else
export DEV_DSKDIR="/dev"
PRIMARY_SLICE=2
DISK_COUNT=1
ZFS_DISK1=${disk_array[0]}
ZFSSIDE_DISK1=${ZFS_DISK1}s0
ZFS_DISK2=${disk_array[0]}
fi
;;
*)
# We need to repartition the single disk to two slices.
if is_linux; then
set_device_dir
set_slice_prefix
PRIMARY_SLICE=1
DISK_COUNT=2
ZFS_DISK1=${disk_array[0]}
if is_mpath_device $ZFS_DISK1; then
export DEV_DSKDIR=$DEV_MPATHDIR
else
export DEV_DSKDIR=$DEV_RDSKDIR
fi
if ( is_mpath_device $ZFS_DISK1 ) && [[ -z $(echo $ZFS_DISK1 | awk 'substr($1,18,1)\
~ /^[[:digit:]]+$/') ]] || ( is_real_device $ZFS_DISK1 ); then
ZFSSIDE_DISK1=${ZFS_DISK1}1
elif ( is_mpath_device $ZFS_DISK1 || is_loop_device $ZFS_DISK1 ); then
ZFSSIDE_DISK1=${ZFS_DISK1}p1
else
log_fail "$ZFS_DISK1 not supported for partitioning."
fi
ZFS_DISK2=${disk_array[1]}
else
export DEV_DSKDIR="/dev"
PRIMARY_SLICE=2
DISK_COUNT=2
ZFS_DISK1=${disk_array[0]}
ZFSSIDE_DISK1=${ZFS_DISK1}s0
ZFS_DISK2=${disk_array[1]}
fi
;;
esac
export DISK_COUNT ZFS_DISK1 ZFSSIDE_DISK1 ZFS_DISK2
export FS_SIZE="$((($MINVDEVSIZE / (1024 * 1024)) * 32))m"
export FILE_SIZE="$((MINVDEVSIZE))"
export SLICE_SIZE="$((($MINVDEVSIZE / (1024 * 1024)) * 2))m"
export MAX_NUM=5
export GROUP_NUM=3
export DEVICE_DIR=$TEST_BASE_DIR/dev_import-test
export BACKUP_DEVICE_DIR=$TEST_BASE_DIR/bakdev_import-test
export DEVICE_FILE=disk
export DEVICE_ARCHIVE=archive_import-test
export MYTESTFILE=$STF_SUITE/include/libtest.shlib
export CPATH=$TEST_BASE_DIR/cachefile.$$
export CPATHBKP=$TEST_BASE_DIR/cachefile.$$.bkp
export CPATHBKP2=$TEST_BASE_DIR/cachefile.$$.bkp2
export MD5FILE=$TEST_BASE_DIR/md5sums.$$
export MD5FILE2=$TEST_BASE_DIR/md5sums.$$.2
typeset -i num=0
while (( num < $GROUP_NUM )); do
DEVICE_FILES="$DEVICE_FILES ${DEVICE_DIR}/${DEVICE_FILE}$num"
(( num = num + 1 ))
done
export DEVICE_FILES
export VDEV0=$DEVICE_DIR/${DEVICE_FILE}0
export VDEV1=$DEVICE_DIR/${DEVICE_FILE}1
export VDEV2=$DEVICE_DIR/${DEVICE_FILE}2
export VDEV3=$DEVICE_DIR/${DEVICE_FILE}3
export VDEV4=$DEVICE_DIR/${DEVICE_FILE}4
export ALTER_ROOT=/alter_import-test