The mod_info test (t/modules/info.t) asks Apache::Test::config() for a list of modules. It then expects each of those modules to be reported by mod_info. But some of those modules are not actually loaded because of modules which are skipped by TestConfigParse.pm
#XXX mod_jk requires JkWorkerFile or JkWorker to be configured #skip it for now, tomcat has its own test suite anyhow. #XXX: mod_casp2.so requires other settings in addition to LoadModule #XXX: mod_bwshare.so blocks fast requests that tests are doing my @autoconfig_skip_module = qw(mod_jk.c mod_casp2.c mod_bwshare.c); If mod_jk is in the configuration being tested, the mod_info test will fail because it expects mod_jk to be reported by mod_info, even though the LoadModule for mod_jk is skipped. One possible fix is to consult should_skip_module() to see if it was skipped from the test httpd.conf file too: Index: t/modules/info.t =================================================================== --- t/modules/info.t (revision 825306) +++ t/modules/info.t (working copy) @@ -28,7 +28,7 @@ } foreach (sort keys %$mods) { - push(@expected,$_) if $mods->{$_}; + push(@expected,$_) if $mods->{$_} && !$config->should_skip_module($_); } @actual = sort @actual; @expected = sort @expected; Another possible fix is to omit skipped modules from the module list: Index: Apache-Test/lib/Apache/TestConfigParse.pm =================================================================== --- Apache-Test/lib/Apache/TestConfigParse.pm (revision 822728) +++ Apache-Test/lib/Apache/TestConfigParse.pm (working copy) @@ -224,15 +224,15 @@ $name = $modname_alias{$name} if $modname_alias{$name}; - # remember all found modules - $self->{modules}->{$name} = $file; - debug "Found: $modname => $name"; - if ($self->should_skip_module($name)) { debug "Skipping LoadModule of $name"; next; } + # remember all found modules that aren't skipped + $self->{modules}->{$name} = $file; + debug "Found: $modname => $name"; + debug "LoadModule $modname $name"; # sometimes people have broken system-wide httpd.conf files, So is either of these a reasonable fix? (It doesn't seem right that info.t has to worry about modules which were found in the configuration but not loaded, but I don't know what is expected of the configuration object.)