Apache-Test
view release on metacpan or search on metacpan
lib/Apache/TestRun.pm view on Meta::CPAN
if ($request) {
my $method = \&{"Apache::TestRequest::\U$request"};
my $res = $method->($url, @args);
print Apache::TestRequest::to_string($res);
}
}
sub opt_clean {
my($self, $level) = @_;
my $test_config = $self->{test_config};
$test_config->server->stop;
$test_config->clean($level);
1;
}
sub opt_ping {
my($self) = @_;
my $test_config = $self->{test_config};
my $server = $test_config->server;
my $pid = $server->ping;
my $name = $server->{name};
# support t/TEST -ping=block -run ...
my $exit = not $self->{opts}->{'run-tests'};
if ($pid) {
if ($pid == -1) {
error "port $test_config->{vars}->{port} is in use, ".
"but cannot determine server pid";
}
else {
my $version = $server->{version};
warning "server $name running (pid=$pid, version=$version)";
}
return $exit;
}
if (exists $self->{opts}->{ping} && $self->{opts}->{ping} eq 'block') {
$server->wait_till_is_up(STARTUP_TIMEOUT);
}
else {
warning "no server is running on $name";
exit_perl(0);
}
return $exit; #means call exit() if true
}
sub test_inc {
map { "$_/Apache-Test/lib" } qw(. ..);
}
sub set_perl5lib {
$ENV{PERL5LIB} = join $Config{path_sep}, shift->test_inc();
}
sub set_perldb_opts {
my $config = shift->{test_config};
my $file = catfile $config->{vars}->{t_logs}, 'perldb.out';
$config->genfile($file); #mark for -clean
$ENV{PERLDB_OPTS} = "NonStop frame=4 AutoTrace LineInfo=$file";
warning "perldb log is t/logs/perldb.out";
}
sub opt_debug {
my $self = shift;
my $server = $self->{server};
my $opts = $self->{opts};
my $debug_opts = {};
for (qw(debugger breakpoint)) {
$debug_opts->{$_} = $opts->{$_};
}
if (my $db = $opts->{debugger}) {
if ($db =~ s/^perl=?//) {
$opts->{'run-tests'} = 1;
$self->start; #if not already running
$self->set_perl5lib;
$self->set_perldb_opts if $db eq 'nostop';
system $^X, '-MApache::TestPerlDB', '-d', @{ $self->{tests} };
$self->stop;
return 1;
}
elsif ($db =~ s/^lwp[=:]?//) {
$ENV{APACHE_TEST_DEBUG_LWP} = $db || 1;
$opts->{verbose} = 1;
return 0;
}
}
$server->stop;
$server->start_debugger($debug_opts);
1;
}
sub opt_help {
my $self = shift;
print <<EOM;
usage: TEST [options ...]
where options include:
EOM
for (sort keys %usage){
printf " -%-13s %s\n", $_, $usage{$_};
}
print "\n configuration options:\n";
Apache::TestConfig->usage;
1;
}
# generate t/TEST script (or a different filename) which will drive
# Apache::TestRun
sub generate_script {
my ($class, @opts) = @_;
my %opts = ();
( run in 0.433 second using v1.01-cache-2.11-cpan-e1769b4cff6 )