# spawn the standalone HTTP server
my $port = 30000 + int rand(1 + 10000);
my @cmd = ($^X, "-I$FindBin::Bin/../../lib",
- "$FindBin::Bin/../../t/tmp/TestApp/script/testapp_server.pl", '-port', $port );
+ "$FindBin::Bin/../../t/tmp/TestApp/script/testapp_server.pl", '--port', $port );
my $pid = open3( undef, my $server, undef, @cmd)
or die "Unable to spawn standalone HTTP server: $!";
# run the testsuite against the HTTP server
$ENV{CATALYST_SERVER} = "http://localhost:$port";
+chdir '..';
+
my $return;
if ( $single_test ) {
- $return = system( "$^X -I../lib/ $single_test" );
+ $return = system( "$^X -Ilib/ $single_test" );
}
else {
- $return = prove( '-r', '-I../lib/', glob('../t/aggregate/live_*.t') );
+ $return = prove(grep { $_ ne '..' } glob('t/aggregate/live_*.t'));
}
# shut it down
}
sub prove {
+ my (@tests) = @_;
if (!(my $pid = fork)) {
- require App::Prove;
- my $prove = App::Prove->new;
- $prove->process_args(@_);
- exit( $prove->run ? 0 : 1 );
+ require TAP::Harness;
+
+ my $aggr = -e '.aggregating';
+ my $harness = TAP::Harness->new({
+ ($aggr ? (test_args => \@tests) : ()),
+ lib => ['lib'],
+ });
+
+ my $aggregator = $aggr
+ ? $harness->runtests('t/aggregate.t')
+ : $harness->runtests(@tests);
+
+ exit $aggregator->has_errors ? 1 : 0;
} else {
waitpid $pid, 0;
return $?;