Print this page
7290 ZFS test suite needs to control what utilities it can run
Reviewed by: Dan Kimmel <dan.kimmel@delphix.com>
Reviewed by: Matthew Ahrens <mahrens@delphix.com>

@@ -23,11 +23,11 @@
 # Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
 # Use is subject to license terms.
 #
 
 #
-# Copyright (c) 2013, 2015 by Delphix. All rights reserved.
+# Copyright (c) 2013, 2016 by Delphix. All rights reserved.
 #
 
 . $STF_SUITE/include/libtest.shlib
 . $STF_SUITE/tests/functional/rsend/rsend.cfg
 

@@ -64,26 +64,26 @@
 #
 function setup_test_model
 {
         typeset pool=$1
 
-        log_must $ZFS create -p $pool/$FS/fs1/fs2
+        log_must zfs create -p $pool/$FS/fs1/fs2
 
-        log_must $ZFS snapshot $pool@psnap
-        log_must $ZFS clone $pool@psnap $pool/pclone
+        log_must zfs snapshot $pool@psnap
+        log_must zfs clone $pool@psnap $pool/pclone
 
         if is_global_zone ; then
-                log_must $ZFS create -V 16M $pool/vol
-                log_must $ZFS create -V 16M $pool/$FS/vol
+                log_must zfs create -V 16M $pool/vol
+                log_must zfs create -V 16M $pool/$FS/vol
 
-                log_must $ZFS snapshot $pool/$FS/vol@vsnap
-                log_must $ZFS clone $pool/$FS/vol@vsnap $pool/$FS/vclone
+                log_must zfs snapshot $pool/$FS/vol@vsnap
+                log_must zfs clone $pool/$FS/vol@vsnap $pool/$FS/vclone
         fi
 
         log_must snapshot_tree $pool/$FS/fs1/fs2@fsnap
-        log_must $ZFS clone $pool/$FS/fs1/fs2@fsnap $pool/$FS/fs1/fclone
-        log_must $ZFS snapshot -r $pool@init
+        log_must zfs clone $pool/$FS/fs1/fs2@fsnap $pool/$FS/fs1/fclone
+        log_must zfs snapshot -r $pool@init
 
         log_must snapshot_tree $pool@snapA
         log_must snapshot_tree $pool@snapC
         log_must snapshot_tree $pool/pclone@snapB
         log_must snapshot_tree $pool/$FS@snapB

@@ -92,17 +92,17 @@
         log_must snapshot_tree $pool/$FS/fs1@snapB
         log_must snapshot_tree $pool/$FS/fs1@snapC
         log_must snapshot_tree $pool/$FS/fs1/fclone@snapA
 
         if is_global_zone ; then
-                log_must $ZFS snapshot $pool/vol@snapA
-                log_must $ZFS snapshot $pool/$FS/vol@snapB
-                log_must $ZFS snapshot $pool/$FS/vol@snapC
-                log_must $ZFS snapshot $pool/$FS/vclone@snapC
+                log_must zfs snapshot $pool/vol@snapA
+                log_must zfs snapshot $pool/$FS/vol@snapB
+                log_must zfs snapshot $pool/$FS/vol@snapC
+                log_must zfs snapshot $pool/$FS/vclone@snapC
         fi
 
-        log_must $ZFS snapshot -r $pool@final
+        log_must zfs snapshot -r $pool@final
 
         return 0
 }
 
 #

