summaryrefslogtreecommitdiff
path: root/tests/du/files0-from
diff options
context:
space:
mode:
authorJim Meyering <jim@meyering.net>2004-03-21 18:45:06 +0000
committerJim Meyering <jim@meyering.net>2004-03-21 18:45:06 +0000
commitc16e974f6412abf4b1e1c2ec7ab0742159693f08 (patch)
tree5c2a7d7ebc9530b28f69d3b45c95a32b9e3746c8 /tests/du/files0-from
parent0fdff6d99a9d1ba9fb8038b3750f1b15dcc1b49b (diff)
downloadcoreutils-c16e974f6412abf4b1e1c2ec7ab0742159693f08.tar.xz
New tests, for --files0-from-F option.
Diffstat (limited to 'tests/du/files0-from')
-rwxr-xr-xtests/du/files0-from74
1 files changed, 74 insertions, 0 deletions
diff --git a/tests/du/files0-from b/tests/du/files0-from
new file mode 100755
index 000000000..d9924a937
--- /dev/null
+++ b/tests/du/files0-from
@@ -0,0 +1,74 @@
+#!/bin/sh
+# -*- perl -*-
+# Exercise du's --files0-from option.
+
+: ${PERL=perl}
+: ${srcdir=.}
+
+$PERL -e 1 > /dev/null 2>&1 || {
+ echo 1>&2 "$0: configure didn't find a usable version of Perl," \
+ "so can't run this test"
+ exit 77
+}
+
+exec $PERL -w -I$srcdir/.. -MFetish -- - <<\EOF
+#/
+require 5.003;
+use strict;
+
+(my $program_name = $0) =~ s|.*/||;
+
+$ENV{PROG} = 'du';
+
+# Turn off localization of executable's ouput.
+@ENV{qw(LANGUAGE LANG LC_ALL)} = ('C') x 3;
+
+my @Tests =
+ (
+ # invalid extra command line argument
+ ['f-extra-arg', '--files0-from=- no-such', {IN=>"a"}, {EXIT=>1},
+ {ERR => "du: no-such: you may not specify command-line arguments "
+ . "with --files0-from\n"}
+ ],
+
+ # missing input file
+ ['missing', '--files0-from=missing', {EXIT=>1},
+ {ERR => "du: cannot open `missing' for reading: "
+ . "No such file or directory\n"}],
+
+ # empty input
+ ['empty', '--files0-from=-', {EXIT=>1},
+ {ERR => "du: no files specified in `-'\n"}],
+
+ # one NUL
+ ['nul-1', '--files0-from=-', '<', {IN=>"\0"}, {EXIT=>1},
+ {ERR => "du: no files specified in `-'\n"}],
+
+ # two NULs
+ ['nul-2', '--files0-from=-', '<', {IN=>"\0\0"}, {EXIT=>1},
+ {ERR => "du: no files specified in `-'\n"}],
+
+ # one file name, no NUL
+ ['1', '--files0-from=-', '<',
+ {IN=>{f=>"g"}}, {AUX=>{g=>"x".64*1024}}, {OUT=>"4\tg\n"} ],
+
+ # one file name, with NUL
+ ['1a', '--files0-from=-', '<',
+ {IN=>{f=>"g\0"}}, {AUX=>{g=>"x".64*1024}}, {OUT=>"4\tg\n"} ],
+
+ # two file names, no final NUL
+ ['2', '--files0-from=-', '<',
+ {IN=>{f=>"g\0g"}}, {AUX=>{g=>"x".64*1024}}, {OUT=>"4\tg\n4\tg\n"} ],
+
+ # two file names, with final NUL
+ ['2a', '--files0-from=-', '<',
+ {IN=>{f=>"g\0g\0"}}, {AUX=>{g=>"x".64*1024}}, {OUT=>"4\tg\n4\tg\n"} ],
+ );
+
+my $save_temps = $ENV{DEBUG};
+my $verbose = $ENV{VERBOSE};
+
+my $prog = $ENV{PROG} || die "$0: \$PROG not specified in environment\n";
+my $fail = run_tests ($program_name, $prog, \@Tests, $save_temps, $verbose);
+exit $fail;
+EOF