zfs-utils-0.7.13-alt1.x86_64 arch-dep-package-has-big-usr-share info The package has a significant amount of architecture-independent data in /usr/share, while it is an architecture-dependent package. This is wasteful of mirror space and bandwidth, as we then end up with multiple copies of this data, one for each architecture. If the data in /usr/share is not architecture-independent, it is a policy violation, and in this case, you should move that data elsewhere.; zfs-utils-0.7.13-alt1.x86_64 systemd-but-no-native-init info The package have native systemd file(s) but no SysV init scripts.; zfs-utils-0.7.13-alt1.x86_64 unsafe-tmp-usage-in-scripts info The test discovered scripts with errors which may be used by a user for damaging important system files. For example if a script uses in its work a temp file which is created in /tmp directory, then every user can create symlinks with the same name (pattern) in this directory in order to destroy or rewrite some system or another user's files. Scripts _must_ _use_ mktemp/tempfile or must use $TMPDIR. mktemp/tempfile is safest. $TMPDIR is safer than /tmp/ because libpam-tmpdir creates a subdirectory of /tmp that is only accessible by that user, and then sets TMPDIR and other variables to that. Hence, it doesn't matter nearly as much if you create a non-random filename, because nobody but you can access it. Found error in /usr/share/doc/zfs-utils-0.7.13/examples/zpool_upgrade_001_pos.ksh: $ grep -A5 -B5 /tmp/ /usr/share/doc/zfs-utils-0.7.13/examples/zpool_upgrade_001_pos.ksh # We also check that the usage message contains a description of legacy # versions and a note about feature flags. log_must eval "zpool upgrade -v | head -1 | grep 'feature flags'" zpool upgrade -v > /tmp/zpool-versions.$$ # # Current output for 'zpool upgrade -v' has different indent space # for single and double digit version number. For example, # 9 refquota and refreservation properties # 10 Cache devices # for version in {1..28}; do log_note "Checking for a description of pool version $version" log_must eval "awk '/^ $version / { print $1 }' /tmp/zpool-versions.$$ | grep $version" done rm /tmp/zpool-versions.$$ log_pass "Executing 'zpool upgrade -v' command succeeds" Found error in /usr/share/doc/zfs-utils-0.7.13/examples/zpool_status_001_neg.ksh: $ grep -A5 -B5 /tmp/ /usr/share/doc/zfs-utils-0.7.13/examples/zpool_status_001_neg.ksh # 2. Verify we get output # function check_pool_status { RESULT=$(grep "pool:" /tmp/pool-status.$$) if [ -z "$RESULT" ] then log_fail "No pool: string found in zpool status output!" fi rm /tmp/pool-status.$$ } verify_runnable "global" log_assert "zpool status works when run as a user" log_must eval "zpool status > /tmp/pool-status.$$" check_pool_status log_must eval "zpool status -v > /tmp/pool-status.$$" check_pool_status log_must eval "zpool status $TESTPOOL> /tmp/pool-status.$$" check_pool_status log_must eval "zpool status -v $TESTPOOL > /tmp/pool-status.$$" check_pool_status log_pass "zpool status works when run as a user" Found error in /usr/share/doc/zfs-utils-0.7.13/examples/zpool_get_003_pos.ksh: $ grep -A5 -B5 /tmp/ /usr/share/doc/zfs-utils-0.7.13/examples/zpool_get_003_pos.ksh typeset -i i=0; while [ $i -lt "${#properties[@]}" ] do log_note "Checking for ${properties[$i]} property" log_must eval "zpool get ${properties[$i]} $TESTPOOL > /tmp/value.$$" grep "${properties[$i]}" /tmp/value.$$ > /dev/null 2>&1 if [ $? -ne 0 ] then log_fail "${properties[$i]} not seen in output" fi grep "^NAME " /tmp/value.$$ > /dev/null 2>&1 # only need to check this once. if [ $i -eq 0 ] && [ $? -ne 0 ] then log_fail "Header not seen in zpool get output" fi i=$(( $i + 1 )) done rm /tmp/value.$$ log_pass "Zpool get returns values for all known properties" Found error in /usr/share/doc/zfs-utils-0.7.13/examples/zpool_get_002_pos.ksh: $ grep -A5 -B5 /tmp/ /usr/share/doc/zfs-utils-0.7.13/examples/zpool_get_002_pos.ksh if ! is_global_zone ; then TESTPOOL=${TESTPOOL%%/*} fi log_must zpool get all $TESTPOOL zpool get all $TESTPOOL > /tmp/values.$$ log_note "Checking zpool get all output for a header." grep ^"NAME " /tmp/values.$$ > /dev/null 2>&1 if [ $? -ne 0 ] then log_fail "The header was not printed from zpool get all" fi while [ $i -lt "${#properties[@]}" ] do log_note "Checking for ${properties[$i]} property" grep "$TESTPOOL *${properties[$i]}" /tmp/values.$$ > /dev/null 2>&1 if [ $? -ne 0 ] then log_fail "zpool property ${properties[$i]} was not found\ in pool output." fi -- done # increment the counter to include the header line i=$(( $i + 1 )) COUNT=$(wc /tmp/values.$$ | awk '{print $1}') if [ $i -ne $COUNT ] then log_fail "Found zpool features not in the zpool_get test config $i/$COUNT." fi rm /tmp/values.$$ log_pass "Zpool get all works as expected" Found error in /usr/share/doc/zfs-utils-0.7.13/examples/zpool_create_020_pos.ksh: $ grep -A5 -B5 /tmp/ /usr/share/doc/zfs-utils-0.7.13/examples/zpool_create_020_pos.ksh then log_fail "Mounted filesystem at /${TESTPOOL}.root isn't ZFS!" fi log_must zpool get all $TESTPOOL zpool get all $TESTPOOL > /tmp/values.$$ # check for the cachefile property, verifying that it's set to 'none' grep "$TESTPOOL[ ]*cachefile[ ]*none" /tmp/values.$$ > /dev/null 2>&1 if [ $? -ne 0 ] then log_fail "zpool property \'cachefile\' was not set to \'none\'." fi # check that the root = /mountpoint property is set correctly grep "$TESTPOOL[ ]*altroot[ ]*/${TESTPOOL}.root" /tmp/values.$$ > /dev/null 2>&1 if [ $? -ne 0 ] then log_fail "zpool property root was not found in pool output." fi rm /tmp/values.$$ # finally, check that the pool has no reference in /etc/zfs/zpool.cache if [[ -f /etc/zfs/zpool.cache ]] ; then REF=$(strings /etc/zfs/zpool.cache | grep ${TESTPOOL}) if [ ! -z "$REF" ] Found error in /usr/share/doc/zfs-utils-0.7.13/examples/zpool_add_001_pos.ksh: $ grep -A5 -B5 /tmp/ /usr/share/doc/zfs-utils-0.7.13/examples/zpool_add_001_pos.ksh eval set -A poolarray $pooldevs eval set -A mirrorarray $mirrordevs eval set -A raidzarray $raidzdevs while (( $i < ${#keywords[*]} )); do echo "I=$i keyword=${keywords[i]}" >>/tmp/LOG case ${keywords[i]} in ""|spare) for vdev in "${poolarray[@]}"; do create_pool "$TESTPOOL" "${disk}${SLICE_PREFIX}${SLICE6}" Found error in /usr/share/doc/zfs-utils-0.7.13/examples/zpool_002_pos.ksh: $ grep -A5 -B5 /tmp/ /usr/share/doc/zfs-utils-0.7.13/examples/zpool_002_pos.ksh export ZFS_ABORT=yes for subcmd in "${cmds[@]}" "${badparams[@]}"; do corefile=${corepath}/core.zpool zpool $subcmd >/dev/null 2>&1 ls -l $corepath >>/tmp/CORE if [[ ! -e $corefile ]]; then log_fail "zpool $subcmd cannot generate core file with ZFS_ABORT set." fi rm -f $corefile done Found error in /usr/share/doc/zfs-utils-0.7.13/examples/zpool_001_neg.ksh: $ grep -A5 -B5 /tmp/ /usr/share/doc/zfs-utils-0.7.13/examples/zpool_001_neg.ksh # # function cleanup { if [ -e /tmp/zpool_001_neg.$$.txt ] then rm /tmp/zpool_001_neg.$$.txt fi } log_onexit cleanup log_assert "zpool shows a usage message when run as a user" eval "zpool > /tmp/zpool_001_neg.$$.txt 2>&1" log_must grep "usage: zpool command args" /tmp/zpool_001_neg.$$.txt log_pass "zpool shows a usage message when run as a user" Found error in /usr/share/doc/zfs-utils-0.7.13/examples/zpool-config/lo-faulty-raidz3.sh: $ grep -A5 -B5 /tmp/ /usr/share/doc/zfs-utils-0.7.13/examples/zpool-config/lo-faulty-raidz3.sh # loop0 loop1 loop2 loop3 # md0 (faulty) md1 (faulty) md2 (faulty) md3 (faulty) # <--------------------- raidz3 zpool --------------------> # FILES="/tmp/zpool-vdev0 \ /tmp/zpool-vdev1 \ /tmp/zpool-vdev2 \ /tmp/zpool-vdev3" LODEVICES="" MDDEVICES="" zpool_create() { check_loop_utils -- msg ${ZPOOL} create ${ZPOOL_FLAGS} ${ZPOOL_NAME} raidz3 ${MDDEVICES} ${ZPOOL} create ${ZPOOL_FLAGS} ${ZPOOL_NAME} raidz3 ${MDDEVICES} || \ (destroy_md_devices "${MDDEVICES}" && \ destroy_loop_devices "${LODEVICES}" && exit 1) echo "$LODEVICES" >/tmp/zpool-lo.txt echo "$MDDEVICES" >/tmp/zpool-md.txt } zpool_destroy() { msg ${ZPOOL} destroy ${ZPOOL_NAME} ${ZPOOL} destroy ${ZPOOL_NAME} destroy_md_devices "`cat /tmp/zpool-md.txt`" destroy_loop_devices "`cat /tmp/zpool-lo.txt`" rm -f /tmp/zpool-md.txt /tmp/zpool-lo.txt } Found error in /usr/share/doc/zfs-utils-0.7.13/examples/zpool-config/lo-faulty-raidz2.sh: $ grep -A5 -B5 /tmp/ /usr/share/doc/zfs-utils-0.7.13/examples/zpool-config/lo-faulty-raidz2.sh msg ${ZPOOL} create ${ZPOOL_FLAGS} ${ZPOOL_NAME} raidz2 ${MDDEVICES} ${ZPOOL} create ${ZPOOL_FLAGS} ${ZPOOL_NAME} raidz2 ${MDDEVICES} || \ (destroy_md_devices "${MDDEVICES}" && \ destroy_loop_devices "${LODEVICES}" && exit 1) echo "$LODEVICES" >/tmp/zpool-lo.txt echo "$MDDEVICES" >/tmp/zpool-md.txt } zpool_destroy() { msg ${ZPOOL} destroy ${ZPOOL_NAME} ${ZPOOL} destroy ${ZPOOL_NAME} destroy_md_devices "`cat /tmp/zpool-md.txt`" destroy_loop_devices "`cat /tmp/zpool-lo.txt`" rm -f /tmp/zpool-md.txt /tmp/zpool-lo.txt } Found error in /usr/share/doc/zfs-utils-0.7.13/examples/zpool-config/lo-faulty-raidz.sh: $ grep -A5 -B5 /tmp/ /usr/share/doc/zfs-utils-0.7.13/examples/zpool-config/lo-faulty-raidz.sh msg ${ZPOOL} create ${ZPOOL_FLAGS} ${ZPOOL_NAME} raidz ${MDDEVICES} ${ZPOOL} create ${ZPOOL_FLAGS} ${ZPOOL_NAME} raidz ${MDDEVICES} || \ (destroy_md_devices "${MDDEVICES}" && \ destroy_loop_devices "${LODEVICES}" && exit 1) echo "$LODEVICES" >/tmp/zpool-lo.txt echo "$MDDEVICES" >/tmp/zpool-md.txt } zpool_destroy() { msg ${ZPOOL} destroy ${ZPOOL_NAME} ${ZPOOL} destroy ${ZPOOL_NAME} destroy_md_devices "`cat /tmp/zpool-md.txt`" destroy_loop_devices "`cat /tmp/zpool-lo.txt`" rm -f /tmp/zpool-md.txt /tmp/zpool-lo.txt } Found error in /usr/share/doc/zfs-utils-0.7.13/examples/zpool-config/lo-faulty-raid10.sh: $ grep -A5 -B5 /tmp/ /usr/share/doc/zfs-utils-0.7.13/examples/zpool-config/lo-faulty-raid10.sh ${ZPOOL} create ${ZPOOL_FLAGS} ${ZPOOL_NAME} \ mirror ${MDDEVICES_M1} mirror ${MDDEVICES_M2} || \ (destroy_md_devices "${MDDEVICES}" && \ destroy_loop_devices "${LODEVICES}" && exit 1) echo "$LODEVICES" >/tmp/zpool-lo.txt echo "$MDDEVICES" >/tmp/zpool-md.txt } zpool_destroy() { msg ${ZPOOL} destroy ${ZPOOL_NAME} ${ZPOOL} destroy ${ZPOOL_NAME} destroy_md_devices "`cat /tmp/zpool-md.txt`" destroy_loop_devices "`cat /tmp/zpool-lo.txt`" rm -f /tmp/zpool-md.txt /tmp/zpool-lo.txt } Found error in /usr/share/doc/zfs-utils-0.7.13/examples/zpool-config/lo-faulty-raid0.sh: $ grep -A5 -B5 /tmp/ /usr/share/doc/zfs-utils-0.7.13/examples/zpool-config/lo-faulty-raid0.sh msg ${ZPOOL} create ${ZPOOL_FLAGS} ${ZPOOL_NAME} ${MDDEVICES} ${ZPOOL} create ${ZPOOL_FLAGS} ${ZPOOL_NAME} ${MDDEVICES} || \ (destroy_md_devices "${MDDEVICES}" && \ destroy_loop_devices "${LODEVICES}" && exit 1) echo "$LODEVICES" >/tmp/zpool-lo.txt echo "$MDDEVICES" >/tmp/zpool-md.txt } zpool_destroy() { msg ${ZPOOL} destroy ${ZPOOL_NAME} ${ZPOOL} destroy ${ZPOOL_NAME} destroy_md_devices "`cat /tmp/zpool-md.txt`" destroy_loop_devices "`cat /tmp/zpool-lo.txt`" rm -f /tmp/zpool-md.txt /tmp/zpool-lo.txt } Found error in /usr/share/doc/zfs-utils-0.7.13/examples/zfs_send_001_neg.ksh: $ grep -A5 -B5 /tmp/ /usr/share/doc/zfs-utils-0.7.13/examples/zfs_send_001_neg.ksh # # function cleanup { if [ -e /tmp/zfstest_datastream.$$ ] then log_must rm /tmp/zfstest_datastream.$$ fi } log_assert "zfs send returns an error when run as a user" log_onexit cleanup log_mustnot eval "zfs send $TESTPOOL/$TESTFS@snap > /tmp/zfstest_datastream.$$" # Now check that the above command actually did nothing # We should have a non-zero-length file in /tmp if [ -s /tmp/zfstest_datastream.$$ ] then log_fail "A zfs send file was created in /tmp/zfstest_datastream.$$ !" fi log_pass "zfs send returns an error when run as a user" Found error in /usr/share/doc/zfs-utils-0.7.13/examples/zfs_receive_010_pos.ksh: $ grep -A5 -B5 /tmp/ /usr/share/doc/zfs-utils-0.7.13/examples/zfs_receive_010_pos.ksh } function cleanup { zfs destroy -Rf $TESTPOOL/$TESTFS/base rm /tmp/zr010p* } log_assert "zfs receive of full send as clone should work" log_onexit cleanup log_must zfs create -o checksum=sha256 -o compression=gzip -o recordsize=512 \ -- done log_must zfs snapshot $fs@s1 log_must zfs snapshot $fs2@s1 log_must zfs send $fs@s1 > /tmp/zr010p log_must zfs send $fs2@s1 > /tmp/zr010p2 # # Test that, when we receive a full send as a clone of itself, # nop-write saves us all the space used by data blocks. # cat /tmp/zr010p | log_must zfs receive -o origin=$fs@s1 $rfs size=$(get_prop used $rfs) size2=$(get_prop used $fs) if [[ $size -ge $(($size2 / 10)) ]] then log_fail "nop-write failure; expected usage less than "\ "$(($size2 / 10)), but is using $size" fi log_must zfs destroy -fr $rfs # Correctness testing: receive each full send as a clone of the other fiesystem. cat /tmp/zr010p | log_must zfs receive -o origin=$fs2@s1 $rfs mntpnt_old=$(get_prop mountpoint $fs) mntpnt_new=$(get_prop mountpoint $rfs) log_must diff -r $mntpnt_old $mntpnt_new log_must zfs destroy -r $rfs cat /tmp/zr010p2 | log_must zfs receive -o origin=$fs@s1 $rfs mntpnt_old=$(get_prop mountpoint $fs2) mntpnt_new=$(get_prop mountpoint $rfs) log_must diff -r $mntpnt_old $mntpnt_new log_pass "zfs receive of full send as clone works" Found error in /usr/share/doc/zfs-utils-0.7.13/examples/zfs_001_neg.ksh: $ grep -A5 -B5 /tmp/ /usr/share/doc/zfs-utils-0.7.13/examples/zfs_001_neg.ksh # 2. Verify it produces a usage message # function cleanup { if [ -e /tmp/zfs_001_neg.$$.txt ] then rm /tmp/zfs_001_neg.$$.txt fi } log_onexit cleanup log_assert "zfs shows a usage message when run as a user" eval "zfs > /tmp/zfs_001_neg.$$.txt 2>&1" log_must grep "usage: zfs command args" /tmp/zfs_001_neg.$$.txt log_pass "zfs shows a usage message when run as a user" Found error in /usr/share/doc/zfs-utils-0.7.13/examples/zdb_001_neg.ksh: $ grep -A5 -B5 /tmp/ /usr/share/doc/zfs-utils-0.7.13/examples/zdb_001_neg.ksh # 2. Run zdb as a user on different datasets, it should fail # function check_zdb { $@ > /tmp/zdb.$$ grep "Dataset mos" /tmp/zdb.$$ if [ $? -eq 0 ] then log_fail "$@ exited 0 when run as a non root user!" fi rm /tmp/zdb.$$ } function cleanup { if [ -e /tmp/zdb_001_neg.$$.txt ] then rm /tmp/zdb_001_neg.$$.txt fi } verify_runnable "global" log_assert "zdb can't run as a user on datasets, but can run without arguments" log_onexit cleanup log_must eval "zdb > /tmp/zdb_001_neg.$$.txt" # verify the output looks okay log_must grep pool_guid /tmp/zdb_001_neg.$$.txt log_must rm /tmp/zdb_001_neg.$$.txt # we shouldn't able to run it on any dataset check_zdb zdb $TESTPOOL check_zdb zdb $TESTPOOL/$TESTFS check_zdb zdb $TESTPOOL/$TESTFS@snap Found error in /usr/share/doc/zfs-utils-0.7.13/examples/xattr_011_pos.ksh: $ grep -A5 -B5 /tmp/ /usr/share/doc/zfs-utils-0.7.13/examples/xattr_011_pos.ksh log_note "Checking cpio - unsupported" else log_note "Checking cpio" log_must touch $TESTDIR/cpio.$$ create_xattr $TESTDIR/cpio.$$ passwd /etc/passwd echo $TESTDIR/cpio.$$ | cpio -o@ > /tmp/xattr.$$.cpio echo $TESTDIR/cpio.$$ | cpio -o > /tmp/noxattr.$$.cpio # we should have no xattr here log_must cpio -iu < /tmp/xattr.$$.cpio log_mustnot eval "runat $TESTDIR/cpio.$$ cat passwd > /dev/null 2>&1" # we should have an xattr here log_must cpio -iu@ < /tmp/xattr.$$.cpio log_must eval "runat $TESTDIR/cpio.$$ cat passwd > /dev/null 2>&1" # we should have no xattr here log_must cpio -iu < /tmp/noxattr.$$.cpio log_mustnot eval "runat $TESTDIR/cpio.$$ cat passwd > /dev/null 2>&1" # we should have no xattr here log_must cpio -iu@ < /tmp/noxattr.$$.cpio log_mustnot eval "runat $TESTDIR/cpio.$$ cat passwd > /dev/null 2>&1" log_must rm $TESTDIR/cpio.$$ /tmp/xattr.$$.cpio /tmp/noxattr.$$.cpio fi log_note "Checking cp" # check that with the right flag, the xattr is preserved if is_linux; then Found error in /usr/share/doc/zfs-utils-0.7.13/examples/xattr_008_pos.ksh: $ grep -A5 -B5 /tmp/ /usr/share/doc/zfs-utils-0.7.13/examples/xattr_008_pos.ksh # function cleanup { typeset file for file in /tmp/output.$$ /tmp/expected-output.$$ \ $TESTDIR/myfile.$$ ; do log_must rm -f $file done } -- # create a file, and an xattr on it log_must touch $TESTDIR/myfile.$$ create_xattr $TESTDIR/myfile.$$ passwd /etc/passwd # listing the directory . log_must eval "runat $TESTDIR/myfile.$$ ls . > /tmp/output.$$" create_expected_output /tmp/expected-output.$$ \ SUNWattr_ro SUNWattr_rw passwd log_must diff /tmp/output.$$ /tmp/expected-output.$$ # list the directory . long form log_must eval "runat $TESTDIR/myfile.$$ ls -a . > /tmp/output.$$" create_expected_output /tmp/expected-output.$$ . .. \ SUNWattr_ro SUNWattr_rw passwd log_must diff /tmp/output.$$ /tmp/expected-output.$$ # list the directory .. expecting one file OUTPUT=$(runat $TESTDIR/myfile.$$ ls ..) if [ "$OUTPUT" != ".." ] then Found error in /usr/share/doc/zfs-utils-0.7.13/examples/xattr_007_neg.ksh: $ grep -A5 -B5 /tmp/ /usr/share/doc/zfs-utils-0.7.13/examples/xattr_007_neg.ksh function cleanup { log_must zfs destroy $TESTPOOL/$TESTFS@snap log_must rm $TESTDIR/myfile2.$$ log_must rm $TESTDIR/myfile.$$ log_must rm /tmp/output.$$ [[ -e /tmp/expected_output.$$ ]] && log_must rm \ /tmp/expected_output.$$ } log_assert "create/write xattr on a snapshot fails" log_onexit cleanup -- log_must zfs snapshot $TESTPOOL/$TESTFS@snap # we shouldn't be able to alter the first file's xattr if is_linux; then log_mustnot eval "attr -s cp $TESTDIR/.zfs/snapshot/snap/myfile.$$ \ /tmp/output.$$ 2>&1" log_must grep -i Read-only /tmp/output.$$ log_must eval "attr -q -l $TESTDIR/.zfs/snapshot/snap/myfile2.$$ \ >/tmp/output.$$ 2>&1" log_must eval "attr -q -l $TESTDIR/myfile2.$$ >/tmp/expected_output.$$" else log_mustnot eval " runat $TESTDIR/.zfs/snapshot/snap/myfile.$$ \ cp /etc/passwd . >/tmp/output.$$ 2>&1" log_must grep -i Read-only /tmp/output.$$ log_must eval "runat $TESTDIR/.zfs/snapshot/snap/myfile2.$$ \ ls >/tmp/output.$$ 2>&1" create_expected_output /tmp/expected_output.$$ SUNWattr_ro SUNWattr_rw fi log_must diff /tmp/output.$$ /tmp/expected_output.$$ log_pass "create/write xattr on a snapshot fails" Found error in /usr/share/doc/zfs-utils-0.7.13/examples/xattr_004_pos.ksh: $ grep -A5 -B5 /tmp/ /usr/share/doc/zfs-utils-0.7.13/examples/xattr_004_pos.ksh # we need to be able to create zvols to hold our test ufs|ext filesystem. verify_runnable "global" # Make sure we clean up properly function cleanup { if ismounted /tmp/$NEWFS_DEFAULT_FS.$$ $NEWFS_DEFAULT_FS; then log_must umount /tmp/$NEWFS_DEFAULT_FS.$$ log_must rm -rf /tmp/$NEWFS_DEFAULT_FS.$$ fi } log_assert "Files from $NEWFS_DEFAULT_FS,tmpfs with xattrs copied to zfs retain xattr info." log_onexit cleanup -- # Create a ufs|ext file system that we can work in log_must zfs create -V128m $TESTPOOL/$TESTFS/zvol block_device_wait log_must eval "echo y | newfs $ZVOL_DEVDIR/$TESTPOOL/$TESTFS/zvol > /dev/null 2>&1" log_must mkdir /tmp/$NEWFS_DEFAULT_FS.$$ if is_linux; then log_must mount -o user_xattr \ $ZVOL_DEVDIR/$TESTPOOL/$TESTFS/zvol /tmp/$NEWFS_DEFAULT_FS.$$ # Create files in ext and tmpfs, and set some xattrs on them. # Use small values for xattrs for ext compatibility. log_must touch /tmp/$NEWFS_DEFAULT_FS.$$/$NEWFS_DEFAULT_FS-file.$$ log_must touch /tmp/tmpfs-file.$$ echo "TEST XATTR" >/tmp/xattr1 echo "1234567890" >/tmp/xattr2 log_must attr -q -s xattr1 \ /tmp/$NEWFS_DEFAULT_FS.$$/$NEWFS_DEFAULT_FS-file.$$ /tmp/xattr1.$$" log_must diff /tmp/xattr1.$$ /tmp/xattr1 log_must eval "attr -q -g xattr2 $TESTDIR/tmpfs-file.$$ >/tmp/xattr2.$$" log_must diff /tmp/xattr2.$$ /tmp/xattr2 log_must rm /tmp/xattr1 /tmp/xattr1.$$ /tmp/xattr2 /tmp/xattr2.$$ log_must umount /tmp/$NEWFS_DEFAULT_FS.$$ else log_must mount $ZVOL_DEVDIR/$TESTPOOL/$TESTFS/zvol \ /tmp/$NEWFS_DEFAULT_FS.$$ # Create files in ufs and tmpfs, and set some xattrs on them. log_must touch /tmp/$NEWFS_DEFAULT_FS.$$/$NEWFS_DEFAULT_FS-file.$$ log_must touch /tmp/tmpfs-file.$$ log_must runat /tmp/$NEWFS_DEFAULT_FS.$$/$NEWFS_DEFAULT_FS-file.$$ \ cp /etc/passwd . log_must runat /tmp/tmpfs-file.$$ cp /etc/group . # copy those files to ZFS log_must cp -@ /tmp/$NEWFS_DEFAULT_FS.$$/$NEWFS_DEFAULT_FS-file.$$ \ $TESTDIR log_must cp -@ /tmp/tmpfs-file.$$ $TESTDIR # ensure the xattr information has been copied correctly log_must runat $TESTDIR/$NEWFS_DEFAULT_FS-file.$$ \ diff passwd /etc/passwd log_must runat $TESTDIR/tmpfs-file.$$ diff group /etc/group log_must umount /tmp/$NEWFS_DEFAULT_FS.$$ fi log_pass "Files from $NEWFS_DEFAULT_FS,tmpfs with xattrs copied to zfs retain xattr info." Found error in /usr/share/doc/zfs-utils-0.7.13/examples/xattr_003_neg.ksh: $ grep -A5 -B5 /tmp/ /usr/share/doc/zfs-utils-0.7.13/examples/xattr_003_neg.ksh create_xattr $TESTDIR/myfile.$$ passwd /etc/passwd log_must chmod 000 $TESTDIR/myfile.$$ if is_linux; then user_run $ZFS_USER eval \ "attr -q -g passwd $TESTDIR/myfile.$$ >/tmp/passwd.$$" log_mustnot diff /etc/passwd /tmp/passwd.$$ log_must rm /tmp/passwd.$$ user_run $ZFS_USER eval \ "attr -q -s passwd $TESTDIR/myfile.$$ /tmp/passwd.$$ log_must diff /etc/passwd /tmp/passwd.$$ log_must rm /tmp/passwd.$$ else log_mustnot su $ZFS_USER -c "runat $TESTDIR/myfile.$$ cat passwd" log_mustnot su $ZFS_USER -c "runat $TESTDIR/myfile.$$ cp /etc/passwd ." fi Found error in /usr/share/doc/zfs-utils-0.7.13/examples/nopwrite_recsize.ksh: $ grep -A5 -B5 /tmp/ /usr/share/doc/zfs-utils-0.7.13/examples/nopwrite_recsize.ksh log_must zfs clone $origin@a $origin/clone for rs in 512 1024 2048 4096 8192 16384 32768 65536 131072 ; do log_must zfs set recsize=$rs $origin/clone dd if=/$TESTDIR/file of=/$TESTDIR/clone/file bs=1024k count=$MEGS \ conv=notrunc >/tmp/null 2>&1 || log_fail "dd failed." log_must verify_nopwrite $origin $origin@a $origin/clone done log_pass "nopwrite updates file metadata correctly" Found error in /usr/share/doc/zfs-utils-0.7.13/examples/largest_pool_001_pos.ksh: $ grep -A5 -B5 /tmp/ /usr/share/doc/zfs-utils-0.7.13/examples/largest_pool_001_pos.ksh 'eb') CHKUNIT="E" ;; *) CHKUNIT="M" ;; esac log_note "Detect zpool $TESTPOOL in this test machine." log_must eval "zpool list $TESTPOOL > /tmp/j.$$" log_must eval "grep $TESTPOOL /tmp/j.$$ | \ awk '{print $2}' | grep $CHKUNIT" log_note "Detect the file system in this test machine." log_must eval "df -F zfs -h > /tmp/j.$$" log_must eval "grep $TESTPOOL /tmp/j.$$ | \ awk '{print $2}' | grep $CHKUNIT" return 0 } -- datasetexists $TESTPOOL2/$TESTVOL && \ log_must zfs destroy $TESTPOOL2/$TESTVOL destroy_pool $TESTPOOL2 rm -f /tmp/j.* > /dev/null } log_assert "The largest pool can be created and a dataset in that" \ "pool can be created and mounted." Found error in /usr/share/doc/zfs-utils-0.7.13/examples/enospc_002_pos.ksh: $ grep -A5 -B5 /tmp/ /usr/share/doc/zfs-utils-0.7.13/examples/enospc_002_pos.ksh log_mustnot_expect space zfs clone $TESTPOOL/$TESTFS@snap $TESTPOOL/clone log_mustnot_expect space zfs snapshot $TESTPOOL/$TESTFS@snap2 log_mustnot_expect space zfs bookmark \ $TESTPOOL/$TESTFS@snap $TESTPOOL/$TESTFS#bookmark log_must zfs send $TESTPOOL/$TESTFS@snap >/tmp/stream.$$ log_mustnot_expect space zfs receive $TESTPOOL/$TESTFS/recvd