X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Foptional_http-server-restart.t;h=3d3cb3fc9dee45501b63c4719b5723e827aaa7fd;hb=62b6b631cf9141ffd9ae02e4b87c182b080b335a;hp=cb18ce8e658335f725e45faa729e52744d862743;hpb=868a7cca6687d5a4df03ad4f70f60fc124033f62;p=catagits%2FCatalyst-Runtime.git diff --git a/t/optional_http-server-restart.t b/t/optional_http-server-restart.t index cb18ce8..3d3cb3f 100644 --- a/t/optional_http-server-restart.t +++ b/t/optional_http-server-restart.t @@ -3,16 +3,20 @@ use strict; use warnings; +use Test::More; +BEGIN { + plan skip_all => 'set TEST_HTTP to enable this test' unless $ENV{TEST_HTTP}; +} + use File::Path; use FindBin; use LWP::Simple; use IO::Socket; use IPC::Open3; -use Test::More; +use Catalyst::Engine::HTTP::Restarter::Watcher; use Time::HiRes qw/sleep/; eval "use Catalyst::Devel 1.0;"; -plan skip_all => 'set TEST_HTTP to enable this test' unless $ENV{TEST_HTTP}; plan skip_all => 'Catalyst::Devel required' if $@; plan skip_all => 'Catalyst::Devel >= 1.04 required' if $Catalyst::Devel::VERSION <= 1.03; eval "use File::Copy::Recursive"; @@ -41,10 +45,11 @@ rmtree 't/tmp/TestApp/t'; my $port = 30000 + int rand( 1 + 10000 ); my( $server, $pid ); -$pid = open3( undef, $server, undef, - $^X, "-I$FindBin::Bin/../lib", +my @cmd = ($^X, "-I$FindBin::Bin/../lib", "-I$FindBin::Bin/lib", "$FindBin::Bin/../t/tmp/TestApp/script/testapp_server.pl", '-port', - $port, '-restart' ) + $port, '-restart'); + +$pid = open3( undef, $server, undef, @cmd ) or die "Unable to spawn standalone HTTP server: $!"; # switch to non-blocking reads so we can fail @@ -62,7 +67,8 @@ while ( check_port( 'localhost', $port ) != 1 ) { my @files = ( "$FindBin::Bin/../t/tmp/TestApp/lib/TestApp.pm", "$FindBin::Bin/../t/tmp/TestApp/lib/TestApp/Controller/Action/Begin.pm", -"$FindBin::Bin/../t/tmp/TestApp/lib/TestApp/Controller/Engine/Request/URI.pm", + "$FindBin::Bin/../t/tmp/TestApp/lib/TestApp/Controller/Immutable.pm", + "$FindBin::Bin/../t/tmp/TestApp/lib/TestApp/Controller/Immutable/HardToReload.pm", ); # change some files and make sure the server restarts itself @@ -77,7 +83,6 @@ for ( 1 .. 20 ) { # give the server time to notice the change and restart my $count = 0; my $line; - while ( ( $line || '' ) !~ /can connect/ ) { # wait for restart message $line = $server->getline; @@ -204,7 +209,7 @@ for ( 1 .. 20 ) { sleep 0.1; if ( $count++ > 100 ) { fail "Server restarted"; - SKIP_NO_RESTART_2: { + SKIP: { skip "Server didn't restart, no sense in checking response", 1; } next MULTI_DIR_RESTART;