diff options
author | Jim Meyering <jim@meyering.net> | 2000-11-06 21:52:12 +0000 |
---|---|---|
committer | Jim Meyering <jim@meyering.net> | 2000-11-06 21:52:12 +0000 |
commit | 0aa5a0d85e417e5b1f65b2a00c1ee9803378e807 (patch) | |
tree | 7cf0b4447650c8e26143a79f49eacff13be9dd8f /tests | |
parent | c49c23e60819642bbd6c86ead6d90482fc824bc4 (diff) | |
download | coreutils-0aa5a0d85e417e5b1f65b2a00c1ee9803378e807.tar.xz |
*** empty log message ***
Diffstat (limited to 'tests')
-rwxr-xr-x | tests/mkdir/parents | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/tests/mkdir/parents b/tests/mkdir/parents new file mode 100755 index 000000000..c40e3deea --- /dev/null +++ b/tests/mkdir/parents @@ -0,0 +1,55 @@ +#!/bin/sh +# make sure mkdir's -p options works properly + +if test "$VERBOSE" = yes; then + set -x + mkdir --version +fi + +pwd=`pwd` +tmp=parents-$$ +trap 'status=$?; cd $pwd; rm -rf $tmp && exit $status' 0 +trap '(exit $?); exit' 1 2 13 15 + +framework_failure=0 + +# Record absolute path of srcdir. +cd $srcdir || framework_failure=1 +abs_srcdir=`pwd` + +cd $pwd || framework_failure=1 +mkdir $tmp || framework_failure=1 +cd $tmp || framework_failure=1 +mkdir e-dir || framework_failure=1 + +if test $framework_failure = 1; then + echo 'failure in testing framework' + (exit 1); exit +fi + +fail=0 + +# Make sure `mkdir -p existing-dir' succeeds +# and that `mkdir existing-dir' fails. +mkdir -p e-dir || fail=1 +mkdir e-dir > /dev/null 2>&1 && fail=1 + +umask 077 +mode_str=drwxr-x-wx +mode_arg=`$abs_srcdir/../rwx-to-mode $mode_str` +mkdir -m $mode_arg a || fail=1 + +d_mode_str=drwx-w--wx +d_mode_arg=`$abs_srcdir/../rwx-to-mode $d_mode_str` +mkdir -p -m $d_mode_arg a/b/c/d + +# Make sure the permissions of `a' haven't been changed. +p=`ls -ld a|sed 's/ .*//'`; case $p in $mode_str);; *) fail=1;; esac +# `b's and `c's should reflect the umask +p=`ls -ld a/b|sed 's/ .*//'`; case $p in drwx------);; *) fail=1;; esac +p=`ls -ld a/b/c|sed 's/ .*//'`; case $p in drwx------);; *) fail=1;; esac + +# `d's perms are determined by the -m argument. +p=`ls -ld a/b/c/d|sed 's/ .*//'`; case $p in $d_mode_str);; *) fail=1;; esac + +(exit $fail); exit |