1eda14cbcSMatt Macy# 2eda14cbcSMatt Macy# CDDL HEADER START 3eda14cbcSMatt Macy# 4eda14cbcSMatt Macy# The contents of this file are subject to the terms of the 5eda14cbcSMatt Macy# Common Development and Distribution License (the "License"). 6eda14cbcSMatt Macy# You may not use this file except in compliance with the License. 7eda14cbcSMatt Macy# 8eda14cbcSMatt Macy# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9*271171e0SMartin Matuska# or https://opensource.org/licenses/CDDL-1.0. 10eda14cbcSMatt Macy# See the License for the specific language governing permissions 11eda14cbcSMatt Macy# and limitations under the License. 12eda14cbcSMatt Macy# 13eda14cbcSMatt Macy# When distributing Covered Code, include this CDDL HEADER in each 14eda14cbcSMatt Macy# file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15eda14cbcSMatt Macy# If applicable, add the following below this CDDL HEADER, with the 16eda14cbcSMatt Macy# fields enclosed by brackets "[]" replaced with your own identifying 17eda14cbcSMatt Macy# information: Portions Copyright [yyyy] [name of copyright owner] 18eda14cbcSMatt Macy# 19eda14cbcSMatt Macy# CDDL HEADER END 20eda14cbcSMatt Macy# 21eda14cbcSMatt Macy 22eda14cbcSMatt Macy# 23eda14cbcSMatt Macy# Copyright 2008 Sun Microsystems, Inc. All rights reserved. 24eda14cbcSMatt Macy# Use is subject to license terms. 25eda14cbcSMatt Macy# 26eda14cbcSMatt Macy 27eda14cbcSMatt Macy# 28eda14cbcSMatt Macy# Copyright (c) 2013, 2016 by Delphix. All rights reserved. 29eda14cbcSMatt Macy# 30eda14cbcSMatt Macy 31eda14cbcSMatt Macy. $STF_SUITE/include/libtest.shlib 32eda14cbcSMatt Macy 33eda14cbcSMatt Macyexport DISKSARRAY=$DISKS 34716fd348SMartin Matuskaexport DISK_ARRAY_NUM=$(echo ${DISKS} | awk '{print NF}') 35eda14cbcSMatt Macyset -A disk_array $(find_disks $DISKS) 36eda14cbcSMatt Macycase "${#disk_array[*]}" in 37eda14cbcSMatt Macy0) 38eda14cbcSMatt Macy DISK_COUNT=0 39eda14cbcSMatt Macy ;; 40eda14cbcSMatt Macy1) 41eda14cbcSMatt Macy # We need to repartition the single disk to two slices. 42eda14cbcSMatt Macy DISK_COUNT=1 43eda14cbcSMatt Macy ZFS_DISK=${disk_array[0]} 44eda14cbcSMatt Macy SINGLE_DISK=$ZFS_DISK 45eda14cbcSMatt Macy NONZFS_DISK=$ZFS_DISK 46eda14cbcSMatt Macy if is_linux; then 47eda14cbcSMatt Macy if is_mpath_device $ZFS_DISK; then 48eda14cbcSMatt Macy export DEV_DSKDIR=$DEV_MPATHDIR 49eda14cbcSMatt Macy else 50eda14cbcSMatt Macy export DEV_DSKDIR=$DEV_RDSKDIR 51eda14cbcSMatt Macy fi 52eda14cbcSMatt Macy if ( is_mpath_device $ZFS_DISK ) && [[ -z $(echo $ZFS_DISK | awk 'substr($1,18,1)\ 53eda14cbcSMatt Macy ~ /^[[:digit:]]+$/') ]] || ( is_real_device $ZFS_DISK ); then 54eda14cbcSMatt Macy ZFSSIDE_DISK=${SINGLE_DISK}1 55eda14cbcSMatt Macy NONZFSSIDE_DISK=${SINGLE_DISK}2 56eda14cbcSMatt Macy elif ( is_mpath_device $ZFS_DISK || is_loop_device $ZFS_DISK ); then 57eda14cbcSMatt Macy ZFSSIDE_DISK=${SINGLE_DISK}p1 58eda14cbcSMatt Macy NONZFSSIDE_DISK=${SINGLE_DISK}p2 59eda14cbcSMatt Macy else 60eda14cbcSMatt Macy log_fail "$ZFS_DISK not supported for partitioning." 61eda14cbcSMatt Macy fi 62eda14cbcSMatt Macy else 63eda14cbcSMatt Macy ZFSSIDE_DISK=${SINGLE_DISK}s0 64eda14cbcSMatt Macy NONZFSSIDE_DISK=${SINGLE_DISK}s1 65eda14cbcSMatt Macy fi 66eda14cbcSMatt Macy ;; 67eda14cbcSMatt Macy*) 68eda14cbcSMatt Macy # In this case there are at least enough disks to use. 69eda14cbcSMatt Macy DISK_COUNT=2 70eda14cbcSMatt Macy ZFS_DISK=${disk_array[0]} 71eda14cbcSMatt Macy NONZFS_DISK=${disk_array[1]} 72eda14cbcSMatt Macy if is_linux; then 73eda14cbcSMatt Macy if is_mpath_device $ZFS_DISK; then 74eda14cbcSMatt Macy export DEV_DSKDIR=$DEV_MPATHDIR 75eda14cbcSMatt Macy else 76eda14cbcSMatt Macy export DEV_DSKDIR=$DEV_RDSKDIR 77eda14cbcSMatt Macy fi 78eda14cbcSMatt Macy if ( is_mpath_device $ZFS_DISK ) && [[ -z $(echo $ZFS_DISK | awk 'substr($1,18,1)\ 79eda14cbcSMatt Macy ~ /^[[:digit:]]+$/') ]] || ( is_real_device $ZFS_DISK ); then 80eda14cbcSMatt Macy ZFSSIDE_DISK=${ZFS_DISK}1 81eda14cbcSMatt Macy elif ( is_mpath_device $ZFS_DISK || is_loop_device $ZFS_DISK ); then 82eda14cbcSMatt Macy ZFSSIDE_DISK=${ZFS_DISK}p1 83eda14cbcSMatt Macy else 84eda14cbcSMatt Macy log_fail "$ZFS_DISK not supported for partitioning." 85eda14cbcSMatt Macy fi 86eda14cbcSMatt Macy if ( is_mpath_device $NONZFS_DISK ) && [[ -z $(echo $NONZFS_DISK | awk 'substr($1,18,1)\ 87eda14cbcSMatt Macy ~ /^[[:digit:]]+$/') ]] || ( is_real_device $NONZFS_DISK ); then 88eda14cbcSMatt Macy NONZFSSIDE_DISK=${NONZFS_DISK}1 89eda14cbcSMatt Macy elif ( is_mpath_device $NONZFS_DISK || is_loop_device $NONZFS_DISK ); then 90eda14cbcSMatt Macy NONZFSSIDE_DISK=${NONZFS_DISK}p1 91eda14cbcSMatt Macy else 92eda14cbcSMatt Macy log_fail "$NONZFS_DISK not supported for partitioning." 93eda14cbcSMatt Macy fi 94eda14cbcSMatt Macy else 95eda14cbcSMatt Macy ZFSSIDE_DISK=${ZFS_DISK}s0 96eda14cbcSMatt Macy NONZFSSIDE_DISK=${NONZFS_DISK}s0 97eda14cbcSMatt Macy fi 98eda14cbcSMatt Macy ;; 99eda14cbcSMatt Macyesac 100eda14cbcSMatt Macy 101eda14cbcSMatt Macyexport DISK_COUNT ZFS_DISK NONZFS_DISK SINGLE_DISK ZFSSIDE_DISK NONZFSSIDE_DISK 102eda14cbcSMatt Macy 103eda14cbcSMatt Macyexport TESTFILE=/etc/passwd 104eda14cbcSMatt Macyexport NONZFS_TESTDIR=$TESTDIR/nonzfstestdir 105716fd348SMartin Matuskaread -r SUMA SUMB _ < <(cksum $TESTFILE) 106716fd348SMartin Matuskaexport SUMA SUMB 107eda14cbcSMatt Macyexport FS_SIZE=1g 108eda14cbcSMatt Macyexport BNAME=`basename $TESTFILE` 109eda14cbcSMatt Macyexport DNAME=`dirname $TESTFILE` 110