2 # Verify that mkdir's `-m MODE' option works properly
3 # with various umask settings.
5 if test "$VERBOSE" = yes; then
11 t0
=`echo "$0"|sed 's,.*/,,'`.tmp
; tmp
=$t0/$$
12 trap 'status=$?; cd $pwd; chmod -R u+rwx $t0; rm -rf $t0 && exit $status' 0
13 trap '(exit $?); exit' 1 2 13 15
17 # Record absolute path of srcdir and cd back to current dir.
18 cd $srcdir || framework_failure
=1
20 cd $pwd || framework_failure
=1
22 mkdir
-p $tmp || framework_failure
=1
23 cd $tmp || framework_failure
=1
25 if test $framework_failure = 1; then
26 echo 'failure in testing framework'
30 .
$abs_srcdir/..
/setgid-check
35 # umask -m option resulting perm resulting perm
37 000 : empty : drwxrwxrwx : drwxrwxrwx :
38 000 : -m 016 : drwxrwxrwx : d-----xrw- :
39 077 : empty : drwx------ : drwx------ :
40 050 : empty : drwx-w-rwx : drwx-w-rwx :
41 050 : -m 312 : drwx-w-rwx : d-wx--x-w- :
42 160 : empty : drwx--xrwx : drw---xrwx :
43 160 : -m 743 : drwx--xrwx : drwxr---wx :
47 test _
$p = _empty
&& p
=
51 set - `(echo "$tests"|tr -d '\012'; echo)|sed 's/^ *//;s/ *:/:/g;s/: */:/g'`
55 test "$VERBOSE" = yes && set -x
56 umask=$1 mode
=$2 parent_perms
=$3 sub_perms
=$4
57 test "_$mode" = _empty
&& mode
=
58 test $sub_perms = last
&& break
59 # echo p=$p umask=$1 mode=$2 parent_perms=$3 sub_perms=$4
60 shift; shift; shift; shift
63 # If we're not using -p, then create the parent manually,
64 # and adjust expectations accordingly.
67 mkdir
-m =,u
=rwx parent || fail
=1
68 parent_perms
=drwx------
71 mkdir
$p $mode parent
/sub || fail
=1
73 perms
=`ls -ld parent | sed 's/ .*//'`
74 test "$parent_perms" = "$perms" \
75 ||
{ fail
=1; echo parent
: expected
$parent_perms, got
$perms; }
77 perms
=`ls -ld parent/sub | sed 's/ .*//'`
78 test "$sub_perms" = "$perms" \
79 ||
{ fail
=1; echo parent
/sub
: expected
$sub_perms, got
$perms; }
82 rm -rf parent || fail
=1