]> Sergey Matveev's repositories - public-inbox.git/commitdiff
tests: common tcp_server and unix_server helpers
authorEric Wong <e@80x24.org>
Sun, 30 Jun 2019 22:19:38 +0000 (22:19 +0000)
committerEric Wong <e@80x24.org>
Sun, 30 Jun 2019 22:25:23 +0000 (22:25 +0000)
IO::Socket:*->new options are verbose and we can save
a bunch of code by putting this into t/common.perl,
since the related spawn_listener stuff is already there.

t/common.perl
t/git-http-backend.t
t/httpd-corner.t
t/httpd-https.t
t/httpd.t
t/nntpd-tls.t
t/nntpd.t
t/perf-nntpd.t
t/v2mirror.t
t/v2writable.t
t/www_listing.t

index 5a898e32fceea4c1d1d0f1f55a240257ea3d9f31..3f05b68a368403d7acecac6b9b83ab0b7a87aa12 100644 (file)
@@ -17,6 +17,24 @@ sub stream_to_string {
        $str;
 }
 
+sub tcp_server () {
+       IO::Socket::INET->new(
+               LocalAddr => '127.0.0.1',
+               ReuseAddr => 1,
+               Proto => 'tcp',
+               Type => Socket::SOCK_STREAM(),
+               Listen => 1024,
+       )
+}
+
+sub unix_server ($) {
+       IO::Socket::UNIX->new(
+               Listen => 1024,
+               Type => Socket::SOCK_STREAM(),
+               Local => $_[0],
+       )
+}
+
 sub spawn_listener {
        my ($env, $cmd, $socks) = @_;
        my $pid = fork;
index fc2d5462db345ee9638f59833b38b7737c5dd4c8..946cd86aa36fa09a497d609e23b7c1d202264d3c 100644 (file)
@@ -24,14 +24,7 @@ my $tmpdir = tempdir('pi-git-http-backend-XXXXXX', TMPDIR => 1, CLEANUP => 1);
 my $err = "$tmpdir/stderr.log";
 my $out = "$tmpdir/stdout.log";
 my $httpd = 'blib/script/public-inbox-httpd';
-my %opts = (
-       LocalAddr => '127.0.0.1',
-       ReuseAddr => 1,
-       Proto => 'tcp',
-       Type => SOCK_STREAM,
-       Listen => 1024,
-);
-my $sock = IO::Socket::INET->new(%opts);
+my $sock = tcp_server();
 my $host = $sock->sockhost;
 my $port = $sock->sockport;
 my $pid;
index 1cfc2565c09fd3c3aa7056cd50473ffef5f77ce8..5efb9d14e80a50f45b5b3326ee90d391241a4e2e 100644 (file)
@@ -28,14 +28,7 @@ my $err = "$tmpdir/stderr.log";
 my $out = "$tmpdir/stdout.log";
 my $httpd = 'blib/script/public-inbox-httpd';
 my $psgi = "./t/httpd-corner.psgi";
-my %opts = (
-       LocalAddr => '127.0.0.1',
-       ReuseAddr => 1,
-       Proto => 'tcp',
-       Type => SOCK_STREAM,
-       Listen => 1024,
-);
-my $sock = IO::Socket::INET->new(%opts);
+my $sock = tcp_server();
 
 # Make sure we don't clobber socket options set by systemd or similar
 # using socket activation:
@@ -56,11 +49,7 @@ if ($^O eq 'linux') {
 }
 
 my $upath = "$tmpdir/s";
-my $unix = IO::Socket::UNIX->new(
-       Listen => 1024,
-       Type => SOCK_STREAM,
-       Local => $upath
-);
+my $unix = unix_server($upath);
 ok($unix, 'UNIX socket created');
 my $pid;
 END { kill 'TERM', $pid if defined $pid };
index f6b9806a52c8376c52244bfeaf467718ccecd8f4..939669493254ef990fd2348fc2ec9c30a6a18cb4 100644 (file)
@@ -24,14 +24,7 @@ my $tmpdir = tempdir('pi-httpd-https-XXXXXX', TMPDIR => 1, CLEANUP => 1);
 my $err = "$tmpdir/stderr.log";
 my $out = "$tmpdir/stdout.log";
 my $httpd = 'blib/script/public-inbox-httpd';
-my %opts = (
-       LocalAddr => '127.0.0.1',
-       ReuseAddr => 1,
-       Proto => 'tcp',
-       Type => SOCK_STREAM,
-       Listen => 1024,
-);
-my $https = IO::Socket::INET->new(%opts);
+my $https = tcp_server();
 my ($pid, $tail_pid);
 END {
        foreach ($pid, $tail_pid) {
index e085c4b9f502b2bbdae5828ff379ddb332fcbfd9..e0a2bf44164a0f79d6be8b6a34471337645352b0 100644 (file)
--- a/t/httpd.t
+++ b/t/httpd.t
@@ -24,15 +24,7 @@ my $addr = $group . '@example.com';
 my $cfgpfx = "publicinbox.$group";
 my $httpd = 'blib/script/public-inbox-httpd';
 my $init = 'blib/script/public-inbox-init';
-
-my %opts = (
-       LocalAddr => '127.0.0.1',
-       ReuseAddr => 1,
-       Proto => 'tcp',
-       Type => SOCK_STREAM,
-       Listen => 1024,
-);
-my $sock = IO::Socket::INET->new(%opts);
+my $sock = tcp_server();
 my $pid;
 use_ok 'PublicInbox::Git';
 use_ok 'PublicInbox::Import';
index e3ecdd4fa0ecd4d83c4122b17ab31ff17a5e0afe..82b63f3e443cee55820b614cf7442a94b4655600 100644 (file)
@@ -37,15 +37,8 @@ my $pi_config = "$tmpdir/pi_config";
 my $group = 'test-nntpd-tls';
 my $addr = $group . '@example.com';
 my $nntpd = 'blib/script/public-inbox-nntpd';
-my %opts = (
-       LocalAddr => '127.0.0.1',
-       ReuseAddr => 1,
-       Proto => 'tcp',
-       Type => SOCK_STREAM,
-       Listen => 1024,
-);
-my $starttls = IO::Socket::INET->new(%opts);
-my $nntps = IO::Socket::INET->new(%opts);
+my $starttls = tcp_server();
+my $nntps = tcp_server();
 my ($pid, $tail_pid);
 END {
        foreach ($pid, $tail_pid) {
index bf5bb883f728dcb8f500ff67b831962e8b40c174..0e59de07ed5315166557258bcdf804469d2d50d6 100644 (file)
--- a/t/nntpd.t
+++ b/t/nntpd.t
@@ -36,14 +36,8 @@ SKIP: {
        use_ok 'PublicInbox::V2Writable';
 }
 
-my %opts = (
-       LocalAddr => '127.0.0.1',
-       ReuseAddr => 1,
-       Proto => 'tcp',
-       Type => SOCK_STREAM,
-       Listen => 1024,
-);
-my $sock = IO::Socket::INET->new(%opts);
+my %opts;
+my $sock = tcp_server();
 my $pid;
 my $len;
 END { kill 'TERM', $pid if defined $pid };
index ce3cc409b138e9ff751bea1f0f9955589f65ae70..29d6aaed6df2b62b3f04ca13eb9a14cc66329bdf 100644 (file)
@@ -44,14 +44,7 @@ if (($ENV{NNTP_TEST_URL} || '') =~ m!\Anntp://([^/]+)/([^/]+)\z!) {
                close $fh or die "close($pi_config): $!";
        }
 
-       %opts = (
-               LocalAddr => '127.0.0.1',
-               ReuseAddr => 1,
-               Proto => 'tcp',
-               Listen => 1024,
-       );
-       my $sock = IO::Socket::INET->new(%opts);
-
+       my $sock = tcp_server();
        ok($sock, 'sock created');
        my $cmd = [ $nntpd, '-W0' ];
        $pid = spawn_listener({ PI_CONFIG => $pi_config }, $cmd, [$sock]);
index c31dcd5bf7cdc2ed6c8df36ab89656eb70f8d7d2..9bc32f3003c375a74a80ad2d2f45c836b72e6b83 100644 (file)
@@ -60,17 +60,11 @@ my $epoch_max = $v2w->{epoch_max};
 ok($epoch_max > 0, "multiple epochs");
 $v2w->done;
 
-my %opts = (
-       LocalAddr => '127.0.0.1',
-       ReuseAddr => 1,
-       Proto => 'tcp',
-       Listen => 1024,
-);
 my ($sock, $pid);
 END { kill 'TERM', $pid if defined $pid };
 
 $! = 0;
-$sock = IO::Socket::INET->new(%opts);
+$sock = tcp_server();
 ok($sock, 'sock created');
 my $cmd = [ "$script-httpd", "--stdout=$tmpdir/out", "--stderr=$tmpdir/err" ];
 ok(defined($pid = spawn_listener(undef, $cmd, [ $sock ])),
index 8f32fbe5d9c42e9abfd31e33ce70200c46ca03b6..5406fd1b49e35f56c4cc24e72f91ab207ceff008 100644 (file)
@@ -134,13 +134,6 @@ if ('ensure git configs are correct') {
        use IO::Socket::INET;
        my $err = "$mainrepo/stderr.log";
        my $out = "$mainrepo/stdout.log";
-       my %opts = (
-               LocalAddr => '127.0.0.1',
-               ReuseAddr => 1,
-               Proto => 'tcp',
-               Type => SOCK_STREAM,
-               Listen => 1024,
-       );
        my $group = 'inbox.comp.test.v2writable';
        my $pi_config = "$mainrepo/pi_config";
        open my $fh, '>', $pi_config or die "open: $!\n";
@@ -153,7 +146,7 @@ if ('ensure git configs are correct') {
 EOF
        ;
        close $fh or die "close: $!\n";
-       my $sock = IO::Socket::INET->new(%opts);
+       my $sock = tcp_server();
        ok($sock, 'sock created');
        my $pid;
        my $len;
index e5b797db7f9582c954702ac69d008fa4c453ae8a..a5d81f38c8f5975de39bd7ea4ab22adfb9c4f5df 100644 (file)
@@ -73,14 +73,7 @@ SKIP: {
        my $v2 = "$tmpdir/v2";
        my $httpd = 'blib/script/public-inbox-httpd';
        use IO::Socket::INET;
-       my %opts = (
-               LocalAddr => '127.0.0.1',
-               ReuseAddr => 1,
-               Proto => 'tcp',
-               Type => SOCK_STREAM,
-               Listen => 1024,
-       );
-       my $sock = IO::Socket::INET->new(%opts);
+       my $sock = tcp_server();
        ok($sock, 'sock created');
        my ($host, $port) = ($sock->sockhost, $sock->sockport);
        my @clone = qw(git clone -q -s --bare);