1#!/bin/sh
2
3#
4# CDDL HEADER START
5#
6# The contents of this file are subject to the terms of the
7# Common Development and Distribution License (the "License").
8# You may not use this file except in compliance with the License.
9#
10# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
11# or http://www.opensolaris.org/os/licensing.
12# See the License for the specific language governing permissions
13# and limitations under the License.
14#
15# When distributing Covered Code, include this CDDL HEADER in each
16# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
17# If applicable, add the following below this CDDL HEADER, with the
18# fields enclosed by brackets "[]" replaced with your own identifying
19# information: Portions Copyright [yyyy] [name of copyright owner]
20#
21# CDDL HEADER END
22#
23
24#
25# Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
26# Use is subject to license terms.
27#
28
29#
30# Copyright (c) 2016 by Delphix. All rights reserved.
31# Copyright (c) 2017 Lawrence Livermore National Security, LLC.
32#
33
34. $STF_SUITE/include/commands.cfg
35
36# ZFS Directories
37export ZEDLET_ETC_DIR=${ZEDLET_ETC_DIR:-@sysconfdir@/zfs/zed.d}
38export ZEDLET_LIBEXEC_DIR=${ZEDLET_LIBEXEC_DIR:-@zfsexecdir@/zed.d}
39export ZPOOL_SCRIPT_DIR=${ZPOOL_SCRIPT_DIR:-@sysconfdir@/zfs/zpool.d}
40export ZPOOL_COMPAT_DIR=${ZPOOL_COMPAT_DIR:-@datadir@/zfs/compatibility.d}
41
42# Define run length constants
43export RT_LONG="3"
44export RT_MEDIUM="2"
45export RT_SHORT="1"
46
47# Define macro for zone test
48export ZONE_POOL="zonepool"
49export ZONE_CTR="zonectr"
50
51# ensure we're running in the C locale, since
52# localised messages may result in test failures
53export LC_ALL="C"
54export LANG="C"
55
56#
57# pattern to ignore from 'zpool list'.
58#
59export NO_POOLS="no pools available"
60
61# pattern to ignore from 'zfs list'.
62export NO_DATASETS="no datasets available"
63
64# Default directory used for test files
65# NOTE: remove trailing "/", some functions rely on this to do pattern matching
66export TEST_BASE_DIR="$(dirname ${FILEDIR:-/var/tmp}/.)"
67
68# Default to compression ON
69export COMPRESSION_PROP=on
70
71# Default to using the checksum
72export CHECKSUM_PROP=on
73
74# some common variables used by test scripts :
75export FIO_SCRIPTS=$STF_SUITE/tests/perf/fio
76export PERF_SCRIPTS=$STF_SUITE/tests/perf/scripts
77
78# some test pool names
79export TESTPOOL=testpool
80export TESTPOOL1=testpool1
81export TESTPOOL2=testpool2
82export TESTPOOL3=testpool3
83export PERFPOOL=perfpool
84
85# some test file system names
86export TESTFS=testfs
87export TESTFS1=testfs1
88export TESTFS2=testfs2
89export TESTFS3=testfs3
90
91# some test directory names
92export TESTDIR=${TEST_BASE_DIR%%/}/testdir
93export TESTDIR0=${TEST_BASE_DIR%%/}/testdir0
94export TESTDIR1=${TEST_BASE_DIR%%/}/testdir1
95export TESTDIR2=${TEST_BASE_DIR%%/}/testdir2
96
97# some test sub file system names
98export TESTSUBFS=subfs
99export TESTSUBFS1=subfs1
100export TESTSUBFS2=subfs2
101
102# some temp files
103export TEMPFILE=${TEST_BASE_DIR%%/}/tempfile$$
104export TEMPFILE0=${TEST_BASE_DIR%%/}/tempfile0$$
105export TEMPFILE1=${TEST_BASE_DIR%%/}/tempfile1$$
106export TEMPFILE2=${TEST_BASE_DIR%%/}/tempfile2$$
107
108export ZFSROOT=
109
110export TESTSNAP=testsnap
111export TESTSNAP1=testsnap1
112export TESTSNAP2=testsnap2
113export TESTCLONE=testclone
114export TESTCLONE1=testclone1
115export TESTCLONE2=testclone2
116export TESTCLCT=testclct
117export TESTCTR=testctr
118export TESTCTR1=testctr1
119export TESTCTR2=testctr2
120export TESTVOL=testvol
121export TESTVOL1=testvol1
122export TESTVOL2=testvol2
123export TESTFILE0=testfile0
124export TESTFILE1=testfile1
125export TESTFILE2=testfile2
126export TESTBKMARK=testbkmark
127
128export LONGPNAME="poolname50charslong_012345678901234567890123456789"
129export LONGFSNAME="fsysname50charslong_012345678901234567890123456789"
130export SNAPFS="$TESTPOOL/$TESTFS@$TESTSNAP"
131export SNAPFS1="$TESTPOOL/$TESTVOL@$TESTSNAP"
132
133export VOLSIZE=150m
134export BIGVOLSIZE=1eb
135
136# Default to limit disks to be checked
137export MAX_FINDDISKSNUM=6
138
139# Default minimum size for file based vdevs in the test suite
140export MINVDEVSIZE=$((256 * 1024 * 1024))
141
142# Minimum vdev size possible as defined in the OS
143export SPA_MINDEVSIZE=$((64 * 1024 * 1024))
144
145# For iscsi target support
146export ISCSITGTFILE=/tmp/iscsitgt_file
147export ISCSITGT_FMRI=svc:/system/iscsitgt:default
148
149export ZFS_VERSION=5
150export ZFS_ALL_VERSIONS="1 2 3 4 5"
151
152for i in $ZFS_ALL_VERSIONS; do
153	eval 'export ZFS_VERSION_$i="v${i}-fs"'
154done
155
156export MAX_PARTITIONS=8
157
158if [ "@ASAN_ENABLED@" = "yes" ]; then
159	export ASAN_OPTIONS=abort_on_error=true:halt_on_error=true:allocator_may_return_null=true:disable_coredump=false:detect_stack_use_after_return=true
160
161	# TODO
162	# disable memory leaks detection
163	# there are quite many of them and they are not as
164	# destructive to CLI programs as they are to daemons
165	export ASAN_OPTIONS="$ASAN_OPTIONS:detect_leaks=false"
166fi
167
168if [ "@UBSAN_ENABLED@" = "yes" ]; then
169	export UBSAN_OPTIONS=abort_on_error=true:halt_on_error=true:print_stacktrace=true
170fi
171
172
173case $(uname) in
174Linux)
175	unpack_opts="--sparse -xf"
176	pack_opts="--sparse -cf"
177	verbose=" -v"
178	unpack_preserve=" -xpf"
179	pack_preserve=" -cpf"
180
181	ZVOL_DEVDIR="/dev/zvol"
182	ZVOL_RDEVDIR="/dev/zvol"
183	DEV_DSKDIR="/dev"
184	DEV_RDSKDIR="/dev"
185	DEV_MPATHDIR="/dev/mapper"
186
187	ZEDLET_DIR="/var/tmp/zed"
188	ZED_LOG="$ZEDLET_DIR/zed.log"
189	ZED_DEBUG_LOG="$ZEDLET_DIR/zed.debug.log"
190	VDEVID_CONF="$ZEDLET_DIR/vdev_id.conf"
191	VDEVID_CONF_ETC="/etc/zfs/vdev_id.conf"
192
193	NEWFS_DEFAULT_FS="ext2"
194	SLICE_PREFIX=""
195	;;
196FreeBSD)
197	unpack_opts="xv"
198	pack_opts="cf"
199	verbose="v"
200	unpack_preserve="xpf"
201	pack_preserve="cpf"
202
203	ZVOL_DEVDIR="/dev/zvol"
204	ZVOL_RDEVDIR="/dev/zvol"
205	DEV_DSKDIR="/dev"
206	DEV_RDSKDIR="/dev"
207	DEV_MPATHDIR="/dev/multipath"
208
209	NEWFS_DEFAULT_FS="ufs"
210	SLICE_PREFIX="p"
211	;;
212*)
213	export AUTO_SNAP=$(svcs -a | \
214	    awk '/auto-snapshot/ && /online/ { print $3 }')
215	# finally, if we're running in a local zone
216	# we take some additional actions
217	if [ "$(zonename 2>/dev/null)" != "global" ]; then
218		reexport_pool
219	fi
220
221	unpack_opts="xv"
222	pack_opts="cf"
223	verbose="v"
224	unpack_preserve="xpf"
225	pack_preserve="cpf"
226
227	ZVOL_DEVDIR="/dev/zvol/dsk"
228	ZVOL_RDEVDIR="/dev/zvol/rdsk"
229	DEV_DSKDIR="/dev/dsk"
230	DEV_RDSKDIR="/dev/rdsk"
231
232	NEWFS_DEFAULT_FS="ufs"
233	SLICE_PREFIX="s"
234	;;
235esac
236export unpack_opts pack_opts verbose unpack_preserve pack_preserve \
237       ZVOL_DEVDIR ZVOL_RDEVDIR DEV_DSKDIR DEV_RDSKDIR DEV_MPATHDIR \
238       ZEDLET_DIR ZED_LOG ZED_DEBUG_LOG VDEVID_CONF VDEVID_CONF_ETC \
239       NEWFS_DEFAULT_FS SLICE_PREFIX
240