blob: 21cee4e867d56420022c37851e82187b9d6b4fc5 [file] [log] [blame]
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 ($_ =~ /<a name=\"(\w+\.c)\">/) {
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;