[openssl-dev] Fix use of "can_load" in run_tests.pl (was GH PR #3424)
Rainer Jung
rainer.jung at kippdata.de
Thu May 25 19:22:17 UTC 2017
The below change doesn't work, because "can_load" must be used differently.
When running on SLES 11 which contains perl 1.10.0 (and thus no
TAP::Harness module), run_tests.pl gives:
Can't locate object method "new" via package "TAP::Harness" (perhaps you
forgot to load "TAP::Harness"?) at .././test/run_tests.pl line 64.
Please see below for a patch.
Am 10.05.2017 um 17:05 schrieb Richard Levitte:
> The branch master has been updated
> via 76e0d0b21cc4e8a879d54f4d78a392826dadb1d1 (commit)
> from 03d8e9cb43da5c524e5890a5a51e2c77f1fbd789 (commit)
>
>
> - Log -----------------------------------------------------------------
> commit 76e0d0b21cc4e8a879d54f4d78a392826dadb1d1
> Author: Richard Levitte <levitte at openssl.org>
> Date: Wed May 10 12:58:36 2017 +0200
>
> Prefer TAP::Harness over Test::Harness
>
> TAP:Harness came along in perl 5.10.1, and since we claim to support
> perl 5.10.0 in configuration and testing, we can only load it
> conditionally.
>
> The main reason to use TAP::Harness rather than Test::Harness is its
> capability to merge stdout and stderr output from the test recipes,
> which Test::Harness can't. The merge gives much more comprehensible
> output when testing verbosely.
>
> Reviewed-by: Rich Salz <rsalz at openssl.org>
> Reviewed-by: Matt Caswell <matt at openssl.org>
> (Merged from https://github.com/openssl/openssl/pull/3424)
>
> -----------------------------------------------------------------------
>
> Summary of changes:
> test/run_tests.pl | 58 ++++++++++++++++++++++++++++++++++++++++++++-----------
> 1 file changed, 47 insertions(+), 11 deletions(-)
>
> diff --git a/test/run_tests.pl b/test/run_tests.pl
> index 9c5ade1..aa1dba0 100644
> --- a/test/run_tests.pl
> +++ b/test/run_tests.pl
> @@ -17,7 +17,10 @@ BEGIN {
> use File::Spec::Functions qw/catdir catfile curdir abs2rel rel2abs/;
> use File::Basename;
> use if $^O ne "VMS", 'File::Glob' => qw/glob/;
> -use Test::Harness qw/runtests $switches/;
> +use Module::Load::Conditional qw(can_load);
> +
> +my $TAP_Harness = can_load({modules => [ 'TAP::Harness' ]})
> + ? 'TAP::Harness' : 'OpenSSL::TAP::Harness';
The following patch fixes the can_load use:
--- test/run_tests.pl 2017-05-25 16:21:00.000000000 +0200
+++ test/run_tests.pl 2017-05-25 21:07:20.066149000 +0200
@@ -19,7 +19,7 @@
use if $^O ne "VMS", 'File::Glob' => qw/glob/;
use Module::Load::Conditional qw(can_load);
-my $TAP_Harness = can_load({modules => [ 'TAP::Harness' ]})
+my $TAP_Harness = can_load(modules => { 'TAP::Harness' => undef })
? 'TAP::Harness' : 'OpenSSL::TAP::Harness';
my $srctop = $ENV{SRCTOP} || $ENV{TOP};
It should be applied to master and the 1.1.0 branch.
Should I open a GH issue or pull request for that trivial change?
Thanks a bunch,
Rainer
More information about the openssl-dev
mailing list