Apache-Test

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN


Inherit config via IncludeOptional as well as Include. [jorton]

Increase size of MinSpare, MaxSpare and MaxClients to improve httpd test
framework runs with worker and preform MPMs. [rjung]

Changed the openssl version detection to work with other *SSL libraries.
[icing]

Switch test framework from using Net::SSL for
raw TLS sockets to IO::Socket::SSL. [rjung]

Fix mod_ssl tests under OpenSSL 1.1.1 / TLSv1.3. [jorton]

Add cwd to generated lib path in TEST script since Perl >=5.26 don't
do that any more. [jorton]

Override loglevel to trace8 if running in 2.4. [covener]

Allow an empty PREFIX. [sf]

Changes  view on Meta::CPAN

Remove use of Nullsv as per modperl commit 1362399. [Steve Hay]

have Apache::TestConfigPerl::configure_inc set up @INC to include
../blib/lib and ../blib/arch if they exist. The bundled Apache::Reload
may fail to load Apache2::Const & co otherwise when testing.
[Torsten Foertsch]

=item 1.37 January 29, 2012

Apache::TestRequest: improve compatibility for SSL requests with LWP 6 and
IO::Socket::SSL, in particular [Kaspar Brand]

As of httpd revision 1053230 (version 2.3.11) the NameVirtualHost directive
became superfluous and a warning is issued when it is met. So, Apache::Test
now wraps NameVirtualHost directives in <IfVersion> blocks.
[Kaspar Brand]

Add comments about the source files of auto configurated tests to
the generated httpd.conf and improve indentation a bit. [Torsten Foertsch]

Run t/TEST tests by default in alphabetical order and

lib/Apache/Test.pm  view on Meta::CPAN

    }
    else {
        push @SkipReasons,
           "LWP version 5.60+ required for HTTP/1.1 support";
        return 0;
    }
}

sub need_ssl {
    my $vars = vars();
    need_module([$vars->{ssl_module_name}, 'IO::Socket::SSL']);
}

sub need_lwp {
    require Apache::TestRequest;
    if (Apache::TestRequest::has_lwp()) {
        return 1;
    }
    else {
        push @SkipReasons, "libwww-perl is not installed";
        return 0;

lib/Apache/TestRequest.pm  view on Meta::CPAN

sub vhost_socket {
    my $module = shift;
    local $Apache::TestRequest::Module = $module if $module;

    my $hostport = hostport(Apache::Test::config());

    my($host, $port) = split ':', $hostport;
    my(%args) = (PeerAddr => $host, PeerPort => $port);

    if ($module and ($module =~ /ssl/ || $module eq 'h2')) {
        require IO::Socket::SSL;
        # Add all conn_opts to args
        map {$args{$_} = $conn_opts->{$_}} keys %{$conn_opts};
        return IO::Socket::SSL->new(%args, Timeout => UA_TIMEOUT);
    }
    else {
        require IO::Socket;
        return IO::Socket::INET->new(%args);
    }
}

#IO::Socket::SSL::getline does not correctly handle OpenSSL *_WANT_*.
#Could care less about performance here, just need a getline()
#that returns the same results with or without ssl.
#Inspired from Net::SSLeay::ssl_read_all().
my %getline = (
    'IO::Socket::SSL' => sub {
        my $self = shift;
        # _get_ssl_object in IO::Socket::SSL only meant for internal use!
        # But we need to compensate for unsufficient getline impl there.
        my $ssl = $self->_get_ssl_object;
        my ($got, $rv, $errs);
        my $reply = '';
    
        while (1) {
            ($got, $rv) = Net::SSLeay::read($ssl, 1);
            if (! defined $got) {
                my $err = Net::SSLeay::get_error($ssl, $rv);
                if ($err != Net::SSLeay::ERROR_WANT_READ() and

lib/Apache/TestSSLCA.pm  view on Meta::CPAN

my $sslproto = "all";

eval { require Net::SSLeay; };
if (Apache::Test::normalize_vstring($version) >= 
    Apache::Test::normalize_vstring("1.1.1")
    && !defined(&Net::SSLeay::CTX_set_post_handshake_auth)) {
    # OpenSSL 1.1.1 disables PHA by default client-side in TLSv1.3 but
    # most clients are not updated to enable it (at time of writing).
    # Many mod_ssl tests require working PHA, so disable v1.3 unless
    # using an updated Net::SSLeay. This is strictly insufficient
    # since an updated IO::Socket::SSL is also needed; to be
    # continued.  Ref: https://github.com/openssl/openssl/issues/6933
    $sslproto = "all -TLSv1.3";
}

my $ca_dn = {
    asf => {
        C  => 'US',
        ST => 'California',
        L  => 'San Francisco',
        O  => 'ASF',



( run in 0.545 second using v1.01-cache-2.11-cpan-4d50c553e7e )