2
# make sure mkdir's -p options works properly
4
# Copyright (C) 2000-2012 Free Software Foundation, Inc.
6
# This program is free software: you can redistribute it and/or modify
7
# it under the terms of the GNU General Public License as published by
8
# the Free Software Foundation, either version 3 of the License, or
9
# (at your option) any later version.
11
# This program is distributed in the hope that it will be useful,
12
# but WITHOUT ANY WARRANTY; without even the implied warranty of
13
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
# GNU General Public License for more details.
16
# You should have received a copy of the GNU General Public License
17
# along with this program. If not, see <http://www.gnu.org/licenses/>.
19
. "${srcdir=.}/tests/init.sh"; path_prepend_ ./src
23
mkdir -m 700 e-dir || framework_failure_
26
# Make sure 'mkdir -p existing-dir' succeeds
27
# and that 'mkdir existing-dir' fails.
28
mkdir -p e-dir || fail=1
29
mkdir e-dir > /dev/null 2>&1 && fail=1
31
# Create an existing directory.
34
mode_arg=$(rwx_to_mode_ $mode_str)
35
mkdir -m $mode_arg a || fail=1
37
# this 'mkdir -p ...' shouldn't change perms of existing dir 'a'.
39
d_mode_arg=$(rwx_to_mode_ $d_mode_str)
40
mkdir -p -m $d_mode_arg a/b/c/d
42
# Make sure the permissions of 'a' haven't been changed.
43
p=$(ls -ld a|cut -b-10); case $p in $mode_str);; *) fail=1;; esac
44
# 'b's and 'c's should reflect the umask
45
p=$(ls -ld a/b|cut -b-10); case $p in drwx------);; *) fail=1;; esac
46
p=$(ls -ld a/b/c|cut -b-10); case $p in drwx------);; *) fail=1;; esac
48
# 'd's perms are determined by the -m argument.
49
p=$(ls -ld a/b/c/d|cut -b-10); case $p in $d_mode_str);; *) fail=1;; esac