diff options
author | Richard Levitte <levitte@openssl.org> | 2016-06-06 15:01:50 +0200 |
---|---|---|
committer | Richard Levitte <levitte@openssl.org> | 2016-06-06 15:51:35 +0200 |
commit | 81b538e51e34e258af96ebaf147c0059ef855829 (patch) | |
tree | 1fa77d4c5de38f2cdf11e92d2b1f4047ed0a8654 /test | |
parent | ec772a817afc0f788c38006f623204a7d76221ec (diff) |
tests: fix the shutting up of the shell
If we're going to redirect STDERR and STDOUT, it's better to do it by
the book. This fix is a straight copy of examples in the perlfunc
manual.
Reviewed-by: Matt Caswell <matt@openssl.org>
Diffstat (limited to 'test')
-rw-r--r-- | test/testlib/OpenSSL/Test.pm | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/test/testlib/OpenSSL/Test.pm b/test/testlib/OpenSSL/Test.pm index 1e9730bcdc..2cfb22a653 100644 --- a/test/testlib/OpenSSL/Test.pm +++ b/test/testlib/OpenSSL/Test.pm @@ -356,9 +356,11 @@ sub run { # In non-verbose, we want to shut up the command interpreter, in case # it has something to complain about. On VMS, it might complain both # on stdout and stderr - *save_STDOUT = *STDOUT; - *save_STDERR = *STDERR; + my $save_STDOUT; + my $save_STDERR; if ($ENV{HARNESS_ACTIVE} && !$ENV{HARNESS_VERBOSE}) { + open $save_STDOUT, '>&', \*STDOUT or die "Can't dup STDOUT: $!"; + open $save_STDERR, '>&', \*STDERR or die "Can't dup STDERR: $!"; open STDOUT, ">", devnull(); open STDERR, ">", devnull(); } @@ -379,9 +381,9 @@ sub run { if ($ENV{HARNESS_ACTIVE} && !$ENV{HARNESS_VERBOSE}) { close STDOUT; close STDERR; + open STDOUT, '>&', $save_STDOUT or die "Can't restore STDOUT: $!"; + open STDERR, '>&', $save_STDERR or die "Can't restore STDERR: $!"; } - *STDOUT = *save_STDOUT; - *STDERR = *save_STDERR; print STDERR "$prefix$display_cmd => $e\n" if !$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE}; |