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,33 **** # Copyright 2008 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # # ! # Copyright (c) 2013 by Delphix. All rights reserved. # . $STF_SUITE/include/libtest.shlib # a function that takes a file, then creates and verifies --- 23,33 ---- # Copyright 2008 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # # ! # Copyright (c) 2013, 2016 by Delphix. All rights reserved. # . $STF_SUITE/include/libtest.shlib # a function that takes a file, then creates and verifies
*** 37,49 **** typeset FILE=$1 typeset XATTR_NAME=$2 typeset XATTR_CONTENTS=$3 # read any empty xattr on that file ! log_must $RUNAT $FILE $LS # create the xattr ! log_must $RUNAT $FILE $CP $XATTR_CONTENTS $XATTR_NAME verify_xattr $FILE $XATTR_NAME $XATTR_CONTENTS } # a function that compares the a single xattr between two files --- 37,49 ---- typeset FILE=$1 typeset XATTR_NAME=$2 typeset XATTR_CONTENTS=$3 # read any empty xattr on that file ! log_must runat $FILE ls # create the xattr ! log_must runat $FILE cp $XATTR_CONTENTS $XATTR_NAME verify_xattr $FILE $XATTR_NAME $XATTR_CONTENTS } # a function that compares the a single xattr between two files
*** 51,107 **** function compare_xattrs { # filename1 filename2 xattr_name typeset FILE1=$1 typeset FILE2=$2 typeset XATTR_NAME=$3 ! $RUNAT $FILE1 $CAT $XATTR_NAME > /tmp/file1.$$ ! $RUNAT $FILE2 $CAT $XATTR_NAME > /tmp/file2.$$ ! log_must $DIFF /tmp/file1.$$ /tmp/file2.$$ ! log_must $RM /tmp/file1.$$ /tmp/file2.$$ } function verify_xattr { # filename xattr_name xattr_contents typeset FILE=$1 typeset XATTR_NAME=$2 typeset XATTR_CONTENTS=$3 # read the xattr, writing it to a temp file ! log_must eval "$RUNAT $FILE $CAT $XATTR_NAME > /tmp/$XATTR_NAME.$$ 2>&1" ! log_must $DIFF $XATTR_CONTENTS /tmp/$XATTR_NAME.$$ ! $RM /tmp/$XATTR_NAME.$$ } function delete_xattr { # filename xattr_name typeset FILE=$1 typeset XATTR_NAME=$2 # delete the xattr ! log_must $RUNAT $FILE $RM $XATTR_NAME ! log_mustnot eval "$RUNAT $FILE $LS $XATTR_NAME > /dev/null 2>&1" } # not sure about this : really this should be testing write/append function verify_write_xattr { # filename xattr_name typeset FILE=$1 typeset XATTR_NAME=$2 ! log_must eval "$RUNAT $FILE $DD if=/etc/passwd of=$XATTR_NAME" ! log_must eval "$RUNAT $FILE $CAT $XATTR_NAME > /tmp/$XATTR_NAME.$$ 2>&1" ! log_must $DD if=/etc/passwd of=/tmp/passwd_dd.$$ ! log_must $DIFF /tmp/passwd_dd.$$ /tmp/$XATTR_NAME.$$ ! log_must $RM /tmp/passwd_dd.$$ /tmp/$XATTR_NAME.$$ } # this function is to create the expected output function create_expected_output { # expected_output_file contents_of_the_output typeset FILE=$1 shift if [[ -f $FILE ]]; then ! log_must $RM $FILE fi for line in $@ do ! log_must eval "$ECHO $line >> $FILE" done } --- 51,107 ---- function compare_xattrs { # filename1 filename2 xattr_name typeset FILE1=$1 typeset FILE2=$2 typeset XATTR_NAME=$3 ! runat $FILE1 cat $XATTR_NAME > /tmp/file1.$$ ! runat $FILE2 cat $XATTR_NAME > /tmp/file2.$$ ! log_must diff /tmp/file1.$$ /tmp/file2.$$ ! log_must rm /tmp/file1.$$ /tmp/file2.$$ } function verify_xattr { # filename xattr_name xattr_contents typeset FILE=$1 typeset XATTR_NAME=$2 typeset XATTR_CONTENTS=$3 # read the xattr, writing it to a temp file ! log_must eval "runat $FILE cat $XATTR_NAME > /tmp/$XATTR_NAME.$$ 2>&1" ! log_must diff $XATTR_CONTENTS /tmp/$XATTR_NAME.$$ ! rm /tmp/$XATTR_NAME.$$ } function delete_xattr { # filename xattr_name typeset FILE=$1 typeset XATTR_NAME=$2 # delete the xattr ! log_must runat $FILE rm $XATTR_NAME ! log_mustnot eval "runat $FILE ls $XATTR_NAME > /dev/null 2>&1" } # not sure about this : really this should be testing write/append function verify_write_xattr { # filename xattr_name typeset FILE=$1 typeset XATTR_NAME=$2 ! log_must eval "runat $FILE dd if=/etc/passwd of=$XATTR_NAME" ! log_must eval "runat $FILE cat $XATTR_NAME > /tmp/$XATTR_NAME.$$ 2>&1" ! log_must dd if=/etc/passwd of=/tmp/passwd_dd.$$ ! log_must diff /tmp/passwd_dd.$$ /tmp/$XATTR_NAME.$$ ! log_must rm /tmp/passwd_dd.$$ /tmp/$XATTR_NAME.$$ } # this function is to create the expected output function create_expected_output { # expected_output_file contents_of_the_output typeset FILE=$1 shift if [[ -f $FILE ]]; then ! log_must rm $FILE fi for line in $@ do ! log_must eval "echo $line >> $FILE" done }