about summary refs log tree commit homepage
diff options
context:
space:
mode:
-rw-r--r--lib/PublicInbox/XapClient.pm4
-rw-r--r--lib/PublicInbox/XapHelperCxx.pm1
-rw-r--r--t/xap_helper.t2
3 files changed, 3 insertions, 4 deletions
diff --git a/lib/PublicInbox/XapClient.pm b/lib/PublicInbox/XapClient.pm
index 1f9ddccc..4dcbbe5d 100644
--- a/lib/PublicInbox/XapClient.pm
+++ b/lib/PublicInbox/XapClient.pm
@@ -28,12 +28,10 @@ sub mkreq {
 sub start_helper {
         my @argv = @_;
         socketpair(my $sock, my $in, AF_UNIX, SOCK_SEQPACKET, 0);
-        require PublicInbox::XapHelperCxx;
         my $cls = 'PublicInbox::XapHelperCxx';
         my $env;
-        my $cmd = eval { PublicInbox::XapHelperCxx::cmd() };
+        my $cmd = eval "require $cls; ${cls}::cmd()";
         if ($@) { # fall back to Perl + XS|SWIG
-                require PublicInbox::XapHelper;
                 $cls = 'PublicInbox::XapHelper';
                 # ensure the child process has the same @INC we do:
                 $env = { PERL5LIB => join(':', @INC) };
diff --git a/lib/PublicInbox/XapHelperCxx.pm b/lib/PublicInbox/XapHelperCxx.pm
index b1deb665..f421c7bc 100644
--- a/lib/PublicInbox/XapHelperCxx.pm
+++ b/lib/PublicInbox/XapHelperCxx.pm
@@ -110,6 +110,7 @@ sub check_build () {
 
 # returns spawn arg
 sub cmd {
+        die 'PI_NO_CXX set' if $ENV{PI_NO_CXX};
         check_build();
         my @cmd;
         if (my $v = $ENV{VALGRIND}) {
diff --git a/t/xap_helper.t b/t/xap_helper.t
index 02e5ec7d..e3abeded 100644
--- a/t/xap_helper.t
+++ b/t/xap_helper.t
@@ -149,7 +149,7 @@ unless ($ENV{TEST_XH_CXX_ONLY}) {
 SKIP: {
         require PublicInbox::XapHelperCxx;
         my $cmd = eval { PublicInbox::XapHelperCxx::cmd() };
-        skip "XapHelperCxx build: $@", 1 if $@ || $ENV{PI_NO_CXX};
+        skip "XapHelperCxx build: $@", 1 if $@;
 
         @NO_CXX = $ENV{TEST_XH_CXX_ONLY} ? (0) : (0, 1);
         my $ar = $test->(@$cmd, '-j0');