]> git.ipfire.org Git - thirdparty/public-inbox.git/commitdiff
xap_helper: allow PI_NO_CXX to disable C++ in more places
authorEric Wong <e@80x24.org>
Sun, 26 Nov 2023 02:11:02 +0000 (02:11 +0000)
committerEric Wong <e@80x24.org>
Sun, 26 Nov 2023 19:34:55 +0000 (19:34 +0000)
This also reduces repetition in the setup code.

lib/PublicInbox/XapClient.pm
lib/PublicInbox/XapHelperCxx.pm
t/xap_helper.t

index 1f9ddcccff665e14650f1961642f70ca53da2f84..4dcbbe5dd1454b1e802121fe88f4c010a5d96faf 100644 (file)
@@ -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) };
index b1deb66548c8f01442f54a1bf662142a6ae256ee..f421c7bcfd77676e1e65832ce9bb9442675a2cde 100644 (file)
@@ -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}) {
index 02e5ec7d303d174c427e2bef6405c5ffdfeca1c5..e3abedede77fd8ee97823671c26a6966f798b4e4 100644 (file)
@@ -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');