From owner-svn-src-projects@freebsd.org Wed Dec 16 19:55:55 2015 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B6DA1A49499 for ; Wed, 16 Dec 2015 19:55:55 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6070D10FE; Wed, 16 Dec 2015 19:55:55 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBGJtsbI054158; Wed, 16 Dec 2015 19:55:54 GMT (envelope-from asomers@FreeBSD.org) Received: (from asomers@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBGJtrr7054152; Wed, 16 Dec 2015 19:55:53 GMT (envelope-from asomers@FreeBSD.org) Message-Id: <201512161955.tBGJtrr7054152@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: asomers set sender to asomers@FreeBSD.org using -f From: Alan Somers Date: Wed, 16 Dec 2015 19:55:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r292356 - in projects/zfsd/head/tests/sys/cddl/zfs: bin include X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Dec 2015 19:55:55 -0000 Author: asomers Date: Wed Dec 16 19:55:53 2015 New Revision: 292356 URL: https://svnweb.freebsd.org/changeset/base/292356 Log: Add a testenv wrapper script for the ZFS test suite. This makes it easier to test changes to the test suite's common libraries by creating a ksh93 subshell to run ksh93 functions in. tests/sys/cddl/zfs/include/constants.cfg: tests/sys/cddl/zfs/include/default.cfg.in: - Split default.cfg.in so that general constants live in constants.cfg. tests/sys/cddl/zfs/include/testenv.kshlib: - Generate the environment-dependent constants ($DISKS and $KEEP), and pull in constants.cfg for the rest. tests/sys/cddl/zfs/bin/testenv.ksh: - The script. Detects the current path and generates $STF_SUITE. Once done, invokes ksh93, reading in include/testenv.kshlib. tests/sys/cddl/zfs/bin/Makefile: tests/sys/cddl/zfs/include/Makefile: - Add the new files. Submitted by: Will Sponsored by: Spectra Logic Corp Added: projects/zfsd/head/tests/sys/cddl/zfs/bin/testenv.ksh projects/zfsd/head/tests/sys/cddl/zfs/include/constants.cfg projects/zfsd/head/tests/sys/cddl/zfs/include/testenv.ksh Modified: projects/zfsd/head/tests/sys/cddl/zfs/bin/Makefile projects/zfsd/head/tests/sys/cddl/zfs/include/Makefile projects/zfsd/head/tests/sys/cddl/zfs/include/default.cfg.in Modified: projects/zfsd/head/tests/sys/cddl/zfs/bin/Makefile ============================================================================== --- projects/zfsd/head/tests/sys/cddl/zfs/bin/Makefile Wed Dec 16 19:48:03 2015 (r292355) +++ projects/zfsd/head/tests/sys/cddl/zfs/bin/Makefile Wed Dec 16 19:55:53 2015 (r292356) @@ -21,6 +21,7 @@ SCRIPTS+= groupmod.ksh SCRIPTS+= groupshow.ksh SCRIPTS+= svcs.ksh SCRIPTS+= swap.ksh +SCRIPTS+= testenv.ksh SCRIPTS+= useradd.ksh SCRIPTS+= userdel.ksh SCRIPTS+= usermod.ksh Added: projects/zfsd/head/tests/sys/cddl/zfs/bin/testenv.ksh ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/zfsd/head/tests/sys/cddl/zfs/bin/testenv.ksh Wed Dec 16 19:55:53 2015 (r292356) @@ -0,0 +1,6 @@ +#!/usr/bin/env ksh93 +script=$(realpath $0) +export STF_BIN=$(dirname ${script}) +export STF_SUITE=$(dirname ${STF_BIN}) + +env ENV=${STF_SUITE}/include/testenv.kshlib ksh93 -E -l Modified: projects/zfsd/head/tests/sys/cddl/zfs/include/Makefile ============================================================================== --- projects/zfsd/head/tests/sys/cddl/zfs/include/Makefile Wed Dec 16 19:48:03 2015 (r292355) +++ projects/zfsd/head/tests/sys/cddl/zfs/include/Makefile Wed Dec 16 19:55:53 2015 (r292356) @@ -6,11 +6,13 @@ STFSUITEDIR=${TESTSBASE}/sys/cddl/zfs MAN= FILESDIR= ${TESTSBASE}/sys/cddl/zfs/include +FILES+= constants.cfg FILES+= libremote.kshlib FILES+= libsas.kshlib FILES+= logapi.kshlib FILES+= libtest.kshlib FILES+= stf.shlib +FILES+= testenv.kshlib FILES+= commands.cfg CLEANFILES+= commands.cfg Added: projects/zfsd/head/tests/sys/cddl/zfs/include/constants.cfg ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/zfsd/head/tests/sys/cddl/zfs/include/constants.cfg Wed Dec 16 19:55:53 2015 (r292356) @@ -0,0 +1,110 @@ +#!/usr/bin/env ksh93 + +# Add test-specific binaries to PATH +export PATH=${STF_SUITE}/bin:${PATH} +export TMPDIR=${TMPDIR-/tmp} + +# Set default value of TMPDIR +export TMPDIR=${TMPDIR-/tmp} + +# 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" + +# Test Suite Specific Commands +export DEVNAME2DEVID="devname2devid" +export FILE_WRITE="file_write" +export FILE_CHECK="file_check" +export LARGEST_FILE="largest_file" +export MMAPWRITE="mmapwrite" +export READMMAP="readmmap" +export FILE_TRUNC="file_trunc" +export CHG_USR_EXEC="chg_usr_exec" +export MKTREE="mktree" +export RANDFREE_FILE="randfree_file" +export DIR_RD_UPDATE="dir_rd_update" +export RM_LNKCNT_ZERO_FILE="rm_lnkcnt_zero_file" +export RENAME_DIR="rename_dir" + +# 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" + +export TEST_BASE_DIR="/" + +# 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 TESTCASE_ID=${TESTCASE_ID:-$$} +# some test pool names +export TESTPOOL=testpool.${TESTCASE_ID} +export TESTPOOL1=testpool1.${TESTCASE_ID} +export TESTPOOL2=testpool2.${TESTCASE_ID} +export TESTPOOL3=testpool3.${TESTCASE_ID} + +# some test file system names +export TESTCTR=testctr${TESTCASE_ID} +export TESTFS=testfs.${TESTCASE_ID} +export TESTFS1=testfs1.${TESTCASE_ID} +export TESTFS2=testfs2.${TESTCASE_ID} +export TESTFS3=testfs3.${TESTCASE_ID} + +# some test directory names +export TESTDIR=${TEST_BASE_DIR%%/}/testdir${TESTCASE_ID} +export TESTDIR0=${TEST_BASE_DIR%%/}/testdir0${TESTCASE_ID} +export TESTDIR1=${TEST_BASE_DIR%%/}/testdir1${TESTCASE_ID} +export TESTDIR2=${TEST_BASE_DIR%%/}/testdir2${TESTCASE_ID} + +# Default to limit disks to be checked +export MAX_FINDDISKSNUM=100 + +# For iscsi target support +export ISCSITGTFILE=$TMPDIR/iscsitgt_file +export ISCSITGT_FMRI=svc:/system/iscsitgt:default + +if [ -n "$SVCS" ]; then + export AUTO_SNAP=$($SVCS -a | $GREP auto-snapshot | $GREP online | $AWK '{print $3}') +fi + +# zfs upgrade should output the first line as: +# This system is currently running ZFS filesystem version 2. +# . + +ZFS_VERSION= +$ZFS upgrade -v > /dev/null 2>&1 +if [ $? -eq 0 ]; then + export ZFS_VERSION=$($ZFS upgrade | $HEAD -1 | $AWK '{print $NF}' \ + | $SED -e 's/\.//g') +fi + +if [ -n "$ZFS_VERSION" ]; then + i=1 + ZFS_ALL_VERSIONS="" + while [ "$i" -le "$ZFS_VERSION" ]; do + eval 'export ZFS_VERSION_$i="v${i}-fs"' + ZFS_ALL_VERSIONS="$ZFS_ALL_VERSIONS $i" + i=$(( i + 1 )) + done + export ZFS_ALL_VERSIONS +fi + +$TRUE Modified: projects/zfsd/head/tests/sys/cddl/zfs/include/default.cfg.in ============================================================================== --- projects/zfsd/head/tests/sys/cddl/zfs/include/default.cfg.in Wed Dec 16 19:48:03 2015 (r292355) +++ projects/zfsd/head/tests/sys/cddl/zfs/include/default.cfg.in Wed Dec 16 19:55:53 2015 (r292356) @@ -35,121 +35,14 @@ export STF_SUITE=%%STFSUITEDIR%% # source the autogenerated commands.cfg file (built from the commands.txt file . $STF_SUITE/include/commands.cfg -# Add test-specific binaries to PATH -export PATH=$STF_SUITE/bin:$PATH - # Turn ATF variables into environment variables export DISKS=`atf_config_get disks ""` export KEEP=`atf_config_get keep_pools "" | ${SED} -E 's/ +/|/g'` -# Set default value of TMPDIR -export TMPDIR=${TMPDIR-/tmp} - -# 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" - -# Test Suite Specific Commands -export DEVNAME2DEVID="devname2devid" -export FILE_WRITE="file_write" -export FILE_CHECK="file_check" -export LARGEST_FILE="largest_file" -export MMAPWRITE="mmapwrite" -export READMMAP="readmmap" -export FILE_TRUNC="file_trunc" -export CHG_USR_EXEC="chg_usr_exec" -export MKTREE="mktree" -export RANDFREE_FILE="randfree_file" -export DIR_RD_UPDATE="dir_rd_update" -export RM_LNKCNT_ZERO_FILE="rm_lnkcnt_zero_file" -export RENAME_DIR="rename_dir" - -# 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" - -export TEST_BASE_DIR="/" - -# 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 TESTCASE_ID=${TESTCASE_ID:-$$} -# some test pool names -export TESTPOOL=testpool.${TESTCASE_ID} -export TESTPOOL1=testpool1.${TESTCASE_ID} -export TESTPOOL2=testpool2.${TESTCASE_ID} -export TESTPOOL3=testpool3.${TESTCASE_ID} +. $STF_SUITE/include/constants.cfg -# some test file system names -export TESTCTR=testctr${TESTCASE_ID} -export TESTFS=testfs.${TESTCASE_ID} -export TESTFS1=testfs1.${TESTCASE_ID} -export TESTFS2=testfs2.${TESTCASE_ID} -export TESTFS3=testfs3.${TESTCASE_ID} - -# some test directory names -export TESTDIR=${TEST_BASE_DIR%%/}/testdir${TESTCASE_ID} -export TESTDIR0=${TEST_BASE_DIR%%/}/testdir0${TESTCASE_ID} -export TESTDIR1=${TEST_BASE_DIR%%/}/testdir1${TESTCASE_ID} -export TESTDIR2=${TEST_BASE_DIR%%/}/testdir2${TESTCASE_ID} - -# Default to limit disks to be checked -export MAX_FINDDISKSNUM=100 - -# For iscsi target support -export ISCSITGTFILE=$TMPDIR/iscsitgt_file -export ISCSITGT_FMRI=svc:/system/iscsitgt:default - -if [ -n "$SVCS" ]; then - export AUTO_SNAP=$($SVCS -a | $GREP auto-snapshot | $GREP online | $AWK '{print $3}') -fi - -# # finally, if we're running in a local zone # we take some additional actions if ! is_global_zone; then reexport_pool fi - -# zfs upgrade should output the first line as: -# This system is currently running ZFS filesystem version 2. -# . - -ZFS_VERSION= -$ZFS upgrade -v > /dev/null 2>&1 -if [ $? -eq 0 ]; then - export ZFS_VERSION=$($ZFS upgrade | $HEAD -1 | $AWK '{print $NF}' \ - | $SED -e 's/\.//g') -fi - -if [ -n "$ZFS_VERSION" ]; then - i=1 - ZFS_ALL_VERSIONS="" - while [ "$i" -le "$ZFS_VERSION" ]; do - eval 'export ZFS_VERSION_$i="v${i}-fs"' - ZFS_ALL_VERSIONS="$ZFS_ALL_VERSIONS $i" - i=$(( i + 1 )) - done - export ZFS_ALL_VERSIONS -fi - -$TRUE Added: projects/zfsd/head/tests/sys/cddl/zfs/include/testenv.ksh ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/zfsd/head/tests/sys/cddl/zfs/include/testenv.ksh Wed Dec 16 19:55:53 2015 (r292356) @@ -0,0 +1,19 @@ +. ${STF_SUITE}/include/libtest.kshlib +. ${STF_SUITE}/include/commands.cfg + +# Environment-dependent constants. +for d in `geom disk list | awk '/Name:/ {print $3}'`; do + # Clear the GPT label first to avoid spurious create failures. + gpart destroy -F $d >/dev/null 2>&1 + if gpart create -s gpt $d >/dev/null 2>&1 ; then + gpart destroy $d >/dev/null 2>&1 || continue + DISKS=("${DISKS[@]}" "/dev/$d") #"$DISKS $d" + fi + # Don't bother testing any more if we have enough already. + # Currently we use at most 5 disks plus 1 for temporary disks. + [ ${#DISKS[@]} -eq 6 ] && break +done +export KEEP="$(zpool list -H -o name)" + +# Pull in constants. +. ${STF_SUITE}/include/constants.cfg