1*2fae26bdSAlan Somers#!/usr/bin/env ksh93 2*2fae26bdSAlan Somers# vim: filetype=sh 3*2fae26bdSAlan Somers 4*2fae26bdSAlan Somers# Add test-specific binaries to PATH 5*2fae26bdSAlan Somersexport PATH=${STF_SUITE}/bin:${PATH} 6*2fae26bdSAlan Somersexport TMPDIR=${TMPDIR-/tmp} 7*2fae26bdSAlan Somers 8*2fae26bdSAlan Somers# Set default value of TMPDIR 9*2fae26bdSAlan Somersexport TMPDIR=${TMPDIR-/tmp} 10*2fae26bdSAlan Somers 11*2fae26bdSAlan Somers# Define run length constants 12*2fae26bdSAlan Somersexport RT_LONG="3" 13*2fae26bdSAlan Somersexport RT_MEDIUM="2" 14*2fae26bdSAlan Somersexport RT_SHORT="1" 15*2fae26bdSAlan Somers 16*2fae26bdSAlan Somers# Define macro for zone test 17*2fae26bdSAlan Somersexport ZONE_POOL="zonepool" 18*2fae26bdSAlan Somersexport ZONE_CTR="zonectr" 19*2fae26bdSAlan Somers 20*2fae26bdSAlan Somers# Test Suite Specific Commands 21*2fae26bdSAlan Somersexport DEVNAME2DEVID="devname2devid" 22*2fae26bdSAlan Somersexport FILE_WRITE="file_write" 23*2fae26bdSAlan Somersexport FILE_CHECK="file_check" 24*2fae26bdSAlan Somersexport LARGEST_FILE="largest_file" 25*2fae26bdSAlan Somersexport MMAPWRITE="mmapwrite" 26*2fae26bdSAlan Somersexport MKFILE="mkfile" 27*2fae26bdSAlan Somersexport READMMAP="readmmap" 28*2fae26bdSAlan Somersexport FILE_TRUNC="file_trunc" 29*2fae26bdSAlan Somersexport CHG_USR_EXEC="chg_usr_exec" 30*2fae26bdSAlan Somersexport MKTREE="mktree" 31*2fae26bdSAlan Somersexport RANDFREE_FILE="randfree_file" 32*2fae26bdSAlan Somersexport DIR_RD_UPDATE="dir_rd_update" 33*2fae26bdSAlan Somersexport RM_LNKCNT_ZERO_FILE="rm_lnkcnt_zero_file" 34*2fae26bdSAlan Somersexport RENAME_DIR="rename_dir" 35*2fae26bdSAlan Somers 36*2fae26bdSAlan Somers# ensure we're running in the C locale, since 37*2fae26bdSAlan Somers# localised messages may result in test failures 38*2fae26bdSAlan Somersexport LC_ALL="C" 39*2fae26bdSAlan Somersexport LANG="C" 40*2fae26bdSAlan Somers 41*2fae26bdSAlan Somers# 42*2fae26bdSAlan Somers# pattern to ignore from 'zpool list'. 43*2fae26bdSAlan Somers# 44*2fae26bdSAlan Somersexport NO_POOLS="no pools available" 45*2fae26bdSAlan Somers 46*2fae26bdSAlan Somers# pattern to ignore from 'zfs list'. 47*2fae26bdSAlan Somersexport NO_DATASETS="no datasets available" 48*2fae26bdSAlan Somers 49*2fae26bdSAlan Somersexport TEST_BASE_DIR="/" 50*2fae26bdSAlan Somers 51*2fae26bdSAlan Somers# Default to compression ON 52*2fae26bdSAlan Somersexport COMPRESSION_PROP=on 53*2fae26bdSAlan Somers 54*2fae26bdSAlan Somers# Default to using the checksum 55*2fae26bdSAlan Somersexport CHECKSUM_PROP=on 56*2fae26bdSAlan Somers 57*2fae26bdSAlan Somers# some common variables used by test scripts : 58*2fae26bdSAlan Somers 59*2fae26bdSAlan Somersexport TESTCASE_ID=${TESTCASE_ID:-$$} 60*2fae26bdSAlan Somers# some test pool names 61*2fae26bdSAlan Somersexport TESTPOOL=testpool.${TESTCASE_ID} 62*2fae26bdSAlan Somersexport TESTPOOL1=testpool1.${TESTCASE_ID} 63*2fae26bdSAlan Somersexport TESTPOOL2=testpool2.${TESTCASE_ID} 64*2fae26bdSAlan Somersexport TESTPOOL3=testpool3.${TESTCASE_ID} 65*2fae26bdSAlan Somers 66*2fae26bdSAlan Somers# some test file system names 67*2fae26bdSAlan Somersexport TESTCTR=testctr${TESTCASE_ID} 68*2fae26bdSAlan Somersexport TESTFS=testfs.${TESTCASE_ID} 69*2fae26bdSAlan Somersexport TESTFS1=testfs1.${TESTCASE_ID} 70*2fae26bdSAlan Somersexport TESTFS2=testfs2.${TESTCASE_ID} 71*2fae26bdSAlan Somersexport TESTFS3=testfs3.${TESTCASE_ID} 72*2fae26bdSAlan Somers 73*2fae26bdSAlan Somers# some test directory names 74*2fae26bdSAlan Somersexport TESTDIR=${TEST_BASE_DIR%%/}/testdir${TESTCASE_ID} 75*2fae26bdSAlan Somersexport TESTDIR0=${TEST_BASE_DIR%%/}/testdir0${TESTCASE_ID} 76*2fae26bdSAlan Somersexport TESTDIR1=${TEST_BASE_DIR%%/}/testdir1${TESTCASE_ID} 77*2fae26bdSAlan Somersexport TESTDIR2=${TEST_BASE_DIR%%/}/testdir2${TESTCASE_ID} 78*2fae26bdSAlan Somers 79*2fae26bdSAlan Somers# Default to limit disks to be checked 80*2fae26bdSAlan Somersexport MAX_FINDDISKSNUM=100 81*2fae26bdSAlan Somers 82*2fae26bdSAlan Somers# For iscsi target support 83*2fae26bdSAlan Somersexport ISCSITGTFILE=$TMPDIR/iscsitgt_file 84*2fae26bdSAlan Somersexport ISCSITGT_FMRI=svc:/system/iscsitgt:default 85*2fae26bdSAlan Somers 86*2fae26bdSAlan Somersif [ -n "$SVCS" ]; then 87*2fae26bdSAlan Somers export AUTO_SNAP=$($SVCS -a | $GREP auto-snapshot | $GREP online | $AWK '{print $3}') 88*2fae26bdSAlan Somersfi 89*2fae26bdSAlan Somers 90*2fae26bdSAlan Somers# zfs upgrade should output the first line as: 91*2fae26bdSAlan Somers# This system is currently running ZFS filesystem version 2. 92*2fae26bdSAlan Somers# . 93*2fae26bdSAlan Somers 94*2fae26bdSAlan SomersZFS_VERSION= 95*2fae26bdSAlan Somers$ZFS upgrade -v > /dev/null 2>&1 96*2fae26bdSAlan Somersif [ $? -eq 0 ]; then 97*2fae26bdSAlan Somers export ZFS_VERSION=$($ZFS upgrade | $HEAD -1 | $AWK '{print $NF}' \ 98*2fae26bdSAlan Somers | $SED -e 's/\.//g') 99*2fae26bdSAlan Somersfi 100*2fae26bdSAlan Somers 101*2fae26bdSAlan Somersif [ -n "$ZFS_VERSION" ]; then 102*2fae26bdSAlan Somers i=1 103*2fae26bdSAlan Somers ZFS_ALL_VERSIONS="" 104*2fae26bdSAlan Somers while [ "$i" -le "$ZFS_VERSION" ]; do 105*2fae26bdSAlan Somers eval 'export ZFS_VERSION_$i="v${i}-fs"' 106*2fae26bdSAlan Somers ZFS_ALL_VERSIONS="$ZFS_ALL_VERSIONS $i" 107*2fae26bdSAlan Somers i=$(( i + 1 )) 108*2fae26bdSAlan Somers done 109*2fae26bdSAlan Somers export ZFS_ALL_VERSIONS 110*2fae26bdSAlan Somersfi 111*2fae26bdSAlan Somers 112*2fae26bdSAlan Somers$TRUE 113