|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
require 5.003; |
|
|
use strict; |
|
|
|
|
|
|
|
|
@ENV{qw(LANGUAGE LANG LC_ALL)} = ('C') x 3; |
|
|
|
|
|
my %exit_status = |
|
|
( |
|
|
ls => 2, |
|
|
dir => 2, |
|
|
vdir => 2, |
|
|
test => 2, |
|
|
chroot => 125, |
|
|
echo => 0, |
|
|
env => 125, |
|
|
expr => 0, |
|
|
nice => 125, |
|
|
nohup => 125, |
|
|
runcon => 125, |
|
|
sort => 2, |
|
|
stdbuf => 125, |
|
|
test => 0, |
|
|
timeout => 125, |
|
|
true => 0, |
|
|
tty => 2, |
|
|
printf => 0, |
|
|
printenv => 2, |
|
|
); |
|
|
|
|
|
my %expected_out = |
|
|
( |
|
|
echo => "-/\n", |
|
|
expr => "-/\n", |
|
|
printf => "-/", |
|
|
); |
|
|
|
|
|
my %expected_err = |
|
|
( |
|
|
false => '', |
|
|
stty => '', |
|
|
); |
|
|
|
|
|
my $fail = 0; |
|
|
my @built_programs = split ' ', $ENV{built_programs}; |
|
|
foreach my $prog (@built_programs) |
|
|
{ |
|
|
$prog eq '[' |
|
|
and next; |
|
|
|
|
|
my $try = "Try '$prog --help' for more information.\n"; |
|
|
my $x = $exit_status{$prog}; |
|
|
defined $x |
|
|
or $x = 1; |
|
|
|
|
|
my $out = $expected_out{$prog}; |
|
|
defined $out |
|
|
or $out = ''; |
|
|
|
|
|
my $err = $expected_err{$prog}; |
|
|
defined $err |
|
|
or $err = $x == 0 ? '' : "$prog: invalid option -- /\n$try"; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
my $err_subst = "s,'/',/,; s,unknown,invalid,"; |
|
|
|
|
|
|
|
|
|
|
|
$prog eq 'stty' |
|
|
and $err_subst = 's/(.|\n)*//ms'; |
|
|
|
|
|
my @Tests = (["$prog-invalid-opt", '-/', {OUT=>$out}, |
|
|
{ERR_SUBST => $err_subst}, |
|
|
{EXIT=>$x}, {ERR=>$err}]); |
|
|
|
|
|
my $save_temps = $ENV{DEBUG}; |
|
|
my $verbose = $ENV{VERBOSE}; |
|
|
|
|
|
my $f = run_tests ($prog, \$prog, \@Tests, $save_temps, $verbose); |
|
|
$f |
|
|
and $fail = 1; |
|
|
} |
|
|
|
|
|
exit $fail; |
|
|
|