X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=t%2Fv2mirror.t;h=86ca895d34aaa130cf05ebfc0973854d82e3e4b7;hb=9bd675d33ad1e49bd2ebe12a1d216216e61380de;hp=eaf9e61d5eb4f29d56ef06884e58c4d17189d247;hpb=fe86054ee1e2d93b19762a34ed1aaebe43635ff0;p=public-inbox.git diff --git a/t/v2mirror.t b/t/v2mirror.t index eaf9e61d..86ca895d 100644 --- a/t/v2mirror.t +++ b/t/v2mirror.t @@ -1,4 +1,4 @@ -# Copyright (C) 2018 all contributors +# Copyright (C) 2018-2019 all contributors # License: AGPL-3.0+ use strict; use warnings; @@ -7,7 +7,7 @@ require './t/common.perl'; require_git(2.6); # Integration tests for HTTP cloning + mirroring -foreach my $mod (qw(Plack::Util Plack::Builder PublicInbox::DS +foreach my $mod (qw(Plack::Util Plack::Builder HTTP::Date HTTP::Status Search::Xapian DBD::SQLite IPC::Run)) { eval "require $mod"; @@ -17,6 +17,7 @@ use File::Temp qw/tempdir/; use IO::Socket; use POSIX qw(dup2); use_ok 'PublicInbox::V2Writable'; +use PublicInbox::InboxWritable; use PublicInbox::MIME; use PublicInbox::Config; # FIXME: too much setup @@ -59,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 ])), @@ -79,11 +74,13 @@ $sock = undef; my @cmd; foreach my $i (0..$epoch_max) { - @cmd = (qw(git clone --mirror -q), "http://$host:$port/v2/$i", + my $sfx = $i == 0 ? '.git' : ''; + @cmd = (qw(git clone --mirror -q), + "http://$host:$port/v2/$i$sfx", "$tmpdir/m/git/$i.git"); - is(system(@cmd), 0, 'cloned OK'); - ok(-d "$tmpdir/m/git/$i.git", 'mirror OK'); + is(system(@cmd), 0, "cloned $i.git"); + ok(-d "$tmpdir/m/git/$i.git", "mirror $i OK"); } @cmd = ("$script-init", '-V2', 'm', "$tmpdir/m", 'http://example.com/m',