@@ -111,36 +111,36 @@
 # $1 pool name
 #
 function cleanup_pool
 {
         typeset pool=$1
-        log_must $RM -rf $BACKDIR/*
+        log_must rm -rf $BACKDIR/*
 
         if is_global_zone ; then
-                log_must $ZFS destroy -Rf $pool
+                log_must zfs destroy -Rf $pool
         else
-                typeset list=$($ZFS list -H -r -t filesystem,snapshot,volume -o name $pool)
+                typeset list=$(zfs list -H -r -t filesystem,snapshot,volume -o name $pool)
                 for ds in $list ; do
                         if [[ $ds != $pool ]] ; then
                                 if datasetexists $ds ; then
-                                        log_must $ZFS destroy -Rf $ds
+                                        log_must zfs destroy -Rf $ds
                                 fi
                         fi
                 done
         fi
 
         typeset mntpnt=$(get_prop mountpoint $pool)
         if ! ismounted $pool ; then
                 # Make sure mountpoint directory is empty
                 if [[ -d $mntpnt ]]; then
-                        log_must $RM -rf $mntpnt/*
+                        log_must rm -rf $mntpnt/*
                 fi
 
-                log_must $ZFS mount $pool
+                log_must zfs mount $pool
         fi
         if [[ -d $mntpnt ]]; then
-                log_must $RM -rf $mntpnt/*
+                log_must rm -rf $mntpnt/*
         fi
 
         return 0
 }
 

@@ -153,20 +153,20 @@
 function cmp_ds_subs
 {
         typeset src_fs=$1
         typeset dst_fs=$2
 
-        $ZFS list -r -H -t filesystem,snapshot,volume -o name $src_fs > $BACKDIR/src1
-        $ZFS list -r -H -t filesystem,snapshot,volume -o name $dst_fs > $BACKDIR/dst1
+        zfs list -r -H -t filesystem,snapshot,volume -o name $src_fs > $BACKDIR/src1
+        zfs list -r -H -t filesystem,snapshot,volume -o name $dst_fs > $BACKDIR/dst1
 
-        eval $SED -e 's:^$src_fs:PREFIX:g' < $BACKDIR/src1 > $BACKDIR/src
-        eval $SED -e 's:^$dst_fs:PREFIX:g' < $BACKDIR/dst1 > $BACKDIR/dst
+        eval sed -e 's:^$src_fs:PREFIX:g' < $BACKDIR/src1 > $BACKDIR/src
+        eval sed -e 's:^$dst_fs:PREFIX:g' < $BACKDIR/dst1 > $BACKDIR/dst
 
-        $DIFF $BACKDIR/src $BACKDIR/dst
+        diff $BACKDIR/src $BACKDIR/dst
         typeset -i ret=$?
 
-        $RM -f $BACKDIR/src $BACKDIR/dst $BACKDIR/src1 $BACKDIR/dst1
+        rm -f $BACKDIR/src $BACKDIR/dst $BACKDIR/src1 $BACKDIR/dst1
 
         return $ret
 }
 
 #

@@ -182,11 +182,11 @@
 
         typeset srcdir dstdir
         srcdir=$(get_prop mountpoint $src_fs)
         dstdir=$(get_prop mountpoint $dst_fs)
 
-        $DIFF -r $srcdir $dstdir > /dev/null 2>&1
+        diff -r $srcdir $dstdir > /dev/null 2>&1
         echo $?
 }
 
 #
 # Compare the given two dataset properties

@@ -203,23 +203,23 @@
             "atime" "canmount" "checksum" "compression" "copies" "devices" \
             "exec" "quota" "readonly" "recordsize" "reservation" "setuid" \
             "sharenfs" "snapdir" "version" "volsize" "xattr" "zoned" \
             "mountpoint";
         do
-                $ZFS get -H -o property,value,source $item $dtst1 >> \
+                zfs get -H -o property,value,source $item $dtst1 >> \
                     $BACKDIR/dtst1
-                $ZFS get -H -o property,value,source $item $dtst2 >> \
+                zfs get -H -o property,value,source $item $dtst2 >> \
                     $BACKDIR/dtst2
         done
 
-        eval $SED -e 's:$dtst1:PREFIX:g' < $BACKDIR/dtst1 > $BACKDIR/dtst1
-        eval $SED -e 's:$dtst2:PREFIX:g' < $BACKDIR/dtst2 > $BACKDIR/dtst2
+        eval sed -e 's:$dtst1:PREFIX:g' < $BACKDIR/dtst1 > $BACKDIR/dtst1
+        eval sed -e 's:$dtst2:PREFIX:g' < $BACKDIR/dtst2 > $BACKDIR/dtst2
 
-        $DIFF $BACKDIR/dtst1 $BACKDIR/dtst2
+        diff $BACKDIR/dtst1 $BACKDIR/dtst2
         typeset -i ret=$?
 
-        $RM -f $BACKDIR/dtst1 $BACKDIR/dtst2
+        rm -f $BACKDIR/dtst1 $BACKDIR/dtst2
 
         return $ret
 
 }
 

@@ -231,20 +231,20 @@
 function random_tree
 {
         typeset dir=$1
 
         if [[ -d $dir ]]; then
-                $RM -rf $dir
+                rm -rf $dir
         fi
-        $MKDIR -p $dir
+        mkdir -p $dir
         typeset -i ret=$?
 
         typeset -i nl nd nf
         ((nl = RANDOM % 6 + 1))
         ((nd = RANDOM % 3 ))
         ((nf = RANDOM % 5 ))
-        $MKTREE -b $dir -l $nl -d $nd -f $nf
+        mktree -b $dir -l $nl -d $nd -f $nf
         ((ret |= $?))
 
         return $ret
 }
 

@@ -269,11 +269,11 @@
                         ((ret |= $?))
                 fi
         fi
 
         if ((ret == 0)) ; then
-                $ZFS snapshot $snap
+                zfs snapshot $snap
                 ((ret |= $?))
         fi
 
         return $ret
 }

@@ -286,21 +286,21 @@
 function destroy_tree
 {
         typeset -i ret=0
         typeset snap
         for snap in "$@" ; do
-                $ZFS destroy $snap
+                zfs destroy $snap
                 ret=$?
 
                 typeset ds=${snap%%@*}
                 typeset type=$(get_prop "type" $ds)
                 if [[ $type == "filesystem" ]]; then
                         typeset mntpnt=$(get_prop mountpoint $ds)
                         ((ret |= $?))
 
                         if ((ret != 0)); then
-                                $RM -r $mntpnt/$snap
+                                rm -r $mntpnt/$snap
                                 ((ret |= $?))
                         fi
                 fi
 
                 if ((ret != 0)); then

@@ -320,43 +320,43 @@
 function getds_with_suffix
 {
         typeset ds=$1
         typeset suffix=$2
 
-        typeset list=$($ZFS list -r -H -t filesystem,snapshot,volume -o name $ds \
-            | $GREP "$suffix$")
+        typeset list=$(zfs list -r -H -t filesystem,snapshot,volume -o name $ds \
+            | grep "$suffix$")
 
-        $ECHO $list
+        echo $list
 }
 
 #
 # Output inherited properties whitch is edited for file system
 #
 function fs_inherit_prop
 {
         typeset fs_prop
         if is_global_zone ; then
-                fs_prop=$($ZFS inherit 2>&1 | \
-                    $AWK '$2=="YES" && $3=="YES" {print $1}')
+                fs_prop=$(zfs inherit 2>&1 | \
+                    awk '$2=="YES" && $3=="YES" {print $1}')
                 if ! is_te_enabled ; then
-                        fs_prop=$(echo $fs_prop | $GREP -v "mlslabel")
+                        fs_prop=$(echo $fs_prop | grep -v "mlslabel")
                 fi
         else
-                fs_prop=$($ZFS inherit 2>&1 | \
-                    $AWK '$2=="YES" && $3=="YES" {print $1}'|
-                    $EGREP -v "devices|mlslabel|sharenfs|sharesmb|zoned")
+                fs_prop=$(zfs inherit 2>&1 | \
+                    awk '$2=="YES" && $3=="YES" {print $1}'|
+                    egrep -v "devices|mlslabel|sharenfs|sharesmb|zoned")
         fi
 
-        $ECHO $fs_prop
+        echo $fs_prop
 }
 
 #
 # Output inherited properties for volume
 #
 function vol_inherit_prop
 {
-        $ECHO "checksum readonly"
+        echo "checksum readonly"
 }
 
 #
 # Get the destination dataset to compare
 #

@@ -366,15 +366,15 @@
         typeset dstfs=$2
 
         #
         # If the srcfs is not pool
         #
-        if ! $ZPOOL list $srcfs > /dev/null 2>&1 ; then
+        if ! zpool list $srcfs > /dev/null 2>&1 ; then
                 eval dstfs="$dstfs/${srcfs#*/}"
         fi
 
