File: optional_apache-cgi-rewrite.pl

package info (click to toggle)
libcatalyst-perl 5.90132-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 3,016 kB
  • sloc: perl: 11,061; makefile: 7
file content (55 lines) | stat: -rw-r--r-- 1,166 bytes parent folder | download | duplicates (3)
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/rewrite';

if ( !-e 't/optional_apache-cgi-rewrite.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;
    }
}