2
# Verify that chmod works correctly with odd option combinations.
4
# Copyright (C) 2004-2011 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=.}/init.sh"; path_prepend_ ../src
23
# Each line in this list is a set of arguments, followed by :,
24
# followed by the set of files it will attempt to chmod,
25
# or empty if the usage is erroneous.
26
# Many of these test cases are due to Glenn Fowler.
27
# These test cases assume GNU behavior for "options" like -w.
57
all_files=`echo "$cases" | sed 's/.*://'|sort -u`
62
for case in $cases; do
64
args=`expr "$case" : ' *\(.*[^ ]\) *:'`
65
files=`expr "$case" : '.*: *\(.*\)'`
69
touch -- $all_files || framework_failure_
70
chmod $args 2>/dev/null && fail=1
73
touch -- $files || framework_failure_
75
for file in $files; do
76
# Test for misparsing args by creating all $files but $file.
77
# chmod has a bug if it succeeds even though $file is absent.
78
rm -f -- $all_files && touch -- $files && rm -- $file \
80
chmod $args 2>/dev/null && fail=1