blob: 7d8643670976e7ed4bbb09a818ab9e22b684a39c [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) 2013, 2016 by Delphix. All rights reserved.
#
. $STF_SUITE/include/libtest.shlib
export DISKSARRAY=$DISKS
export DISK_ARRAY_NUM=$(echo ${DISKS} | nawk '{print NF}')
set -A disk_array $(find_disks $DISKS)
case "${#disk_array[*]}" in
0)
DISK_COUNT=0
;;
1)
# We need to repartition the single disk to two slices.
DISK_COUNT=1
ZFS_DISK=${disk_array[0]}
SINGLE_DISK=$ZFS_DISK
NONZFS_DISK=$ZFS_DISK
if is_linux; then
if is_mpath_device $ZFS_DISK; then
export DEV_DSKDIR=$DEV_MPATHDIR
else
export DEV_DSKDIR=$DEV_RDSKDIR
fi
if ( is_mpath_device $ZFS_DISK ) && [[ -z $(echo $ZFS_DISK | awk 'substr($1,18,1)\
~ /^[[:digit:]]+$/') ]] || ( is_real_device $ZFS_DISK ); then
ZFSSIDE_DISK=${SINGLE_DISK}1
NONZFSSIDE_DISK=${SINGLE_DISK}2
elif ( is_mpath_device $ZFS_DISK || is_loop_device $ZFS_DISK ); then
ZFSSIDE_DISK=${SINGLE_DISK}p1
NONZFSSIDE_DISK=${SINGLE_DISK}p2
else
log_fail "$ZFS_DISK not supported for partitioning."
fi
else
export DEV_DSKDIR="/dev"
ZFSSIDE_DISK=${SINGLE_DISK}s0
NONZFSSIDE_DISK=${SINGLE_DISK}s1
fi
;;
*)
# In this case there are at least enough disks to use.
DISK_COUNT=2
ZFS_DISK=${disk_array[0]}
NONZFS_DISK=${disk_array[1]}
if is_linux; then
if is_mpath_device $ZFS_DISK; then
export DEV_DSKDIR=$DEV_MPATHDIR
else
export DEV_DSKDIR=$DEV_RDSKDIR
fi
if ( is_mpath_device $ZFS_DISK ) && [[ -z $(echo $ZFS_DISK | awk 'substr($1,18,1)\
~ /^[[:digit:]]+$/') ]] || ( is_real_device $ZFS_DISK ); then
ZFSSIDE_DISK=${ZFS_DISK}1
elif ( is_mpath_device $ZFS_DISK || is_loop_device $ZFS_DISK ); then
ZFSSIDE_DISK=${ZFS_DISK}p1
else
log_fail "$ZFS_DISK not supported for partitioning."
fi
if ( is_mpath_device $NONZFS_DISK ) && [[ -z $(echo $NONZFS_DISK | awk 'substr($1,18,1)\
~ /^[[:digit:]]+$/') ]] || ( is_real_device $NONZFS_DISK ); then
NONZFSSIDE_DISK=${NONZFS_DISK}1
elif ( is_mpath_device $NONZFS_DISK || is_loop_device $NONZFS_DISK ); then
NONZFSSIDE_DISK=${NONZFS_DISK}p1
else
log_fail "$NONZFS_DISK not supported for partitioning."
fi
else
export DEV_DSKDIR="/dev"
ZFSSIDE_DISK=${ZFS_DISK}s0
NONZFSSIDE_DISK=${NONZFS_DISK}s0
fi
;;
esac
export DISK_COUNT ZFS_DISK NONZFS_DISK SINGLE_DISK ZFSSIDE_DISK NONZFSSIDE_DISK
export TESTFILE=/etc/passwd
export NONZFS_TESTDIR=$TESTDIR/nonzfstestdir
tmp=`sum $TESTFILE`
export SUMA=`echo $tmp | awk '{print $1}'`
export SUMB=`echo $tmp | awk '{print $2}'`
export FS_SIZE=1g
export BNAME=`basename $TESTFILE`
export DNAME=`dirname $TESTFILE`