my %Types = map {$_ => 1} @Types;
my %Zero_one_type = map {$_ => 1} qw (OUT ERR EXIT);
-my $count = 1;
+my $Global_count = 1;
-sub _create_file ($$$$)
+sub _create_file ($$$$$)
{
- my ($program_name, $test_name, $file_name, $data) = @_;
- my $file = "$test_name-$$.$count";
+ my ($program_name, $test_name, $type, $file_name, $data) = @_;
+ my $file;
if (defined $file_name)
{
$file = $file_name;
}
else
{
- $file = "$test_name-$$.$count";
- ++$count;
+ $file = "$test_name-$$.$Global_count";
+ ++$Global_count;
}
# The test spec gave a string.
# Write it to a temp file and return tempfile name.
+ #warn "writing $type `$data' to $file\n";
my $fh = new FileHandle "> $file";
die "$program_name: $file: $!\n" if ! $fh;
print $fh $data;
my $test_name = shift @$t;
my $expect = {};
+ $Global_count = 1;
my @args;
my $io_spec;
my %seen_type;
}
my $is_junk_file = (! defined $file_name);
- my $file = _create_file ($program_name, $test_name,
+ my $file = _create_file ($program_name, $test_name, $type,
$file_name, $contents);
- push @args, $file
- if $type eq 'IN';
+ if ($type eq 'IN')
+ {
+ push @args, $file
+ }
+ else
+ {
+ $expect->{$type} = $file;
+ }
if ($is_junk_file)
{
{
if (!exists $expect->{$eo})
{
- $expect->{$eo} = _create_file ($program_name, $test_name,
+ $expect->{$eo} = _create_file ($program_name, $test_name, $eo,
undef, '');
push @junk_files, $expect->{$eo};
}
# on stdout (or stderr).
# If the EXIT-keyed one is omitted, then expect the exit status to be zero.
-my $q_bell = {IN => {"q\a" => ''}}
+my $q_bell = {IN => {"q\a" => ''}};
my @Tests =
(
# test-name options input expected-output
);
my $save_temps = 0;
-my $verbose = 0;
+my $verbose = $ENV{VERBOSE};
my $prog = $ENV{LS} || 'ls';
my $fail = run_tests ($program_name, $prog, \@Tests, $save_temps, $verbose);