run_script start_script key2sub xsys xsys_e xqx eml_load tick
have_xapian_compact json_utf8 setup_public_inboxes create_inbox
create_coderepo require_bsd kernel_version check_broken_tmpfs
- quit_waiter_pipe wait_for_eof
+ quit_waiter_pipe wait_for_eof require_git_http_backend
tcp_host_port test_lei lei lei_ok $lei_out $lei_err $lei_opt
test_httpd xbail require_cmd is_xdeeply tail_f
ignore_inline_c_missing no_pollerfd no_coredump cfg_new
skip("git $req+ required (have $cur_ver), skipping $nr tests")
}
+sub require_git_http_backend (;$) {
+ my ($nr) = @_;
+ state $ok = do {
+ require PublicInbox::Git;
+ my $git = PublicInbox::Git::check_git_exe() or plan
+ skip_all => 'nothing in public-inbox works w/o git';
+ my $rdr = { 1 => \my $out, 2 => \my $err };
+ xsys([$git, qw(http-backend)], undef, $rdr);
+ $out =~ /^Status:/ism;
+ };
+ if (!$ok) {
+ my $msg = "`git http-backend' not available";
+ defined($nr) ? skip $msg, $nr : plan skip_all => $msg;
+ }
+ $ok;
+}
+
my %IPv6_VERSION = (
'Net::NNTP' => 3.00,
'Mail::IMAPClient' => 3.40,
use File::Path qw(remove_tree);
use PublicInbox::SHA qw(sha1_hex);
require_mods(qw(json Plack::Builder HTTP::Date HTTP::Status));
+require_git_http_backend;
require_git '1.8.5';
require_cmd 'curl';
require_ok 'PublicInbox::LeiMirror';
use PublicInbox::Eml;
use Socket qw(IPPROTO_TCP SOL_SOCKET);
require_mods(qw(Plack::Util Plack::Builder HTTP::Date HTTP::Status));
+require_git_http_backend;
# FIXME: too much setup
my ($tmpdir, $for_destroy) = tmpdir();
use PublicInbox::Inbox;
require_mods(qw(-httpd lei DBD::SQLite));
require_cmd('curl');
+require_git_http_backend;
use PublicInbox::Spawn qw(which);
require PublicInbox::Msgmap;
my $sock = tcp_server();
my $td;
SKIP: {
+ require_git_http_backend 1;
my $err = "$tmpdir/stderr.log";
my $out = "$tmpdir/stdout.log";
my $alt = "$tmpdir/alt.git";