-#!/usr/bin/env perl
-
use strict;
use warnings;
use FCGI::Client;
use File::Temp qw(tempfile);
use IO::Socket;
-use Test::More 'tests' => 4;
-
-BEGIN {
- my $reason;
- my $can_fork = $Config{d_fork}
- || (
- ($^O eq 'MSWin32' || $^O eq 'NetWare')
- and $Config{useithreads}
- and $Config{ccflags} =~ /-DPERL_IMPLICIT_SYS/
- );
- if ($ENV{PERL_CORE} and $Config{'extensions'} !~ /\bSocket\b/) {
- $reason = 'Socket extension unavailable';
- } elsif ($ENV{PERL_CORE} and $Config{'extensions'} !~ /\bIO\b/) {
- $reason = 'IO extension unavailable';
- } elsif ($^O eq 'os2') {
- eval { IO::Socket::pack_sockaddr_un('/foo/bar') || 1 };
- if ($@ !~ /not implemented/) {
- $reason = 'compiled without TCP/IP stack v4';
- }
- } elsif ($^O =~ m/^(?:qnx|nto|vos)$/ ) {
- $reason = "UNIX domain sockets not implemented on $^O";
- } elsif (! $can_fork) {
- $reason = 'no fork';
- } elsif ($^O eq 'MSWin32') {
- if ($ENV{CONTINUOUS_INTEGRATION}) {
- # https://github.com/Perl/perl5/issues/17429
- $reason = 'Skipping on Windows CI';
- } else {
- # https://github.com/Perl/perl5/issues/17575
- if (! eval { socket(my $sock, PF_UNIX, SOCK_STREAM, 0) }) {
- $reason = "AF_UNIX unavailable or disabled on this platform"
- }
- }
+use Test::More 0.88;
+
+my $can_fork = $Config{d_fork}
+ || (
+ ($^O eq 'MSWin32' || $^O eq 'NetWare')
+ and $Config{useithreads}
+ and $Config{ccflags} =~ /-DPERL_IMPLICIT_SYS/
+ );
+if ($ENV{PERL_CORE} and $Config{'extensions'} !~ /\bSocket\b/) {
+ plan skip_all => 'Socket extension unavailable';
+} elsif ($ENV{PERL_CORE} and $Config{'extensions'} !~ /\bIO\b/) {
+ plan skip_all => 'IO extension unavailable';
+} elsif ($^O eq 'os2') {
+ eval { IO::Socket::pack_sockaddr_un('/foo/bar') || 1 };
+ if ($@ !~ /not implemented/) {
+ plan skip_all => 'compiled without TCP/IP stack v4';
}
-
- if ($reason) {
- print "1..0 # Skip: $reason\n";
- exit 0;
+} elsif ($^O =~ m/^(?:qnx|nto|vos)$/ ) {
+ plan skip_all => "UNIX domain sockets not implemented on $^O";
+} elsif (! $can_fork) {
+ plan skip_all => 'no fork';
+} elsif ($^O eq 'MSWin32') {
+ if ($ENV{CONTINUOUS_INTEGRATION}) {
+ # https://github.com/Perl/perl5/issues/17429
+ plan skip_all => 'Skipping on Windows CI';
+ } else {
+ # https://github.com/Perl/perl5/issues/17575
+ if (! eval { socket(my $sock, PF_UNIX, SOCK_STREAM, 0) }) {
+ plan skip_all => "AF_UNIX unavailable or disabled on this platform"
+ }
}
}
FCGI::CloseSocket($fcgi_socket);
unlink $unix_socket_file;
+done_testing;
+
sub client_request {
- my $unix_socket_file = shift;
+ my $unix_socket_file = shift;
- my $sock = IO::Socket::UNIX->new(
- Peer => $unix_socket_file,
- ) or die $!;
- my $client = FCGI::Client::Connection->new(sock => $sock);
- my ($stdout, $stderr) = $client->request({
- REQUEST_METHOD => 'GET',
- }, '');
+ my $sock = IO::Socket::UNIX->new(
+ Peer => $unix_socket_file,
+ ) or die $!;
+ my $client = FCGI::Client::Connection->new(sock => $sock);
+ my ($stdout, $stderr) = $client->request({
+ REQUEST_METHOD => 'GET',
+ }, '');
- return ($stdout, $stderr);
+ return ($stdout, $stderr);
}