# # 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 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 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`