-        $ECHO $dstfs
+        echo $dstfs
 }
 
 #
 # Make test files
 #

@@ -389,17 +389,17 @@
         maxsize=$2
         file_id_offset=$3
         fs=$4
 
         for ((i=0; i<$nfiles; i=i+1)); do
-                $DD if=/dev/urandom \
+                dd if=/dev/urandom \
                     of=/$fs/file-$maxsize-$((i+$file_id_offset)) \
                     bs=$(($RANDOM * $RANDOM % $maxsize)) \
                     count=1 >/dev/null 2>&1 || log_fail \
                     "Failed to create /$fs/file-$maxsize-$((i+$file_id_offset))"
         done
-        $ECHO Created $nfiles files of random sizes up to $maxsize bytes
+        echo Created $nfiles files of random sizes up to $maxsize bytes
 }
 
 #
 # Remove test files
 #

@@ -414,13 +414,13 @@
         maxsize=$2
         file_id_offset=$3
         fs=$4
 
         for ((i=0; i<$nfiles; i=i+1)); do
-                $RM -f /$fs/file-$maxsize-$((i+$file_id_offset))
+                rm -f /$fs/file-$maxsize-$((i+$file_id_offset))
         done
-        $ECHO Removed $nfiles files of random sizes up to $maxsize bytes
+        echo Removed $nfiles files of random sizes up to $maxsize bytes
 }
 
 #
 # Mess up file contents
 #

@@ -428,21 +428,21 @@
 #
 function mess_file
 {
         file=$1
 
-        filesize=$($STAT -c '%s' $file)
+        filesize=$(stat -c '%s' $file)
         offset=$(($RANDOM * $RANDOM % $filesize))
         if (($RANDOM % 7 <= 1)); then
                 #
                 # We corrupt 2 bytes to minimize the chance that we
                 # write the same value that's already there.
                 #
-                log_must eval "$DD if=/dev/random of=$file conv=notrunc " \
+                log_must eval "dd if=/dev/random of=$file conv=notrunc " \
                     "bs=1 count=2 oseek=$offset >/dev/null 2>&1"
         else
-                log_must $TRUNCATE -s $offset $file
+                log_must truncate -s $offset $file
         fi
 }
 
 #
 # Diff the send/receive filesystems

