tests: Shut the shell up unless verbose

In rare cases, the shell we run test programs in may have complaints.
Shut those up unless testing verbosely.

Reviewed-by: Viktor Dukhovni <viktor@openssl.org>
This commit is contained in:
Richard Levitte 2016-06-05 23:01:24 +02:00
parent 35d2e3275f
commit 78e91586fb
2 changed files with 17 additions and 1 deletions

View File

@ -13,5 +13,4 @@ setup("test_abort");
plan tests => 1;
open STDERR, ">", "/dev/null";
is(run(test(["aborttest"])), 0, "Testing that abort is caught correctly");

View File

@ -353,6 +353,16 @@ sub run {
my $r = 0;
my $e = 0;
# 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;
if ($ENV{HARNESS_ACTIVE} && !$ENV{HARNESS_VERBOSE}) {
open STDOUT, ">", devnull();
open STDERR, ">", devnull();
}
# The dance we do with $? is the same dance the Unix shells appear to
# do. For example, a program that gets aborted (and therefore signals
# SIGABRT = 6) will appear to exit with the code 134. We mimic this
@ -366,6 +376,13 @@ sub run {
$r = $hooks{exit_checker}->($e);
}
if ($ENV{HARNESS_ACTIVE} && !$ENV{HARNESS_VERBOSE}) {
close STDOUT;
close STDERR;
}
*STDOUT = *save_STDOUT;
*STDERR = *save_STDERR;
print STDERR "$prefix$display_cmd => $e\n"
if !$ENV{HARNESS_ACTIVE} || $ENV{HARNESS_VERBOSE};