# This file documents the revision history for Perl extension Catalyst.
+5.7xxx xxx
+ - Get some of the optional_* tests working from dirs with spaces (RT #26455)
+
5.7014 2008-05-25 15:26:00
- - Addition of .conf in restart regex in Catalyst::Engine::HTTP::Restarter::Watcher
- - Fix regression for relative uri_for arguments after a forward()
- introduced in 5.7013 (Peter Karman)
- - Fix regression for "sub foo : Path {}" in the root controller which
- was introduced when attempting to allow "0" as a Path.
+ - Addition of .conf in restart regex in Catalyst::Engine::HTTP::Restarter::Watcher
+ - Fix regression for relative uri_for arguments after a forward()
+ introduced in 5.7013 (Peter Karman)
+ - Fix regression for "sub foo : Path {}" in the root controller which
+ was introduced when attempting to allow "0" as a Path.
5.7013 2008-05-16 18:20:00
- Provide backwards compatability methods in Catalyst::Stats
'forward_to_uri_check request');
ok( $response->is_success, 'forward_to_uri_check successful');
- is( $response->content, 'http://localhost/action/forward/foo/bar',
+ # optional port, as it could be a live test
+ like( $response->content, qr{http://localhost(:\d+)?/action/forward/foo/bar},
'forward_to_uri_check correct namespace');
}
-#!perl
-
# This test tests the standalone server's auto-restart feature.
use strict;
use FindBin;
use LWP::Simple;
use IO::Socket;
+use IPC::Open3;
use Test::More;
use Time::HiRes qw/sleep/;
eval "use Catalyst::Devel 1.0;";
plan tests => 120;
+my $tmpdir = "$FindBin::Bin/../t/tmp";
+
# clean up
-rmtree "$FindBin::Bin/../t/tmp" if -d "$FindBin::Bin/../t/tmp";
+rmtree $tmpdir if -d $tmpdir;
# create a TestApp and copy the test libs into it
-mkdir "$FindBin::Bin/../t/tmp";
-chdir "$FindBin::Bin/../t/tmp";
-system
- "perl -I$FindBin::Bin/../lib $FindBin::Bin/../script/catalyst.pl TestApp";
+mkdir $tmpdir;
+chdir $tmpdir;
+
+system( 'perl', "-I$FindBin::Bin/../lib", "$FindBin::Bin/../script/catalyst.pl", 'TestApp' );
+
chdir "$FindBin::Bin/..";
File::Copy::Recursive::dircopy( 't/lib', 't/tmp/TestApp/lib' );
# spawn the standalone HTTP server
my $port = 30000 + int rand( 1 + 10000 );
-my $pid = open my $server,
-"perl -I$FindBin::Bin/../lib $FindBin::Bin/../t/tmp/TestApp/script/testapp_server.pl -port $port -restart 2>&1 |"
- or die "Unable to spawn standalone HTTP server: $!";
+my( $server, $pid );
+$pid = open3( undef, $server, undef,
+ 'perl', "-I$FindBin::Bin/../lib",
+ "$FindBin::Bin/../t/tmp/TestApp/script/testapp_server.pl", '-port',
+ $port, '-restart' )
+ or die "Unable to spawn standalone HTTP server: $!";
# switch to non-blocking reads so we can fail
# gracefully instead of just hanging forever
"-restartdirectory $app_root/lib/TestApp/Controller/$_"
} qw/Action Engine/;
-$pid = open $server,
-"perl -I$FindBin::Bin/../lib $FindBin::Bin/../t/tmp/TestApp/script/testapp_server.pl -port $port -restart $restartdirs 2>&1 |"
- or die "Unable to spawn standalone HTTP server: $!";
+$pid = open3( undef, $server, undef,
+ 'perl', "-I$FindBin::Bin/../lib",
+ "$FindBin::Bin/../t/tmp/TestApp/script/testapp_server.pl", '-port',
+ $port, '-restart', $restartdirs )
+ or die "Unable to spawn standalone HTTP server: $!";
$server->blocking( 0 );
-#!perl
-
use strict;
use warnings;
use File::Path;
use FindBin;
+use IPC::Open3;
use IO::Socket;
use Test::More;
# Run a single test by providing it as the first arg
my $single_test = shift;
+my $tmpdir = "$FindBin::Bin/../t/tmp";
+
# clean up
-rmtree "$FindBin::Bin/../t/tmp" if -d "$FindBin::Bin/../t/tmp";
+rmtree $tmpdir if -d $tmpdir;
# create a TestApp and copy the test libs into it
-mkdir "$FindBin::Bin/../t/tmp";
-chdir "$FindBin::Bin/../t/tmp";
-system "perl -I$FindBin::Bin/../lib $FindBin::Bin/../script/catalyst.pl TestApp";
+mkdir $tmpdir;
+chdir $tmpdir;
+system( 'perl', "-I$FindBin::Bin/../lib", "$FindBin::Bin/../script/catalyst.pl", 'TestApp' );
chdir "$FindBin::Bin/..";
File::Copy::Recursive::dircopy( 't/lib', 't/tmp/TestApp/lib' );
# spawn the standalone HTTP server
my $port = 30000 + int rand(1 + 10000);
-my $pid = open my $server,
- "perl -I$FindBin::Bin/../lib $FindBin::Bin/../t/tmp/TestApp/script/testapp_server.pl -port $port 2>&1 |"
+my $pid = open3( undef, my $server, undef,
+ 'perl', "-I$FindBin::Bin/../lib",
+ "$FindBin::Bin/../t/tmp/TestApp/script/testapp_server.pl", '-port', $port )
or die "Unable to spawn standalone HTTP server: $!";
# wait for it to start
# run the testsuite against the HTTP server
$ENV{CATALYST_SERVER} = "http://localhost:$port";
+my $return;
if ( $single_test ) {
- system( "perl -Ilib/ $single_test" );
+ $return = system( "perl -Ilib/ $single_test" );
}
else {
- system( 'prove -r -Ilib/ t/live_*' );
+ $return = system( 'prove -r -Ilib/ t/live_*.t' );
}
# shut it down
# clean up
rmtree "$FindBin::Bin/../t/tmp" if -d "$FindBin::Bin/../t/tmp";
-ok( 'done' );
+is( $return, 0, 'live tests' );
sub check_port {
my ( $host, $port ) = @_;