~ubuntu-branches/ubuntu/edgy/libapache2-mod-perl2/edgy

« back to all changes in this revision

Viewing changes to t/response/TestAPI/module.pm

  • Committer: Bazaar Package Importer
  • Author(s): Andres Salomon
  • Date: 2005-08-12 01:40:38 UTC
  • mfrom: (1.1.2 upstream) (2.1.1 sarge)
  • Revision ID: james.westby@ubuntu.com-20050812014038-gjigefs55pqx4qc8
Tags: 2.0.1-3
Grr.  Really include perl.conf file; it got lost due to diff not
wanting to add an empty file.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
 
2
1
package TestAPI::module;
3
2
 
4
3
use strict;
7
6
use Apache::Test;
8
7
use Apache::TestConfig;
9
8
use Apache::TestUtil;
10
 
use Apache::BuildConfig;
 
9
use Apache2::BuildConfig;
11
10
 
12
 
use Apache::Module ();
 
11
use Apache2::Module ();
13
12
use DynaLoader ();
14
13
 
15
 
use Apache::Const -compile => 'OK';
 
14
use Apache2::Const -compile => 'OK';
16
15
 
17
16
sub handler {
18
17
    my $r = shift;
19
18
 
20
19
    my $cfg = Apache::Test::config();
21
20
 
22
 
    my $top_module = Apache::Module->top_module;
23
 
 
24
 
    #no promise that mod_perl will be the top_module
25
 
    my $top_module_name = (defined $top_module && $top_module->name()) || '';
26
 
 
27
 
    my $tests = 11;
28
 
    $tests += 3 if $top_module_name eq 'mod_perl.c';
 
21
    my $top_module = Apache2::Module::top_module();
 
22
 
 
23
    my $module_count = 0;
 
24
    for (my $modp = $top_module; $modp; $modp = $modp->next) {
 
25
        $module_count++;
 
26
    }
 
27
 
 
28
    my $tests = 12 + ( 5 * $module_count );
29
29
 
30
30
    plan $r, tests => $tests;
31
31
 
32
 
    t_debug "top_module: $top_module_name";
33
 
    ok $top_module;
34
 
 
35
 
    ok t_cmp($cfg->{httpd_info}->{MODULE_MAGIC_NUMBER_MAJOR},
36
 
             $top_module->version,
37
 
             q{$top_module->version});
38
 
 
39
 
    ok t_cmp(scalar(keys %{ $cfg->{modules} }),
40
 
             $top_module->module_index,
41
 
             q{$top_module->module_index})
42
 
        || 1; # the A-T config could be wrong
43
 
 
44
 
    #XXX: some of these tests will fail if modperl is linked static
45
 
    #rather than dso.
46
 
 
47
 
    if ($top_module_name eq 'mod_perl.c') {
48
 
        ok t_cmp('mod_perl.c', $top_module_name, q{$top_module->name}) || 1;
49
 
 
50
 
        my $cmd = $top_module->cmds;
51
 
 
52
 
        ok defined $cmd;
53
 
 
54
 
        ok UNIVERSAL::isa($cmd, 'Apache::Command');
55
 
    }
56
 
 
57
 
    if (0) { #XXX: currently fails with --enable-mods-shared=all
58
 
        local $cfg->{modules}->{'mod_perl.c'} = 1;
59
 
        my $modules = {};
60
 
 
61
 
        for (my $modp = $top_module; $modp; $modp = $modp->next) {
62
 
            if ($modp && $modp->name) {
63
 
                $modules->{$modp->name} = 1;
64
 
            }
65
 
        }
66
 
 
67
 
        my %alias = (
68
 
            'sapi_apache2.c' => 'mod_php4.c',
69
 
        );
70
 
 
71
 
        while (my($key, $val) = each %alias) {
72
 
            next unless $modules->{$key};
73
 
            delete $modules->{$key};
74
 
            $modules->{$val} = 1;
75
 
        }
76
 
 
77
 
        ok t_cmp($cfg->{modules}, $modules, "Modules list");
78
 
    }
 
32
    my $core = Apache2::Module::find_linked_module('core.c');
 
33
    ok defined $core && $core->name eq 'core.c';
79
34
 
80
35
    #.c
81
 
    ok t_cmp(1, Apache::Module::loaded('mod_perl.c'),
82
 
             "Apache::Module::loaded('mod_perl.c')");
 
36
    ok t_cmp Apache2::Module::loaded('mod_perl.c'), 1,
 
37
        "Apache2::Module::loaded('mod_perl.c')";
83
38
 
84
 
    ok t_cmp(0, Apache::Module::loaded('Apache__Module_foo.c'),
85
 
             "Apache::Module::loaded('Apache__Module_foo.c')");
 
39
    ok t_cmp Apache2::Module::loaded('Apache__Module_foo.c'), 0,
 
40
        "Apache2::Module::loaded('Apache__Module_foo.c')";
86
41
 
87
42
    #.so
88
43
    {
89
 
        my $build = Apache::BuildConfig->new;
90
 
        my $expect = $build->{MODPERL_LIB_SHARED} ? 1 : 0;
91
 
        ok t_cmp($expect, Apache::Module::loaded('mod_perl.so'),
92
 
                 "Apache::Module::loaded('mod_perl.so')");
 
44
        my $build = Apache2::BuildConfig->new;
 
45
        my $expect = $build->should_build_apache ? 0 : 1;
 
46
        ok t_cmp Apache2::Module::loaded('mod_perl.so'), $expect,
 
47
            "Apache2::Module::loaded('mod_perl.so')";
93
48
    }
94
49
 
95
 
    ok t_cmp(0, Apache::Module::loaded('Apache__Module__foo.so'),
96
 
             "Apache::Module::loaded('Apache__Module_foo.so')");
 
50
    ok t_cmp Apache2::Module::loaded('Apache__Module__foo.so'), 0,
 
51
        "Apache2::Module::loaded('Apache__Module_foo.so')";
97
52
 
98
53
    #perl
99
 
    ok t_cmp(1, Apache::Module::loaded('Apache::Module'),
100
 
             "Apache::Module::loaded('Apache::Module')");
101
 
 
102
 
    ok t_cmp(0, Apache::Module::loaded('Apache__Module_foo'),
103
 
             "Apache::Module::loaded('Apache__Module_foo')");
 
54
    {
 
55
        ok t_cmp Apache2::Module::loaded('Apache2::Module'), 1,
 
56
            "Apache2::Module::loaded('Apache2::Module')";
 
57
 
 
58
        ok t_cmp Apache2::Module::loaded('Apache__Module_foo'), 0,
 
59
            "Apache2::Module::loaded('Apache__Module_foo')";
 
60
 
 
61
        # TestAPI::module::foo wasn't loaded but the stash exists
 
62
        $TestAPI::module::foo::test = 1;
 
63
        ok t_cmp Apache2::Module::loaded('TestAPI::module::foo'), 0,
 
64
            "Apache2::Module::loaded('TestAPI::module::foo')";
 
65
 
 
66
        # module TestAPI wasn't loaded but the stash exists, since
 
67
        # TestAPI::module was loaded
 
68
        ok t_cmp Apache2::Module::loaded('TestAPI'), 0,
 
69
            "Apache2::Module::loaded('TestAPI')";
 
70
    }
104
71
 
105
72
    #bogus
106
 
    ok t_cmp(0, Apache::Module::loaded('Apache__Module_foo.foo'),
107
 
             "Apache::Module::loaded('Apache__Module_foo.foo')");
108
 
 
109
 
    ok t_cmp(0, Apache::Module::loaded(''),
110
 
             "Apache::Module::loaded('')");
111
 
 
112
 
    Apache::OK;
 
73
    ok t_cmp Apache2::Module::loaded('Apache__Module_foo.foo'), 0,
 
74
        "Apache2::Module::loaded('Apache__Module_foo.foo')";
 
75
 
 
76
    ok t_cmp Apache2::Module::loaded(''), 0,
 
77
        "Apache2::Module::loaded('')";
 
78
 
 
79
    ok t_cmp ref($top_module), 'Apache2::Module', 'top_module';
 
80
 
 
81
    my $mmn_major = $cfg->{httpd_info}{MODULE_MAGIC_NUMBER_MAJOR};
 
82
    my $mmn_minor = $cfg->{httpd_info}{MODULE_MAGIC_NUMBER_MINOR};
 
83
    for (my $modp = $top_module; $modp; $modp = $modp->next) {
 
84
        my $name = $modp->name;
 
85
        ok $name;
 
86
        t_debug("Testing module: " . $modp->name);
 
87
        ok t_cmp $modp->ap_api_major_version, $mmn_major;
 
88
        ok $modp->ap_api_minor_version <= $mmn_minor;
 
89
        ok $modp->module_index >= 0;
 
90
        my $cmds = $modp->cmds;
 
91
        ok !defined($cmds) || ref($cmds) eq 'Apache2::Command';
 
92
    }
 
93
 
 
94
    Apache2::Const::OK;
113
95
}
114
96
 
115
97
1;