Apache-Test
view release on metacpan or search on metacpan
lib/Apache/Test.pm view on Meta::CPAN
my $vars = vars();
need_module([$vars->{ssl_module_name}, 'IO::Socket::SSL']);
}
sub need_lwp {
require Apache::TestRequest;
if (Apache::TestRequest::has_lwp()) {
return 1;
}
else {
push @SkipReasons, "libwww-perl is not installed";
return 0;
}
}
sub need {
my $need_all = 1;
for my $cond (@_) {
if (ref $cond eq 'HASH') {
while (my($reason, $value) = each %$cond) {
$value = $value->() if ref $value eq 'CODE';
next if $value;
push @SkipReasons, $reason;
$need_all = 0;
}
}
elsif ($cond =~ /^(0|1)$/) {
$need_all = 0 if $cond == 0;
}
else {
$need_all = 0 unless need_module($cond);
}
}
return $need_all;
}
sub need_module {
my $cfg = config();
my @modules = grep defined $_,
ref($_[0]) eq 'ARRAY' ? @{ $_[0] } : @_;
my @reasons = ();
for (@modules) {
if (/^[a-z0-9_.]+$/) {
my $mod = $_;
$mod .= '.c' unless $mod =~ /\.c$/;
next if $cfg->{modules}->{$mod};
$mod = 'mod_' . $mod unless $mod =~ /^mod_/;
next if $cfg->{modules}->{$mod};
if (exists $cfg->{cmodules_disabled}->{$mod}) {
push @reasons, $cfg->{cmodules_disabled}->{$mod};
next;
}
}
die "bogus module name $_" unless /^[\w:.]+$/;
# if the module was explicitly passed with a .c extension,
# do not try to eval it as a Perl module
my $not_found = 1;
unless (/\.c$/) {
eval "require $_";
$not_found = 0 unless $@;
#print $@ if $@;
}
push @reasons, "cannot find module '$_'" if $not_found;
}
if (@reasons) {
push @SkipReasons, @reasons;
return 0;
}
else {
return 1;
}
}
sub need_min_perl_version {
my $version = shift;
return 1 if $] >= $version;
push @SkipReasons, "perl >= $version is required";
return 0;
}
# currently supports only perl modules
sub need_min_module_version {
my($module, $version) = @_;
# need_module requires the perl module
return 0 unless need_module($module);
# support dev versions like 0.18_01
return 1
if eval { no warnings qw(numeric); $module->VERSION($version) };
push @SkipReasons, "$module version $version or higher is required";
return 0;
}
sub need_cgi {
return _need_multi(qw(cgi.c cgid.c));
}
sub need_cache_disk {
return _need_multi(qw(cache_disk.c disk_cache.c));
}
sub need_php {
return _need_multi(qw(php4 php5 sapi_apache2.c));
}
sub need_php4 {
return _need_multi(qw(php4 sapi_apache2.c));
}
sub need_access {
return _need_multi(qw(access authz_host));
}
sub need_auth {
return _need_multi(qw(auth auth_basic));
}
( run in 1.693 second using v1.01-cache-2.11-cpan-39bf76dae61 )