* src/dircolors.hin: Add .flv. Move .svgz to "image formats".
[coreutils.git] / tests / rm / unreadable
blob4fb40235c3146b5687071ea38dc926bd6c8c0535
1 #!/bin/sh
2 # Test "rm" and unreadable directories.
4 # Copyright (C) 1998, 2003, 2005-2007 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=.}
20 . $srcdir/../require-perl
22 me=`echo $0|sed 's,.*/,,'`
23 exec $PERL -w -I$srcdir/.. -MCoreutils -M"CuTmpdir qw($me)" -- - << \EOF
24 require 5.003;
25 use strict;
27 (my $program_name = $0) =~ s|.*/||;
29 # Turn off localisation of executable's ouput.
30 @ENV{qw(LANGUAGE LANG LC_ALL)} = ('C') x 3;
32 my $d = "dir-$$";
33 my $mkdir = {PRE => sub {mkdir $d,0100 or die "$d: $!\n"}};
34 my $prog = 'rm';
35 my $uid = $<;
37 my @Tests =
39 # test-name options input expected-output
41 # Removing an empty, unwritable directory succeeds.
42 ['unreadable-1', '-rf', $d, {EXIT => 0}, $mkdir],
44 ['unreadable-2', '-rf', $d,
45 {EXIT => $uid == 0 ? 0 : 1},
46 {ERR => $uid == 0 ? ''
47 : "$prog: cannot remove \`$d': Permission denied\n"},
48 {PRE => sub { (mkdir $d,0700 and mkdir "$d/x",0700 and chmod 0100,$d)
49 or die "$d: $!\n"}} ],
52 my $save_temps = $ENV{SAVE_TEMPS};
53 my $verbose = $ENV{VERBOSE};
55 my $fail = run_tests ($program_name, $prog, \@Tests, $save_temps, $verbose);
56 exit $fail;
57 EOF