use strict; use 5.008001; use ExtUtils::MakeMaker; use Apache::TestMM; my $apache_tests_default = 'yes'; eval 'use Apache2'; if ($@) { $apache_tests_default = 'no'; } if (not prompt("Would you like me to run tests with your Apache 2.x?", $apache_tests_default) =~ /^y/i) { print "\tGood. We will only test the core RayApp.\n"; ExtUtils::MakeMaker::WriteEmptyMakefile( NAME => 'No-RayApp-Apache-Tests', ); return; } my $buildconfig; my ($apxs, $modules_lib, $mod_perl_lib); eval <<'EOF'; use Apache2::BuildConfig; $buildconfig = new Apache2::BuildConfig; EOF if (defined $buildconfig) { # use Data::Dumper; print Dumper $buildconfig; $apxs = $buildconfig->{MP_APXS}; $modules_lib = $buildconfig->{APXS_LIBEXECDIR}; $mod_perl_lib = $buildconfig->{MODPERL_AP_LIBEXECDIR}; } if (not defined $apxs or not -f $apxs or not -x $apxs) { $apxs = prompt "Please tell me where your apxs is:", $apxs; } if (not $apxs) { print "\tWe shall skip the tests, then.\n"; ExtUtils::MakeMaker::WriteEmptyMakefile( NAME => 'No-RayApp-Apache-Tests', ); return; } unshift @ARGV, '-apxs', $apxs; eval q! use Apache::TestMM qw( ); use Apache::Test 1.11; Apache::TestMM::filter_args(); Apache::TestMM::generate_script('t/TEST'); !; if ($@) { print "\tIt looks like you do not have all the modules needed\n\tto run Apache tests:\n$@\n"; ExtUtils::MakeMaker::WriteEmptyMakefile( NAME => 'No-RayApp-Apache-Tests', ); return; } print "\tGood. We will run tests using your Apache [$apxs]\n\twith mod_perl library in [$mod_perl_lib]\n"; symlink 'ray', 't/htdocs/ray1'; symlink 'ray', 't/htdocs/ray2'; sub MY::test { package MY; return Apache::TestMM->test(@_); } WriteMakefile( NAME => 'RayApp-Apache-Tests', test => { TESTS => 't/TEST', }, clean => { FILES => 't/TEST t/htdocs/ray1 t/htdocs/ray2 t/conf/apache_test_config.pm t/conf/extra.conf t/conf/httpd.conf t/logs t/htdocs/ray/changing.mpl', }, );