From Code to Community: Sponsoring The Perl and Raku Conference 2025 Learn more

use strict;
use warnings FATAL => 'all';
use Apache::TestRequest qw(GET_BODY_ASSERT);
my $module = 'TestModperl::setupenv';
my $url = Apache::TestRequest::module2url($module);
t_debug("connecting to $url");
my @locations = ("${url}_mpdefault",
"${url}_mpsetup",
"${url}_mpdefault", # make sure %ENV is cleared
"${url}_mpvoid",
"${url}_mpsetupvoid",
"${url}_psdefault",
"${url}_psnosetup",
"${url}_psvoid",
"${url}_psnosetupvoid");
# plan the tests from a handler so we can run
# tests from within handlers across multiple requests
#
# this requires keepalives and a per-connection interpreter
# to make certain we can plan in one request and test in another
# which requires LWP
unless (need_lwp()) {
plan tests => 63, 0;
}
Apache::TestRequest::user_agent(keep_alive => 1);
print GET_BODY_ASSERT join '?', $url, scalar @locations;
# this tests for when %ENV is populated with CGI variables
# as well as the contents of the subprocess_env table
#
# see setupenv.pm for a full description of the tests
foreach my $location (@locations) {
t_debug("trying $location");
print GET_BODY_ASSERT $location;
}