-# Copyright (C) 2015-2021 all contributors <meta@public-inbox.org>
+# Copyright (C) all contributors <meta@public-inbox.org>
# License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
# internal APIs used only for tests
run_script start_script key2sub xsys xsys_e xqx eml_load tick
have_xapian_compact json_utf8 setup_public_inboxes create_inbox
tcp_host_port test_lei lei lei_ok $lei_out $lei_err $lei_opt
- test_httpd xbail require_cmd is_xdeeply tail_f);
+ test_httpd xbail require_cmd is_xdeeply tail_f
+ ignore_inline_c_missing);
require Test::More;
my @methods = grep(!/\W/, @Test::More::EXPORT);
eval(join('', map { "*$_=\\&Test::More::$_;" } @methods));
push @mods, qw(Parse::RecDescent DBD::SQLite
Email::Address::XS||Mail::Address);
next;
- } elsif ($mod eq '-nntpd') {
+ } elsif ($mod eq '-nntpd' || $mod eq 'v2') {
push @mods, qw(DBD::SQLite);
next;
}
my @ino;
do {
@ino = grep {
- readlink($_) =~ /\binotify\b/
+ (readlink($_) // '') =~ /\binotify\b/
} glob("/proc/$tail_pid/fd/*");
} while (!@ino && time <= $end and tick);
return if !@ino;
$ok;
}
+sub ignore_inline_c_missing {
+ $_[0] = join('', grep(/\S/, grep(!/compilation aborted/,
+ grep(!/\bInline\b/, split(/^/m, $_[0])))));
+}
+
sub test_lei {
SKIP: {
my ($cb) = pop @_;
delete $ENV{XDG_CACHE_HOME};
$ENV{GIT_COMMITTER_EMAIL} = 'lei@example.com';
$ENV{GIT_COMMITTER_NAME} = 'lei user';
+ $ENV{LANG} = $ENV{LC_ALL} = 'C';
my (undef, $fn, $lineno) = caller(0);
my $t = "$fn:$lineno";
- state $lei_daemon = PublicInbox::Spawn->can('send_cmd4') ||
- eval { require Socket::MsgHdr; 1 };
+ state $lei_daemon = PublicInbox::Spawn->can('send_cmd4') || do {
+ require PublicInbox::Syscall;
+ PublicInbox::Syscall->can('send_cmd4');
+ } || eval { require Socket::MsgHdr; 1 };
unless ($lei_daemon) {
skip('Inline::C unconfigured/missing '.
'(mkdir -p ~/.cache/public-inbox/inline-c) OR Socket::MsgHdr missing',
$env->{$_} or BAIL_OUT "$_ unset";
}
SKIP: {
- require_mods(qw(Plack::Test::ExternalServer), $skip // 1);
+ require_mods(qw(Plack::Test::ExternalServer LWP::UserAgent),
+ $skip // 1);
my $sock = tcp_server() or die;
my ($out, $err) = map { "$env->{TMPDIR}/std$_.log" } qw(out err);
my $cmd = [ qw(-httpd -W0), "--stdout=$out", "--stderr=$err" ];
my $td = start_script($cmd, $env, { 3 => $sock });
my ($h, $p) = tcp_host_port($sock);
local $ENV{PLACK_TEST_EXTERNALSERVER_URI} = "http://$h:$p";
- Plack::Test::ExternalServer::test_psgi(client => $client);
+ my $ua = LWP::UserAgent->new;
+ $ua->max_redirect(0);
+ Plack::Test::ExternalServer::test_psgi(client => $client,
+ ua => $ua);
$td->join('TERM');
open my $fh, '<', $err or BAIL_OUT $!;
my $e = do { local $/; <$fh> };