stas 01/09/17 19:00:19 Added: t/directive perlrequire.t t/response/TestDirective perlrequire.pm Log: - add a PerlRequire test Revision Changes Path 1.1 modperl-2.0/t/directive/perlrequire.t Index: perlrequire.t =================================================================== # this test tests PerlRequire configuration directive ######################################################################## use strict; use warnings FATAL => 'all'; use Apache::Test; use Apache::TestUtil; use Apache::TestRequest (); my %checks = ( 'default' => 'PerlRequired by Parent', 'TestDirective::perlrequire' => 'PerlRequired by VirtualHost', ); plan tests => scalar keys %checks; for my $module (sort keys %checks) { Apache::TestRequest::module($module); my $config = Apache::Test::config(); my $hostport = Apache::TestRequest::hostport($config); print "connecting to $hostport\n"; ok t_cmp( $checks{$module}, $config->http_raw_get("/TestDirective::perlrequire", undef), "testing PerlRequire in $module", ); } 1.1 modperl-2.0/t/response/TestDirective/perlrequire.pm Index: perlrequire.pm =================================================================== package TestDirective::perlrequire; use strict; use warnings FATAL => 'all'; use Apache::Test (); use Apache::Const -compile => 'OK'; use File::Spec::Functions qw(catfile); sub handler { my $r = shift; $r->content_type('text/plain'); $r->puts($My::PerlRequireTest::MAGIC || ''); Apache::OK; } my %require_tests = ( main => 'PerlRequired by Parent', vh => 'PerlRequired by VirtualHost', ); sub APACHE_TEST_CONFIGURE { my ($class, $self) = @_; my $vars = $self->{vars}; my $target_dir = catfile $vars->{documentroot}, 'testdirective'; # create two different PerlRequireTest.pm packages to be loaded by # vh and main interpreters, on the fly before the tests start while (my($test, $magic) = each %require_tests) { my $content = <<EOF; package My::PerlRequireTest; \$My::PerlRequireTest::MAGIC = '$magic'; 1; EOF my $file = catfile $target_dir, $test, 'PerlRequireTest.pm'; $self->writefile($file, $content, 1); } } 1; __END__ PerlSwitches -Mlib=@documentroot@/testdirective/main PerlRequire "PerlRequireTest.pm" <VirtualHost TestDirective::perlrequire> # a new interpreter pool PerlOptions +Parent # use test system's @INC PerlSwitches -Mlib=@serverroot@ PerlRequire "conf/modperl_startup.pl" PerlSwitches -Mlib=@documentroot@/testdirective/vh PerlRequire "PerlRequireTest.pm" <Location /TestDirective::perlrequire> SetHandler modperl PerlResponseHandler TestDirective::perlrequire </Location> </VirtualHost>