use strict; use warnings FATAL => 'all'; use Apache::Test; use Apache::TestRequest; ## ## mod_info quick test ## plan tests => 1, need_module 'info'; my $uri = '/server-info'; my $info = GET_BODY $uri; my $config = Apache::Test::config(); my $mods = $config->{modules}; my (@actual,@expected) = ((),()); ## extract module names from html ## foreach (split /\n/, $info) { if ($_ =~ //) { if ($1 eq 'util_ldap.c') { push(@actual,'mod_ldap.c'); } elsif ($1 eq 'mod_apreq2.c') { push(@actual,'mod_apreq.c'); } else { push(@actual, $1); } } } foreach (sort keys %$mods) { ($mods->{$_} && !$config->should_skip_module($_)) or next; if ($_ =~ /^mod_mpm_(eventopt|event|motorz|prefork|worker)\.c$/) { push(@expected,"$1.c"); } elsif ($_ eq 'mod_mpm_simple.c') { push(@expected,'simple_api.c'); # statically linked mod_ldap } elsif ($_ eq 'util_ldap.c') { push(@expected,'mod_ldap.c'); # statically linked mod_apreq2 } elsif ($_ eq 'mod_apreq2.c') { push(@expected,'mod_apreq.c'); } else { push(@expected,$_); } } @actual = sort @actual; @expected = sort @expected; ## verify all mods are there ## my $ok = 1; if (@actual == @expected) { for (my $i=1 ; $i<@expected ; $i++) { if ($expected[$i] ne $actual[$i]) { $ok = 0; print "comparing expected ->$expected[$i]<-\n"; print "to actual ->$actual[$i]<-\n"; print "actual:\n@actual\nexpect:\n@expected\n"; last; } } } else { $ok = 0; my $a = @actual; my $e = @expected; print "actual($a modules):\n@actual\nexpect($e modules):\n@expected\n"; } ok $ok;