b6670ab08e7433d82789ea9bc5d9ff436da81fcb
[platform/upstream/coreutils.git] / tests / misc / mknod
1 #!/bin/sh
2 # Ensure that mknod, mkfifo, mkdir -m MODE work with a restrictive umask
3
4 if test "$VERBOSE" = yes; then
5   set -x
6   mknod --version
7 fi
8
9 pwd=`pwd`
10 t0=`echo "$0"|sed 's,.*/,,'`.tmp; tmp=$t0/$$
11 trap 'status=$?; cd $pwd; chmod -R u+rwx $t0; rm -rf $t0 && exit $status' 0
12 trap '(exit $?); exit $?' 1 2 13 15
13
14 framework_failure=0
15 mkdir -p $tmp || framework_failure=1
16 cd $tmp || framework_failure=1
17
18 if test $framework_failure = 1; then
19   echo "$0: failure in testing framework" 1>&2
20   (exit 1); exit 1
21 fi
22
23 fail=0
24
25 umask 777
26
27 mknod  -m 734 f1 p || fail=1
28 set _ `ls -dgo f1`; shift; mode=$1
29 test $mode = prwx-wxr-- || fail=1
30
31 mkfifo -m 734 f2   || fail=1
32 set _ `ls -dgo f2`; shift; mode=$1
33 test $mode = prwx-wxr-- || fail=1
34
35 mkdir -m 734 f3   || fail=1
36 set _ `ls -dgo f3`; shift; mode=$1
37 test $mode = drwx-wxr-- || test $mode = drwx-wsr-- || fail=1
38
39 (exit $fail); exit $fail