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