]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/TestCommon.pm
spawn: allow passing GLOB handles for redirects
[public-inbox.git] / lib / PublicInbox / TestCommon.pm
index 9680b94c2821ea8c5aee8902610d175b2f51eda2..532cbee676b2ac5b5184ddf24df2ed417c757bf0 100644 (file)
@@ -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;
@@ -186,7 +194,7 @@ sub run_script ($;$$) {
                next unless ref($redir);
                open my $fh, '+>', undef or die "open: $!";
                $fhref->[$fd] = $fh;
-               $spawn_opt->{$fd} = fileno($fh);
+               $spawn_opt->{$fd} = $fh;
                next if $fd > 0;
                $fh->autoflush(1);
                print $fh $$redir or die "print: $!";