1#!/bin/sh 2# verify that mkdir honors special bits in MODE 3 4# Copyright (C) 2000-2023 Free Software Foundation, Inc. 5 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. 10 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. 15 16# You should have received a copy of the GNU General Public License 17# along with this program. If not, see <https://www.gnu.org/licenses/>. 18 19. "${srcdir=.}/tests/init.sh"; path_prepend_ ./src 20print_ver_ mkdir 21 22set_mode_string=u=rwx,g=rx,o=w,-s,+t 23output_mode_string=drwxr-x-wT 24 25tmp=t 26mkdir -m$set_mode_string $tmp || fail=1 27 28test -d $tmp || fail=1 29mode=$(ls -ld $tmp|cut -b-10) 30case "$mode" in 31 $output_mode_string) ;; 32 *) fail=1 ;; 33esac 34 35rmdir $tmp || fail=1 36tmp2=$tmp/sub 37 38# This should fail. 39returns_ 1 mkdir -m$set_mode_string $tmp2 2> /dev/null || fail=1 40 41# Now test the --parents option. 42mkdir --parents -m$set_mode_string $tmp2 || fail=1 43 44test -d $tmp2 || fail=1 45mode=$(ls -ld $tmp2|cut -b-10) 46case "$mode" in 47 $output_mode_string) ;; 48 *) fail=1 ;; 49esac 50 51Exit $fail 52