Net-SSLeay
view release on metacpan or search on metacpan
inc/Test/Net/SSLeay.pm view on Meta::CPAN
priority => 2,
},
'SSLv2' => {
constant => \&Net::SSLeay::SSLv2_method,
constant_type => 'method',
priority => 1,
},
);
my ( $test_no_warnings, $test_no_warnings_name, @warnings );
END {
_test_no_warnings() if $test_no_warnings;
}
sub _all {
my ( $sub, @list ) = @_;
for (@list) {
$sub->() or return 0;
}
return 1;
}
sub _diag {
my (%args) = @_;
$tester->diag( ' ' x 9, 'got: ', $args{got} );
$tester->diag( ' ' x 4, 'expected: ', $args{expected} );
}
sub _libssl_fatal {
my ($context) = @_;
croak "$context: "
. Net::SSLeay::ERR_error_string( Net::SSLeay::ERR_get_error() );
}
sub _load_net_ssleay {
eval { require Net::SSLeay; 1; } or croak $EVAL_ERROR;
return 1;
}
sub _test_no_warnings {
my $got_str = join q{, }, map { qq{'$_'} } @warnings;
my $got_type = @warnings == 1 ? 'warning' : 'warnings';
$tester->ok( @warnings == 0, $test_no_warnings_name )
or _diag(
got => "$got_type $got_str",
expected => 'no warnings',
);
}
sub import {
my ( $class, @imports ) = @_;
# Enable strict and warnings in the caller
strict->import;
warnings->import;
# Import common modules into the caller's namespace
my $caller = caller;
for (qw(Test::More)) {
eval "package $caller; use $_; 1;" or croak $EVAL_ERROR;
}
# Import requested Test::Net::SSLeay symbols into the caller's namespace
__PACKAGE__->export_to_level( 1, $class, @imports );
return 1;
}
sub can_fork {
return 1 if can_really_fork();
# Some platforms provide fork emulation using ithreads
return 1 if $Config{d_pseudofork};
# d_pseudofork was added in Perl 5.10.0 - this is an approximation for
# older Perls
if ( ( $OSNAME eq 'Win32' or $OSNAME eq 'NetWare' )
and $Config{useithreads}
and $Config{ccflags} =~ /-DPERL_IMPLICIT_SYS/ )
{
return 1;
}
return can_thread();
}
sub can_really_fork {
return 1 if $Config{d_fork};
return 0;
}
sub can_thread {
return 0 if not $Config{useithreads};
# Threads are broken in Perl 5.10.0 when compiled with GCC 4.8 or above
# (see GH #175)
if ( $PERL_VERSION == 5.010000
and $Config{ccname} eq 'gcc'
and defined $Config{gccversion}
# gccversion is sometimes defined for non-GCC compilers (see GH-350);
# compilers that are truly GCC are identified with a version number in
# gccversion
and $Config{gccversion} =~ /^\d+\.\d+/ )
{
my ( $gcc_major, $gcc_minor ) = split /[.\s]+/, $Config{gccversion};
return 0
if ( $gcc_major > 4 or ( $gcc_major == 4 and $gcc_minor >= 8 ) );
}
# Devel::Cover doesn't (currently) work with threads
return 0 if $INC{'Devel/Cover.pm'};
( run in 2.792 seconds using v1.01-cache-2.11-cpan-4e7a2411597 )