]> git.apps.os.sepia.ceph.com Git - xfstests-dev.git/commitdiff
generic: Handle missing [gs]etcap tools
authorJan Kara <jack@suse.cz>
Fri, 18 May 2018 08:02:39 +0000 (10:02 +0200)
committerEryu Guan <guaneryu@gmail.com>
Mon, 21 May 2018 08:12:39 +0000 (16:12 +0800)
Add proper requires for getcap and setcap tools to tests that need
them.  Also define standard variables GETCAP_PROG and SETCAP_PROG.

Signed-off-by: Jan Kara <jack@suse.cz>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
common/config
tests/generic/093
tests/generic/270
tests/xfs/296

index af360cefc80471a7c1c505d46759b9b590d26af9..02c378a96fa2fca834d3cf065cd63d608642f925 100644 (file)
@@ -205,6 +205,8 @@ export THIN_CHECK_PROG="$(set_prog_path thin_check)"
 export PYTHON2_PROG="`set_prog_path python2`"
 export SQLITE3_PROG="`set_prog_path sqlite3`"
 export TIMEOUT_PROG="`set_prog_path timeout`"
+export SETCAP_PROG="`set_prog_path setcap`"
+export GETCAP_PROG="`set_prog_path getcap`"
 
 # use 'udevadm settle' or 'udevsettle' to wait for lv to be settled.
 # newer systems have udevadm command but older systems like RHEL5 don't.
index 197e6722f22cdf514a4050359fff449c718f93e0..e70273bca7f230d12f1a187af41e227d05f12ee1 100755 (executable)
@@ -54,6 +54,8 @@ _require_test
 _require_attrs
 _require_user
 _require_test_program "writemod"
+_require_command "$SETCAP_PROG" "setcap"
+_require_command "$GETCAP_PROG" "getcap"
 
 rm -f $seqres.full
 
@@ -65,15 +67,15 @@ rm -f $file
 touch $file
 
 echo "**** Verifying that appending to file clears capabilities ****"
-setcap cap_chown+ep $file
-getcap $file | filefilter
+$SETCAP_PROG cap_chown+ep $file
+$GETCAP_PROG $file | filefilter
 echo data1 >> $file
 cat $file
-getcap $file | filefilter
+$GETCAP_PROG $file | filefilter
 echo
 
 echo "**** Verifying that appending to file doesn't clear other xattrs ****"
-setcap cap_chown+ep $file
+$SETCAP_PROG cap_chown+ep $file
 $SETFATTR_PROG -n trusted.name -v value $file
 echo data2 >> $file
 cat $file
index f5026ba0cd300b2f8b2e722bea3ac363eccc918e..d597ab4942866f0f28e8019d216f1340b1edf926 100755 (executable)
@@ -51,10 +51,7 @@ _workout()
        echo "fsstress $args" >> $seqres.full
        # Grant chown capability 
        cp $FSSTRESS_PROG  $tmp.fsstress.bin
-       if [ "`whereis setcap`" == "setcap:" ]; then
-            _notrun "setcap not installed."
-       fi
-       setcap cap_chown=epi  $tmp.fsstress.bin
+       $SETCAP_PROG cap_chown=epi  $tmp.fsstress.bin
 
        (su $qa_user -c "$tmp.fsstress.bin $args" &) > /dev/null 2>&1
        pid=$!
@@ -80,6 +77,7 @@ _require_quota
 _require_user
 _require_scratch
 _require_command "$KILLALL_PROG" killall
+_require_command "$SETCAP_PROG" setcap
 
 rm -f $seqres.full
 _scratch_mkfs_sized $((512 * 1024 * 1024)) >> $seqres.full 2>&1
index 610c2ec426c69387768181d0f4ecf77d873be022..8baf97abdd7e053bd74b8cbfc4927e332c160b67 100755 (executable)
@@ -47,6 +47,8 @@ _cleanup()
 _supported_fs xfs
 _supported_os Linux
 _require_scratch
+_require_command "$SETCAP_PROG" setcap
+_require_command "$GETCAP_PROG" getcap
 
 rm -f $seqres.full
 
@@ -57,12 +59,12 @@ echo test > $dump_dir/testfile
 # Set a generic xattr
 setfattr -n user.name -v value $dump_dir/testfile
 # Now set the cap (which is also an xattr)
-setcap cap_setgid,cap_setuid+ep $dump_dir/testfile
+$SETCAP_PROG cap_setgid,cap_setuid+ep $dump_dir/testfile
 # And make sure they are there on the source
 echo "Checking for xattr on source file"
 getfattr --absolute-names -m user.name $dump_dir/testfile | _dir_filter
 echo "Checking for capability on source file"
-getcap $dump_dir/testfile | _dir_filter
+$GETCAP_PROG $dump_dir/testfile | _dir_filter
 getfattr --absolute-names -m security.capability $dump_dir/testfile | _dir_filter
 
 _do_dump_file -f $tmp.df.0
@@ -75,7 +77,7 @@ _diff_compare
 echo "Checking for xattr on restored file"
 getfattr --absolute-names -m user.name $restore_dir/$dump_sdir/testfile | _dir_filter
 echo "Checking for capability on restored file"
-getcap $restore_dir/$dump_sdir/testfile | _dir_filter
+$GETCAP_PROG $restore_dir/$dump_sdir/testfile | _dir_filter
 getfattr --absolute-names -m security.capability $restore_dir/$dump_sdir/testfile | _dir_filter
 
 status=0