2 # ad-hoc tests of chgrp with -R and -H or -L and symlinks
4 # Copyright (C) 2000, 2003, 2004, 2005, 2006 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 2 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, write to the Free Software
18 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
21 if test "$VERBOSE" = yes; then
26 . $srcdir/../group-names
30 trap 'status=$?; cd "$pwd" && rm -rf $tmp && exit $status' 0
31 trap '(exit $?); exit' 1 2 13 15
34 mkdir $tmp || framework_failure=1
35 cd $tmp || framework_failure=1
37 if test $framework_failure = 1; then
38 echo 'failure in testing framework' 1>&2
48 # chgrp -R should not traverse a symlink to a directory.
52 chgrp -R $g1 e/ee || fail=1
53 # This should not should change the group of e/ee
55 set _ `ls -ln e/ee`; g=$5; test "$g" = $g1 || fail=1
56 # This must change the group of e/ee, since -L makes
57 # chgrp traverse the symlink from d/s into e.
59 set _ `ls -ln e/ee`; g=$5; test "$g" = $g2 || fail=1
61 # This must *not* change the group of e/ee
63 set _ `ls -ln e/ee`; g=$5; test "$g" = $g2 || fail=1
67 # This shouldn't change the group of e/ee either.
68 chgrp -H -R $g1 link || fail=1
69 set _ `ls -ln e/ee`; g=$5; test "$g" = $g2 || fail=1
70 # But it *should* change d/dd.
71 set _ `ls -ln d/dd`; g=$5; test "$g" = $g1 || fail=1
73 (exit $fail); exit $fail