X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=t%2Fmda_filter_rubylang.t;h=d05eec258ecb23587cf78f733a2c61a67e7b26bb;hb=4eee5af6011cc8cdefb66c9729952c7eff5c0b0b;hp=e971b440def780213a1d83ba505bb616f6cdd944;hpb=6e87113aa054e00a1e0976eea10322ca12ace4cb;p=public-inbox.git diff --git a/t/mda_filter_rubylang.t b/t/mda_filter_rubylang.t index e971b440..d05eec25 100644 --- a/t/mda_filter_rubylang.t +++ b/t/mda_filter_rubylang.t @@ -1,39 +1,33 @@ -# Copyright (C) 2019 all contributors +# Copyright (C) 2019-2021 all contributors # License: AGPL-3.0+ use strict; use warnings; use Test::More; -use File::Temp qw/tempdir/; -use PublicInbox::MIME; +use PublicInbox::Eml; use PublicInbox::Config; -require './t/common.perl'; +use PublicInbox::TestCommon; require_git(2.6); -my @mods = qw(DBD::SQLite Search::Xapian); -foreach my $mod (@mods) { - eval "require $mod"; - plan skip_all => "$mod missing for mda_filter_rubylang.t" if $@; -} - +require_mods(qw(DBD::SQLite Search::Xapian)); use_ok 'PublicInbox::V2Writable'; -my $tmpdir = tempdir('mda-XXXXXX', TMPDIR => 1, CLEANUP => 1); +my ($tmpdir, $for_destroy) = tmpdir(); my $pi_config = "$tmpdir/pi_config"; local $ENV{PI_CONFIG} = $pi_config; local $ENV{PI_EMERGENCY} = "$tmpdir/emergency"; my @cfg = ('git', 'config', "--file=$pi_config"); -is(system(@cfg, 'publicinboxmda.spamcheck', 'none'), 0); +is(xsys(@cfg, 'publicinboxmda.spamcheck', 'none'), 0); for my $v (qw(V1 V2)) { my @warn; - $SIG{__WARN__} = sub { push @warn, @_ }; + local $SIG{__WARN__} = sub { push @warn, @_ }; my $cfgpfx = "publicinbox.$v"; my $inboxdir = "$tmpdir/$v"; my $addr = "test-$v\@example.com"; my $cmd = [ '-init', "-$v", $v, $inboxdir, "http://example.com/$v", $addr ]; ok(run_script($cmd), 'public-inbox-init'); - ok(run_script(['-index', $inboxdir]), 'public-inbox-index'); - is(system(@cfg, "$cfgpfx.filter", 'PublicInbox::Filter::RubyLang'), 0); - is(system(@cfg, "$cfgpfx.altid", + ok(run_script([qw(-index -j0), $inboxdir]), 'public-inbox-index'); + is(xsys(@cfg, "$cfgpfx.filter", 'PublicInbox::Filter::RubyLang'), 0); + is(xsys(@cfg, "$cfgpfx.altid", 'serial:alerts:file=msgmap.sqlite3'), 0); for my $i (1..2) { @@ -50,14 +44,14 @@ something EOF ok(run_script(['-mda'], $env, $opt), 'message delivered'); } - my $config = PublicInbox::Config->new; - my $ibx = $config->lookup_name($v); + my $cfg = PublicInbox::Config->new; + my $ibx = $cfg->lookup_name($v); # make sure all serials are searchable: - my ($tot, $msgs); for my $i (1..2) { - ($tot, $msgs) = $ibx->search->query("alerts:$i"); - is($tot, 1, "got one result for alerts:$i"); + my $mset = $ibx->search->mset("alerts:$i"); + is($mset->size, 1, "got one result for alerts:$i"); + my $msgs = $ibx->search->mset_to_smsg($ibx, $mset); is($msgs->[0]->{mid}, "a.$i\@b.com", "got expected MID for $i"); } is_deeply([], \@warn, 'no warnings');