X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Foptional%2Fapache-cgi.pl;h=a6cf88127f2015a72201d91bc931c33957fed22a;hb=e2a248924a4f84d01ee7e6ba2bbfd715d1187947;hp=3c0a4de30eae96a3201a4e5c7a4381528de81798;hpb=58f5682a9e1df884fc01ec9e180d225506fc60ff;p=catagits%2FCatalyst-Runtime.git diff --git a/t/optional/apache-cgi.pl b/t/optional/apache-cgi.pl index 3c0a4de..a6cf881 100755 --- a/t/optional/apache-cgi.pl +++ b/t/optional/apache-cgi.pl @@ -16,24 +16,44 @@ use Apache::TestRun (); use File::Path; use File::Copy::Recursive; use FindBin; +use IO::Socket; # clean up -rmtree "$FindBin::Bin/../../t/var" if -d "$FindBin::Bin/../../t/var"; +rmtree "$FindBin::Bin/../../t/tmp" if -d "$FindBin::Bin/../../t/tmp"; # create a TestApp and copy the test libs into it -mkdir "$FindBin::Bin/../../t/var"; -chdir "$FindBin::Bin/../../t/var"; +mkdir "$FindBin::Bin/../../t/tmp"; +chdir "$FindBin::Bin/../../t/tmp"; system "$FindBin::Bin/../../script/catalyst.pl TestApp"; chdir "$FindBin::Bin/../.."; -File::Copy::Recursive::dircopy( 't/live/lib', 't/var/TestApp/lib' ); +File::Copy::Recursive::dircopy( 't/live/lib', 't/tmp/TestApp/lib' ); # remove TestApp's tests so Apache::Test doesn't try to run them -rmtree 't/var/TestApp/t'; +rmtree 't/tmp/TestApp/t'; -my $cfg = Apache::Test::config(); -$ENV{CATALYST_SERVER} = 'http://' . $cfg->hostport . '/cgi'; +$ENV{CATALYST_SERVER} = 'http://localhost:8529/cgi'; Apache::TestRun->new->run(@ARGV); -# clean up -rmtree "$FindBin::Bin/../../t/var" if -d "$FindBin::Bin/../../t/var"; +# clean up if the server has shut down +# this allows the test files to stay around if the user ran -start-httpd +if ( ! check_port( 'localhost', 8529 ) ) { + rmtree "$FindBin::Bin/../../t/tmp" if -d "$FindBin::Bin/../../t/tmp"; +} + +sub check_port { + my ( $host, $port ) = @_; + + my $remote = IO::Socket::INET->new( + Proto => "tcp", + PeerAddr => $host, + PeerPort => $port + ); + if ($remote) { + close $remote; + return 1; + } + else { + return 0; + } +}