summaryrefslogtreecommitdiff
path: root/tests/Coreutils.pm
diff options
context:
space:
mode:
Diffstat (limited to 'tests/Coreutils.pm')
-rw-r--r--tests/Coreutils.pm23
1 files changed, 20 insertions, 3 deletions
diff --git a/tests/Coreutils.pm b/tests/Coreutils.pm
index 74b5fbdbf..e506cc810 100644
--- a/tests/Coreutils.pm
+++ b/tests/Coreutils.pm
@@ -1,8 +1,7 @@
package Coreutils;
# This is a testing framework.
-# Copyright (C) 1998, 2000, 2001, 2002, 2004, 2005, 2006 Free Software
-# Foundation, Inc.
+# Copyright (C) 1998, 2000-2002, 2004-2007 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -478,6 +477,23 @@ sub run_tests ($$$$$)
goto cleanup;
}
+ my %actual_data;
+ # Record actual stdout and stderr contents, if POST may need them.
+ if ($expect->{POST})
+ {
+ foreach my $eo (qw (OUT ERR))
+ {
+ my $out_file = $actual{$eo};
+ open IN, $out_file
+ or (warn "$program_name: cannot open $out_file for reading: $!\n"),
+ $fail = 1, next;
+ $actual_data{$eo} = <IN>;
+ close IN
+ or (warn "$program_name: failed to read $out_file: $!\n"),
+ $fail = 1;
+ }
+ }
+
foreach my $eo (qw (OUT ERR))
{
my $subst_expr = $expect->{RESULT_SUBST}->{$eo};
@@ -525,7 +541,8 @@ sub run_tests ($$$$$)
}
cleanup:
- &{$expect->{POST}} if $expect->{POST};
+ $expect->{POST}
+ and &{$expect->{POST}} ($actual_data{OUT}, $actual_data{ERR});
}