X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=lib%2FPublicInbox%2FTestCommon.pm;h=ecf7a261b6f485447dce78ca6f10fd74660f4201;hb=23af251dd607c4e75ab1e68063f2c885c48cc035;hp=fb0d5a4e6ededaabcff6f78385b6e927fdac95bb;hpb=b05caf7df04d7f8879a46e5c03693570351e2577;p=public-inbox.git diff --git a/lib/PublicInbox/TestCommon.pm b/lib/PublicInbox/TestCommon.pm index fb0d5a4e..ecf7a261 100644 --- a/lib/PublicInbox/TestCommon.pm +++ b/lib/PublicInbox/TestCommon.pm @@ -1,4 +1,4 @@ -# Copyright (C) 2015-2021 all contributors +# Copyright (C) all contributors # License: AGPL-3.0+ # internal APIs used only for tests @@ -19,7 +19,8 @@ BEGIN { 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)); @@ -377,7 +378,7 @@ sub wait_for_tail { 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; @@ -547,6 +548,11 @@ sub is_xdeeply ($$$) { $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 @_; @@ -556,18 +562,25 @@ SKIP: { require_git(2.6, 1) or skip('git 2.6+ required for lei test', 2); my $mods = $test_opt->{mods} // [ 'lei' ]; require_mods(@$mods, 2); + + # set PERL_INLINE_DIRECTORY before clobbering XDG_CACHE_HOME + require PublicInbox::Spawn; require PublicInbox::Config; require File::Path; + local %ENV = %ENV; delete $ENV{XDG_DATA_HOME}; delete $ENV{XDG_CONFIG_HOME}; + 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"; - require PublicInbox::Spawn; - 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', @@ -674,8 +687,10 @@ sub create_inbox ($$;@) { my %opt = @_; require PublicInbox::Lock; require PublicInbox::InboxWritable; + require PublicInbox::Import; my ($base) = ($0 =~ m!\b([^/]+)\.[^\.]+\z!); - my $dir = "t/data-gen/$base.$ident"; + my ($db) = (PublicInbox::Import::default_branch() =~ m!([^/]+)\z!); + my $dir = "t/data-gen/$base.$ident-$db"; my $new = !-d $dir; if ($new) { mkdir $dir; # may race