@@ -455,16 +455,16 @@
         sendfs=$1
         recvfs=$2
 
         if [[ -d /$recvfs/.zfs/snapshot/a && -d \
             /$sendfs/.zfs/snapshot/a ]]; then
-                $DIFF -r /$recvfs/.zfs/snapshot/a /$sendfs/.zfs/snapshot/a
+                diff -r /$recvfs/.zfs/snapshot/a /$sendfs/.zfs/snapshot/a
                 [[ $? -eq 0 ]] || log_fail "Differences found in snap a"
         fi
         if [[ -d /$recvfs/.zfs/snapshot/b && -d \
             /$sendfs/.zfs/snapshot/b ]]; then
-                $DIFF -r /$recvfs/.zfs/snapshot/b /$sendfs/.zfs/snapshot/b
+                diff -r /$recvfs/.zfs/snapshot/b /$sendfs/.zfs/snapshot/b
                 [[ $? -eq 0 ]] || log_fail "Differences found in snap b"
         fi
 }
 
 #

@@ -483,19 +483,19 @@
         stream_num=1
         log_must eval "$sendcmd >/$streamfs/$stream_num"
 
         for ((i=0; i<2; i=i+1)); do
                 mess_file /$streamfs/$stream_num
-                log_mustnot $ZFS recv -sv $recvfs </$streamfs/$stream_num
+                log_mustnot zfs recv -sv $recvfs </$streamfs/$stream_num
                 stream_num=$((stream_num+1))
 
-                token=$($ZFS get -Hp -o value receive_resume_token $recvfs)
-                log_must eval "$ZFS send -v -t $token >/$streamfs/$stream_num"
+                token=$(zfs get -Hp -o value receive_resume_token $recvfs)
+                log_must eval "zfs send -v -t $token >/$streamfs/$stream_num"
                 [[ -f /$streamfs/$stream_num ]] || \
                     log_fail "NO FILE /$streamfs/$stream_num"
         done
-        log_must $ZFS recv -sv $recvfs </$streamfs/$stream_num
+        log_must zfs recv -sv $recvfs </$streamfs/$stream_num
 }
 
 #
 # Setup filesystems for the resumable send/receive tests
 #

@@ -510,42 +510,42 @@
         sendfs=$sendpool/sendfs
         recvfs=$recvpool/recvfs
         streamfs=$sendpool/stream
 
         if datasetexists $recvfs; then
-                log_must $ZFS destroy -r $recvfs
+                log_must zfs destroy -r $recvfs
         fi
         if datasetexists $sendfs; then
-                log_must $ZFS destroy -r $sendfs
+                log_must zfs destroy -r $sendfs
         fi
-        if $($ZFS create -o compress=lz4 $sendfs); then
+        if $(zfs create -o compress=lz4 $sendfs); then
                 mk_files 1000 256 0 $sendfs &
                 mk_files 1000 131072 0 $sendfs &
                 mk_files 100 1048576 0 $sendfs &
                 mk_files 10 10485760 0 $sendfs &
                 mk_files 1 104857600 0 $sendfs &
-                log_must $WAIT
-                log_must $ZFS snapshot $sendfs@a
+                log_must wait
+                log_must zfs snapshot $sendfs@a
 
                 rm_files 200 256 0 $sendfs &
                 rm_files 200 131072 0 $sendfs &
                 rm_files 20 1048576 0 $sendfs &
                 rm_files 2 10485760 0 $sendfs &
-                log_must $WAIT
+                log_must wait
 
                 mk_files 400 256 0 $sendfs &
                 mk_files 400 131072 0 $sendfs &
                 mk_files 40 1048576 0 $sendfs &
                 mk_files 4 10485760 0 $sendfs &
-                log_must $WAIT
+                log_must wait
 
-                log_must $ZFS snapshot $sendfs@b
-                log_must eval "$ZFS send -v $sendfs@a >/$sendpool/initial.zsend"
-                log_must eval "$ZFS send -v -i @a $sendfs@b " \
+                log_must zfs snapshot $sendfs@b
+                log_must eval "zfs send -v $sendfs@a >/$sendpool/initial.zsend"
+                log_must eval "zfs send -v -i @a $sendfs@b " \
                     ">/$sendpool/incremental.zsend"
         fi
 
         if datasetexists $streamfs; then
-                log_must $ZFS destroy -r $streamfs
+                log_must zfs destroy -r $streamfs
         fi
-        log_must $ZFS create -o compress=lz4 $sendpool/stream
+        log_must zfs create -o compress=lz4 $sendpool/stream
 }