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 <levi...@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 <rs...@openssl.org>
    Reviewed-by: Matt Caswell <m...@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
--
openssl-dev mailing list
To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-dev

Reply via email to