diff options
Diffstat (limited to 'tests/Coreutils.pm')
-rw-r--r-- | tests/Coreutils.pm | 23 |
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}); } |