X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=t%2Fmda_filter_rubylang.t;h=d05eec258ecb23587cf78f733a2c61a67e7b26bb;hb=4eee5af6011cc8cdefb66c9729952c7eff5c0b0b;hp=583a139f3b342ee7a6b55d85ae95c3563c327313;hpb=081a425975a71c98d2a872ec592e0987e87bec7f;p=public-inbox.git diff --git a/t/mda_filter_rubylang.t b/t/mda_filter_rubylang.t index 583a139f..d05eec25 100644 --- a/t/mda_filter_rubylang.t +++ b/t/mda_filter_rubylang.t @@ -1,43 +1,38 @@ -# 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; -my @mods = qw(DBD::SQLite Search::Xapian IPC::Run); -foreach my $mod (@mods) { - eval "require $mod"; - plan skip_all => "$mod missing for mda_filter_rubylang.t" if $@; -} - +use PublicInbox::TestCommon; +require_git(2.6); +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 $mda = 'blib/script/public-inbox-mda'; 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 $mainrepo = "$tmpdir/$v"; + my $inboxdir = "$tmpdir/$v"; my $addr = "test-$v\@example.com"; - my @cmd = ('blib/script/public-inbox-init', "-$v", $v, $mainrepo, - "http://example.com/$v", $addr); - is(system(@cmd), 0, 'public-inbox init OK'); - is(system('blib/script/public-inbox-index', $mainrepo), 0); - is(system(@cfg, "$cfgpfx.filter", 'PublicInbox::Filter::RubyLang'), 0); - is(system(@cfg, "$cfgpfx.altid", + my $cmd = [ '-init', "-$v", $v, $inboxdir, + "http://example.com/$v", $addr ]; + ok(run_script($cmd), 'public-inbox-init'); + 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) { - local $ENV{ORIGINAL_RECIPIENT} = $addr; - my $msg = < $addr }; + my $opt = { 0 => \(<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');