From: Richard Levitte Date: Sun, 5 Jun 2016 21:01:24 +0000 (+0200) Subject: tests: Shut the shell up unless verbose X-Git-Tag: OpenSSL_1_1_0-pre6~543 X-Git-Url: https://git.openssl.org/?p=openssl.git;a=commitdiff_plain;h=78e91586fbeb2c3a54d2a8a28dadeeb1eb0f57a8 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 --- diff --git a/test/recipes/01-test_abort.t b/test/recipes/01-test_abort.t index a6a7f3151a..2f121e25bf 100644 --- a/test/recipes/01-test_abort.t +++ b/test/recipes/01-test_abort.t @@ -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"); diff --git a/test/testlib/OpenSSL/Test.pm b/test/testlib/OpenSSL/Test.pm index 8a7d0a0ac9..1e9730bcdc 100644 --- a/test/testlib/OpenSSL/Test.pm +++ b/test/testlib/OpenSSL/Test.pm @@ -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};