tests: accommodate built-in mknod more cleanly
authorJim Meyering <meyering@redhat.com>
Wed, 16 Apr 2008 13:28:33 +0000 (15:28 +0200)
committerJim Meyering <meyering@redhat.com>
Wed, 16 Apr 2008 13:28:33 +0000 (15:28 +0200)
* tests/mkdir/selinux: Undo most of previous change,
bc22dbbf844f31ddaf2e68b167d0128a985d73ab, and instead
invoke the command via "nice".  Using "exec" should be
enough, but isn't with OpenBSD's PD KSH v5.2.14 99/07/13.2.
Eric Blake suggested using nice.

tests/mkdir/selinux

index 4363275..45c2399 100755 (executable)
@@ -34,16 +34,12 @@ fi
 c=invalid-selinux-context
 msg="failed to set default file creation context to \`$c':"
 
-# In OpenBSD's /bin/sh, mknod is a shell built-in.
-# In that case, just skip the mknod test.
-( mknod --version 2>&1 ) | grep 'GNU coreutils' \
-    && mknod='mknod b p' \
-    || mknod='mkdir dir'
-
 # Test each of mkdir, mknod, mkfifo with "-Z invalid-context".
 
-for cmd_w_arg in 'mkdir dir' "$mknod" 'mkfifo f'; do
-  $cmd_w_arg -Z $c 2> out && fail=1
+for cmd_w_arg in 'mkdir dir' 'mknod b p' 'mkfifo f'; do
+  # In OpenBSD's /bin/sh, mknod is a shell built-in.
+  # Running via "nice" ensures we run our program and not the built-in.
+  nice -- $cmd_w_arg -Z $c 2> out && fail=1
   set $cmd_w_arg; cmd=$1
   echo "$cmd: $msg" > exp || fail=1