summaryrefslogtreecommitdiffstats
path: root/web/server/h2o/libh2o/misc/p5-Server-Starter/t/11-specified-fd.t
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--web/server/h2o/libh2o/misc/p5-Server-Starter/t/11-specified-fd.t40
1 files changed, 40 insertions, 0 deletions
diff --git a/web/server/h2o/libh2o/misc/p5-Server-Starter/t/11-specified-fd.t b/web/server/h2o/libh2o/misc/p5-Server-Starter/t/11-specified-fd.t
new file mode 100644
index 00000000..7e3b820b
--- /dev/null
+++ b/web/server/h2o/libh2o/misc/p5-Server-Starter/t/11-specified-fd.t
@@ -0,0 +1,40 @@
+use strict;
+use warnings;
+
+use File::Temp ();
+use Test::TCP;
+use Test::More tests => 4;
+
+use Server::Starter qw(start_server);
+
+$SIG{PIPE} = sub {};
+
+test_tcp(
+ server => sub {
+ my $port = shift;
+ start_server(
+ port => "$port=0",
+ exec => [
+ $^X, qw(t/11-specified-fd-server.pl)
+ ],
+ );
+ exit 0;
+ },
+ client => sub {
+ my ($port, $server_pid) = @_;
+ my $buf;
+ #sleep 1;
+ my $sock = IO::Socket::INET->new(
+ PeerAddr => "127.0.0.1:$port",
+ Proto => 'tcp',
+ );
+ ok($sock, 'connect');
+ # check response and get pid
+ is($sock->syswrite("hello"), 5, 'write');
+ ok($sock->sysread($buf, 1048576), 'read');
+ undef $sock;
+ like($buf, qr/^\d+:hello$/, 'read');
+ kill $server_pid;
+ },
+);
+