All, The access2.t test fails when mod_perl 2.0.3 is built against the httpd trunk. The core problem is that the test script needs the httpd ap_requires function; however the log shows that the ap_requires function has been removed from httpd:
relocation error: /home/mmsadm/Projects/mod_perl-2.0.3/blib/arch/auto/Apache2/Access/Access.so: undefined symbol: ap_requires The relevant code in t/repsonse/TestAPI/access2.pm is: # extract just the requirement entries my %require = map { my ($k, $v) = split /\s+/, $_->{requirement}, 2; ($k, $v||'') } @{ $r->requires }; debug \%require; .... return Apache2::Const::SERVER_ERROR unless $require{user} eq $users; return Apache2::Const::SERVER_ERROR unless $require{group} eq $groups; Since requires effectively wraps ap_requires the %require hash is not populated & SERVER::ERROR is returned from the handler. The config section is: <Location /TestAPI__access2> PerlAuthenHandler TestAPI::access2 PerlResponseHandler Apache::TestHandler::ok1 SetHandler modperl <IfModule mod_authz_host.c> # needed to test $r->satisfies Allow from All </IfModule> AuthType Basic AuthName "Access" Require user goo bar Require group bar tar <Limit POST> Require valid-user </Limit> Satisfy All <IfModule mod_auth_basic.c> # htpasswd -mbc auth-users goo foo # htpasswd -mb auth-users bar mar # using md5 password so it'll work on win32 too AuthUserFile /home/mmsadm/Projects/mod_perl-2.0.3/t/htdocs/api/auth-users # group: user1 user2 ... AuthGroupFile /home/mmsadm/Projects/mod_perl-2.0.3/t/htdocs/api/auth-groups </IfModule> </Location> To make the access2 test pass it seems that the obvious thing to do is populate the %require hash without the '$r->requires' call. Does anyone know how the information associated with 'Require' directives can be retrieved in the latest httpd implementation? Thanks, Rolf Further info: 1. This mail discussion between Steve Hay & Randy Kobes mentions the removal of ap_requires from httpd: "Problems building mod_perl-2.0.3 on Win32 with VC8" 2. t/hooks/authz.t & t/hooks/authen_basic.t fail for the same reason