1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
# Run all tests against CGI mode under Apache
#
# Note, to get this to run properly, you may need to give it the path to your
# httpd.conf:
#
# perl t/optional_apache-cgi.pl -httpd_conf /etc/apache/httpd.conf
use strict;
use warnings;
use Apache::Test;
use Apache::TestRun ();
use File::Path;
use File::Copy::Recursive;
use FindBin;
use IO::Socket;
use lib 't/lib';
use MakeTestApp;
make_test_app;
$ENV{CATALYST_SERVER} = 'http://localhost:8529/cgi';
if ( !-e 't/optional_apache-cgi.pl' ) {
die "ERROR: Please run test from the Catalyst-Runtime directory\n";
}
push @ARGV, glob( 't/aggregate/live_*' );
Apache::TestRun->new->run(@ARGV);
# 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;
}
}
|