about summary refs log tree commit homepage
path: root/lib/PublicInbox/TestCommon.pm
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2019-12-22 22:17:39 +0000
committerEric Wong <e@80x24.org>2019-12-24 03:48:12 +0000
commitcd8dd7b08fddc7c2b5f218c3fcaa5dca5f9ad945 (patch)
tree0989e4981be20e2408dda31314da019bd1841647 /lib/PublicInbox/TestCommon.pm
parent9484944697a1bf76d00d84d081e6a7d633074336 (diff)
downloadpublic-inbox-cd8dd7b08fddc7c2b5f218c3fcaa5dca5f9ad945.tar.gz
Xapian upstream is slowly phasing out the XS-based Search::Xapian
in favor of the SWIG-generated "Xapian" package.  While Debian and
both FreeBSD have Search::Xapian, OpenBSD only includes the "Xapian"
binding.

More information about the status of the "Xapian" Perl module here:
https://trac.xapian.org/ticket/523
Diffstat (limited to 'lib/PublicInbox/TestCommon.pm')
-rw-r--r--lib/PublicInbox/TestCommon.pm10
1 files changed, 9 insertions, 1 deletions
diff --git a/lib/PublicInbox/TestCommon.pm b/lib/PublicInbox/TestCommon.pm
index 9680b94c..b0b1f4d9 100644
--- a/lib/PublicInbox/TestCommon.pm
+++ b/lib/PublicInbox/TestCommon.pm
@@ -64,7 +64,15 @@ sub require_mods {
         my $maybe = pop @mods if $mods[-1] =~ /\A[0-9]+\z/;
         my @need;
         for my $mod (@mods) {
-                eval "require $mod";
+                if ($mod eq 'Search::Xapian') {
+                        require PublicInbox::Search;
+                        PublicInbox::Search::load_xapian() and next;
+                } elsif ($mod eq 'Search::Xapian::WritableDatabase') {
+                        require PublicInbox::SearchIdx;
+                        PublicInbox::SearchIdx::load_xapian_writable() and next;
+                } else {
+                        eval "require $mod";
+                }
                 push @need, $mod if $@;
         }
         return unless @need;