gozer 2004/08/17 13:39:46
Modified: t/response/TestAPI module.pm
Log:
Improve Apache::Module tests to make usage of the entire API on the
whole apache module list.
Revision Changes Path
1.16 +24 -38 modperl-2.0/t/response/TestAPI/module.pm
Index: module.pm
===================================================================
RCS file: /home/cvs/modperl-2.0/t/response/TestAPI/module.pm,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- module.pm 11 Aug 2004 00:13:50 -0000 1.15
+++ module.pm 17 Aug 2004 20:39:46 -0000 1.16
@@ -18,50 +18,20 @@
my $r = shift;
my $cfg = Apache::Test::config();
-
+
my $top_module = Apache::Module->top_module;
- #no promise that mod_perl will be the top_module
- my $top_module_name = (defined $top_module && $top_module->name()) || '';
+ my $module_count = 0;
+ for (my $modp = $top_module; $modp; $modp = $modp->next) {
+ $module_count++;
+ }
- my $tests = 11;
+ my $tests = 10 + ( 5 * $module_count );
plan $r, tests => $tests;
- t_debug "top_module: $top_module_name";
- ok $top_module;
-
- ok t_cmp($top_module->version,
- $cfg->{httpd_info}->{MODULE_MAGIC_NUMBER_MAJOR},
- q{$top_module->version});
-
- ok t_cmp($top_module->module_index,
- scalar(keys %{ $cfg->{modules} }),
- q{$top_module->module_index})
- || 1; # the A-T config could be wrong
-
- if (0) { #XXX: currently fails with --enable-mods-shared=all
- local $cfg->{modules}->{'mod_perl.c'} = 1;
- my $modules = {};
-
- for (my $modp = $top_module; $modp; $modp = $modp->next) {
- if ($modp && $modp->name) {
- $modules->{$modp->name} = 1;
- }
- }
-
- my %alias = (
- 'sapi_apache2.c' => 'mod_php4.c',
- );
-
- while (my($key, $val) = each %alias) {
- next unless $modules->{$key};
- delete $modules->{$key};
- $modules->{$val} = 1;
- }
-
- ok t_cmp($modules, $cfg->{modules}, "Modules list");
- }
+ my $core = Apache::Module::find_linked_module('core.c');
+ ok defined $core && $core->name eq 'core.c';
#.c
ok t_cmp(Apache::Module::loaded('mod_perl.c'), 1,
@@ -94,6 +64,22 @@
ok t_cmp(Apache::Module::loaded(''), 0,
"Apache::Module::loaded('')");
+
+
+ ok t_cmp ref($top_module), 'Apache::Module', 'top_module';
+
+ my $mmn_major = $cfg->{httpd_info}{MODULE_MAGIC_NUMBER_MAJOR};
+ my $mmn_minor = $cfg->{httpd_info}{MODULE_MAGIC_NUMBER_MINOR};
+ for (my $modp = $top_module; $modp; $modp = $modp->next) {
+ my $name = $modp->name;
+ ok $name;
+ t_debug("Testing module: " . $modp->name);
+ ok $modp->version == $mmn_major;
+ ok $modp->minor_version <= $mmn_minor;
+ ok $modp->module_index >= 0;
+ my $cmds = $modp->cmds;
+ ok !defined($cmds) || ref($cmds) eq 'Apache::Command';
+ }
Apache::OK;
}