X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=lib%2FPublicInbox%2FTestCommon.pm;h=299b9c6a830833966df288687270d27ae95e1b49;hb=0d38f65c490466837ae091afa7a7b6f59d04ce7c;hp=b03e93e0f5b8e6fa96708467f210bf0167b54055;hpb=a3e57ebf3192885b1928de33c4e07b88f724b052;p=public-inbox.git diff --git a/lib/PublicInbox/TestCommon.pm b/lib/PublicInbox/TestCommon.pm index b03e93e0..299b9c6a 100644 --- a/lib/PublicInbox/TestCommon.pm +++ b/lib/PublicInbox/TestCommon.pm @@ -10,7 +10,8 @@ use Fcntl qw(FD_CLOEXEC F_SETFD F_GETFD :seek); use POSIX qw(dup2); use IO::Socket::INET; our @EXPORT = qw(tmpdir tcp_server tcp_connect require_git require_mods - run_script start_script key2sub xsys xqx eml_load tick); + run_script start_script key2sub xsys xqx eml_load tick + have_xapian_compact); sub eml_load ($) { my ($path, $cb) = @_; @@ -158,7 +159,7 @@ sub _undo_redirects ($) { # The default is 2. our $run_script_exit_code; sub RUN_SCRIPT_EXIT () { "RUN_SCRIPT_EXIT\n" }; -sub run_script_exit (;$) { +sub run_script_exit { $run_script_exit_code = $_[0] // 0; die RUN_SCRIPT_EXIT; } @@ -180,7 +181,7 @@ package $pkg; use strict; use subs qw(exit); -*exit = *PublicInbox::TestCommon::run_script_exit; +*exit = \\&PublicInbox::TestCommon::run_script_exit; sub main { # the below "line" directive is a magic comment, see perlsyn(1) manpage # line 1 "$f" @@ -397,6 +398,12 @@ sub start_script { PublicInboxTestProcess->new($pid, $tail_pid); } +sub have_xapian_compact () { + require PublicInbox::Spawn; + # $ENV{XAPIAN_COMPACT} is used by PublicInbox/Xapcmd.pm, too + PublicInbox::Spawn::which($ENV{XAPIAN_COMPACT} || 'xapian-compact'); +} + package PublicInboxTestProcess; use strict;