mirror of
				https://git.proxmox.com/git/mirror_zfs.git
				synced 2025-10-26 18:05:04 +03:00 
			
		
		
		
	 9530eb64e0
			
		
	
	
		9530eb64e0
		
	
	
	
	
		
			
			Sponsored-by: https://despairlabs.com/sponsor/ Signed-off-by: Rob Norris <robn@despairlabs.com> Reviewed-by: Tony Hutter <hutter2@llnl.gov> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
		
			
				
	
	
		
			241 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			241 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| #!/bin/sh
 | |
| # SPDX-License-Identifier: CDDL-1.0
 | |
| 
 | |
| #
 | |
| # 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 https://opensource.org/licenses/CDDL-1.0.
 | |
| # 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) 2016 by Delphix. All rights reserved.
 | |
| # Copyright (c) 2017 Lawrence Livermore National Security, LLC.
 | |
| #
 | |
| 
 | |
| . $STF_SUITE/include/commands.cfg
 | |
| 
 | |
| # ZFS Directories
 | |
| export ZEDLET_ETC_DIR=${ZEDLET_ETC_DIR:-@sysconfdir@/zfs/zed.d}
 | |
| export ZEDLET_LIBEXEC_DIR=${ZEDLET_LIBEXEC_DIR:-@zfsexecdir@/zed.d}
 | |
| export ZPOOL_SCRIPT_DIR=${ZPOOL_SCRIPT_DIR:-@sysconfdir@/zfs/zpool.d}
 | |
| export ZPOOL_COMPAT_DIR=${ZPOOL_COMPAT_DIR:-@datadir@/zfs/compatibility.d}
 | |
| 
 | |
| # Define run length constants
 | |
| export RT_LONG="3"
 | |
| export RT_MEDIUM="2"
 | |
| export RT_SHORT="1"
 | |
| 
 | |
| # Define macro for zone test
 | |
| export ZONE_POOL="zonepool"
 | |
| export ZONE_CTR="zonectr"
 | |
| 
 | |
| # ensure we're running in the C locale, since
 | |
| # localised messages may result in test failures
 | |
| export LC_ALL="C"
 | |
| export LANG="C"
 | |
| 
 | |
| #
 | |
| # pattern to ignore from 'zpool list'.
 | |
| #
 | |
| export NO_POOLS="no pools available"
 | |
| 
 | |
| # pattern to ignore from 'zfs list'.
 | |
| export NO_DATASETS="no datasets available"
 | |
| 
 | |
| # Default directory used for test files
 | |
| # NOTE: remove trailing "/", some functions rely on this to do pattern matching
 | |
| export TEST_BASE_DIR="$(dirname ${FILEDIR:-/var/tmp}/.)"
 | |
| 
 | |
| # Default to compression ON
 | |
| export COMPRESSION_PROP=on
 | |
| 
 | |
| # Default to using the checksum
 | |
| export CHECKSUM_PROP=on
 | |
| 
 | |
| # some common variables used by test scripts :
 | |
| export FIO_SCRIPTS=$STF_SUITE/tests/perf/fio
 | |
| export PERF_SCRIPTS=$STF_SUITE/tests/perf/scripts
 | |
| 
 | |
| # some test pool names
 | |
| export TESTPOOL=testpool
 | |
| export TESTPOOL1=testpool1
 | |
| export TESTPOOL2=testpool2
 | |
| export TESTPOOL3=testpool3
 | |
| export PERFPOOL=${PERFPOOL:-perfpool}
 | |
| 
 | |
| # some test file system names
 | |
| export TESTFS=testfs
 | |
| export TESTFS1=testfs1
 | |
| export TESTFS2=testfs2
 | |
| export TESTFS3=testfs3
 | |
| 
 | |
| # some test directory names
 | |
| export TESTDIR=${TEST_BASE_DIR%%/}/testdir
 | |
| export TESTDIR0=${TEST_BASE_DIR%%/}/testdir0
 | |
