tests: adjust PATH to include /sbin for mkfs-using tests
authorBernhard Voelker <mail@bernhard-voelker.de>
Wed, 7 Sep 2011 09:58:52 +0000 (11:58 +0200)
committerJim Meyering <meyering@redhat.com>
Wed, 7 Sep 2011 16:00:55 +0000 (18:00 +0200)
* tests/init.cfg (require_mkfs_PATH_): New function to test whether mkfs
is in PATH, otherwise adding /sbin to PATH.  Needed for distributions
(OpenSuSE, Solaris) in which sudo does not include /sbin in PATH.
* tests/cp/cp-a-selinux: Use require_mkfs_PATH_.
* tests/cp/cp-mv-enotsup-xattr: Likewise.
* tests/cp/sparse-fiemap: Likewise.
* tests/mkdir/writable-under-readonly: Likewise.
* tests/rm/read-only: Likewise.

tests/cp/cp-a-selinux
tests/cp/cp-mv-enotsup-xattr
tests/cp/sparse-fiemap
tests/init.cfg
tests/mkdir/writable-under-readonly
tests/rm/read-only

index 8a8e374..0f9c149 100755 (executable)
@@ -23,6 +23,7 @@
 print_ver_ cp
 require_root_
 require_selinux_
+require_mkfs_PATH_
 
 cwd=`pwd`
 cleanup_() { cd /; umount "$cwd/mnt"; }
index 9857fec..32798d2 100755 (executable)
@@ -22,6 +22,7 @@
 print_ver_ cp mv
 
 require_root_
+require_mkfs_PATH_
 
 cwd=`pwd`
 cleanup_() { cd /; umount "$cwd/noxattr"; umount "$cwd/xattr"; }
index 5eedb4f..831bf0b 100755 (executable)
@@ -32,6 +32,7 @@ else
 
   # It's not;  we need to create one, hence we need root access.
   require_root_
+  require_mkfs_PATH_
 
   cwd=$PWD
   cleanup_() { cd /; umount "$cwd/mnt"; }
index f7615e6..0d137ab 100644 (file)
@@ -180,6 +180,23 @@ uid_is_privileged_()
   esac
 }
 
+# Some versions of sudo do not include /sbin in PATH.
+# Test if mkfs is in PATH, otherwise try to adapt PATH.
+require_mkfs_PATH_()
+{
+  type mkfs && return
+
+  case ":$PATH:" in
+    *:/sbin:*) skip_ "no usable mkfs found" ;;
+  esac
+
+  test -x /sbin/mkfs \
+    || skip_ "no usable mkfs found"
+
+  PATH="$PATH:/sbin"
+  export PATH
+}
+
 get_process_status_()
 {
   sed -n '/^State:[     ]*\([[:alpha:]]\).*/s//\1/p' /proc/$1/status
index c0f83fb..3e42b1d 100755 (executable)
@@ -27,6 +27,7 @@
 . "${srcdir=.}/init.sh"; path_prepend_ ../src
 print_ver_ mkdir
 require_root_
+require_mkfs_PATH_
 
 # FIXME: for now, skip it unconditionally
 skip_ temporarily disabled
index c52883b..489b1bf 100755 (executable)
@@ -19,6 +19,7 @@
 . "${srcdir=.}/init.sh"; path_prepend_ ../src
 print_ver_ rm
 require_root_
+require_mkfs_PATH_
 
 cwd=`pwd`
 cleanup_() { cd /; umount "$cwd/mnt"; }