X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=xt%2Fsolver.t;h=880458fb96689aad3a5263a7d030102c0a821af4;hb=HEAD;hp=d2206b283d139902a221aa2b0867e4bca59acfad;hpb=a27717d1717b6fdf69e9472e8e9f61b2bbaeb5e7;p=public-inbox.git diff --git a/xt/solver.t b/xt/solver.t index d2206b28..1b0af3d8 100644 --- a/xt/solver.t +++ b/xt/solver.t @@ -1,8 +1,7 @@ #!perl -w -# Copyright (C) 2020 all contributors +# Copyright (C) all contributors # License: AGPL-3.0+ -use strict; -use Test::More; +use v5.12; use PublicInbox::TestCommon; use PublicInbox::Config; # this relies on PI_CONFIG // ~/.public-inbox/config my @psgi = qw(HTTP::Request::Common Plack::Test URI::Escape Plack::Builder); @@ -30,30 +29,46 @@ my $todo = { '6aa8857a11/s/?b=protocol.c', '96f1c7f/s/', # TODO: b=contrib/completion/git-completion.bash 'b76f2c0/s/?b=po/zh_CN.po', + 'c2f3bf071ee90b01f2d629921bb04c4f798f02fa/s/', # tag ], }; -my ($ibx, $urls); +my ($ibx_name, $urls, @gone); my $client = sub { my ($cb) = @_; - for (@$urls) { - my $url = "/$ibx/$_"; + for my $u (@$urls) { + my $url = "/$ibx_name/$u"; my $res = $cb->(GET($url)); is($res->code, 200, $url); next if $res->code == 200; - # diag $res->content; diag "$url failed"; + diag $res->content; } }; -while (($ibx, $urls) = each %$todo) { +my $nr = 0; +while (($ibx_name, $urls) = each %$todo) { SKIP: { - if (!$cfg->lookup_name($ibx)) { - skip("$ibx not configured", scalar(@$urls)); + my $ibx = $cfg->lookup_name($ibx_name); + if (!$ibx) { + push @gone, $ibx_name; + skip(qq{[publicinbox "$ibx_name"] not configured}, + scalar(@$urls)); + } + if (!defined($ibx->{coderepo})) { + push @gone, $ibx_name; + skip(qq{publicinbox.$ibx_name.coderepo not configured}, + scalar(@$urls)); } test_psgi($app, $client); + $nr++; } } +delete @$todo{@gone}; +my $env = { PI_CONFIG => PublicInbox::Config->default_file }; +while (($ibx_name, $urls) = each %$todo) { + test_httpd($env, $client, $nr); +} + done_testing(); -1;