| export TESTDIR1=${TEST_BASE_DIR%%/}/testdir1
 | |
| export TESTDIR2=${TEST_BASE_DIR%%/}/testdir2
 | |
| 
 | |
| # some test sub file system names
 | |
| export TESTSUBFS=subfs
 | |
| export TESTSUBFS1=subfs1
 | |
| export TESTSUBFS2=subfs2
 | |
| 
 | |
| # some temp files
 | |
| export TEMPFILE=${TEST_BASE_DIR%%/}/tempfile$$
 | |
| export TEMPFILE0=${TEST_BASE_DIR%%/}/tempfile0$$
 | |
| export TEMPFILE1=${TEST_BASE_DIR%%/}/tempfile1$$
 | |
| export TEMPFILE2=${TEST_BASE_DIR%%/}/tempfile2$$
 | |
| 
 | |
| export ZFSROOT=
 | |
| 
 | |
| export TESTSNAP=testsnap
 | |
| export TESTSNAP1=testsnap1
 | |
| export TESTSNAP2=testsnap2
 | |
| export TESTCLONE=testclone
 | |
| export TESTCLONE1=testclone1
 | |
| export TESTCLONE2=testclone2
 | |
| export TESTCLCT=testclct
 | |
| export TESTCTR=testctr
 | |
| export TESTCTR1=testctr1
 | |
| export TESTCTR2=testctr2
 | |
| export TESTVOL=testvol
 | |
| export TESTVOL1=testvol1
 | |
| export TESTVOL2=testvol2
 | |
| export TESTFILE0=testfile0
 | |
| export TESTFILE1=testfile1
 | |
| export TESTFILE2=testfile2
 | |
| export TESTBKMARK=testbkmark
 | |
| 
 | |
| export LONGPNAME="poolname50charslong_012345678901234567890123456789"
 | |
| export LONGFSNAME="fsysname50charslong_012345678901234567890123456789"
 | |
| export SNAPFS="$TESTPOOL/$TESTFS@$TESTSNAP"
 | |
| export SNAPFS1="$TESTPOOL/$TESTVOL@$TESTSNAP"
 | |
| 
 | |
| export VOLSIZE=150m
 | |
| export BIGVOLSIZE=1eb
 | |
| 
 | |
| # Default to limit disks to be checked
 | |
| export MAX_FINDDISKSNUM=6
 | |
| 
 | |
| # Default minimum size for file based vdevs in the test suite
 | |
| export MINVDEVSIZE=$((256 * 1024 * 1024))
 | |
| 
 | |
| # Minimum vdev size possible as defined in the OS
 | |
| export SPA_MINDEVSIZE=$((64 * 1024 * 1024))
 | |
| 
 | |
| # For iscsi target support
 | |
| export ISCSITGTFILE=/tmp/iscsitgt_file
 | |
| export ISCSITGT_FMRI=svc:/system/iscsitgt:default
 | |
| 
 | |
| export ZFS_VERSION=5
 | |
| export ZFS_ALL_VERSIONS="1 2 3 4 5"
 | |
| 
 | |
| for i in $ZFS_ALL_VERSIONS; do
 | |
| 	eval 'export ZFS_VERSION_$i="v${i}-fs"'
 | |
| done
 | |
| 
 | |
| export MAX_PARTITIONS=8
 | |
| 
 | |
| if [ "@ASAN_ENABLED@" = "yes" ]; then
 | |
| 	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:detect_odr_violation=1
 | |
| 
 | |
| 	# TODO
 | |
| 	# disable memory leaks detection
 | |
| 	# there are quite many of them and they are not as
 | |
| 	# destructive to CLI programs as they are to daemons
 | |
| 	export ASAN_OPTIONS="$ASAN_OPTIONS:detect_leaks=false"
 | |
| fi
 | |
| 
 | |
| if [ "@UBSAN_ENABLED@" = "yes" ]; then
 | |
| 	export UBSAN_OPTIONS=abort_on_error=true:halt_on_error=true:print_stacktrace=true
 | |
| fi
 | |
| 
 | |
| 
 | |
| case $(uname) in
 | |
| Linux)
 | |
| 	unpack_opts="--sparse -xf"
 | |
| 	pack_opts="--sparse -cf"
 | |
| 	verbose=" -v"
 | |
| 	unpack_preserve=" -xpf"
 | |
| 	pack_preserve=" -cpf"
 | |
| 
 | |
| 	ZVOL_DEVDIR="/dev/zvol"
 | |
| 	ZVOL_RDEVDIR="/dev/zvol"
 | |
| 	DEV_DSKDIR="/dev"
 | |
| 	DEV_RDSKDIR="/dev"
 | |
| 	DEV_MPATHDIR="/dev/mapper"
 | |
| 
 | |
| 	ZEDLET_DIR="$TEST_BASE_DIR/zed"
 | |
| 	ZED_LOG="$ZEDLET_DIR/zed.log"
 | |
| 	ZED_DEBUG_LOG="$ZEDLET_DIR/zed.debug.log"
 | |
| 	VDEVID_CONF="$ZEDLET_DIR/vdev_id.conf"
 | |
| 	VDEVID_CONF_ETC="/etc/zfs/vdev_id.conf"
 | |
| 
 | |
| 	NEWFS_DEFAULT_FS="ext2"
 | |
| 	SLICE_PREFIX=""
 | |
| 	;;
 | |
| FreeBSD)
 | |
| 	unpack_opts="xv"
 | |
| 	pack_opts="cf"
 | |
| 	verbose="v"
 | |
| 	unpack_preserve="xpf"
 | |
| 	pack_preserve="cpf"
 | |
| 
 | |
| 	ZVOL_DEVDIR="/dev/zvol"
 | |
| 	ZVOL_RDEVDIR="/dev/zvol"
 | |
| 	DEV_DSKDIR="/dev"
 | |
| 	DEV_RDSKDIR="/dev"
 | |
| 	DEV_MPATHDIR="/dev/multipath"
 | |
| 
 | |
| 	NEWFS_DEFAULT_FS="ufs"
 | |
| 	SLICE_PREFIX="p"
 | |
| 	;;
 | |
| *)
 | |
| 	export AUTO_SNAP=$(svcs -a | \
 | |
| 	    awk '/auto-snapshot/ && /online/ { print $3 }')
 | |
| 	# finally, if we're running in a local zone
 | |
| 	# we take some additional actions
 | |
| 	if [ "$(zonename 2>/dev/null)" != "global" ]; then
 | |
| 		reexport_pool
 | |
| 	fi
 | |
| 
 | |
| 	unpack_opts="xv"
 | |
| 	pack_opts="cf"
 | |
| 	verbose="v"
 | |
| 	unpack_preserve="xpf"
 | |
| 	pack_preserve="cpf"
 | |
| 
 | |
| 	ZVOL_DEVDIR="/dev/zvol/dsk"
 | |
| 	ZVOL_RDEVDIR="/dev/zvol/rdsk"
 | |
| 	DEV_DSKDIR="/dev/dsk"
 | |
| 	DEV_RDSKDIR="/dev/rdsk"
 | |
| 
 | |
| 	NEWFS_DEFAULT_FS="ufs"
 | |
| 	SLICE_PREFIX="s"
 | |
| 	;;
 | |
| esac
 | |
| export unpack_opts pack_opts verbose unpack_preserve pack_preserve \
 | |
|        ZVOL_DEVDIR ZVOL_RDEVDIR DEV_DSKDIR DEV_RDSKDIR DEV_MPATHDIR \
 | |
|        ZEDLET_DIR ZED_LOG ZED_DEBUG_LOG VDEVID_CONF VDEVID_CONF_ETC \
 | |
|        NEWFS_DEFAULT_FS SLICE_PREFIX
 |