X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=t%2Fwatch_filter_rubylang.t;h=b4540660a79135659821c34276978d9427271b69;hb=95bdac7f09c69036efed537a4d03d5bdd2ae4eb6;hp=325655561a5c8389dcf8736b771a7ca5bdbdf8a2;hpb=97c6b564fd79e47ae6fca8de273c2aeaf2f5bea5;p=public-inbox.git diff --git a/t/watch_filter_rubylang.t b/t/watch_filter_rubylang.t index 32565556..b4540660 100644 --- a/t/watch_filter_rubylang.t +++ b/t/watch_filter_rubylang.t @@ -1,36 +1,40 @@ -# Copyright (C) 2019 all contributors +# Copyright (C) 2019-2020 all contributors # License: AGPL-3.0+ use strict; use warnings; +use PublicInbox::TestCommon; use Test::More; -use File::Temp qw/tempdir/; use PublicInbox::MIME; use PublicInbox::Config; -my @mods = qw(Filesys::Notify::Simple DBD::SQLite Search::Xapian); -foreach my $mod (@mods) { - eval "require $mod"; - plan skip_all => "$mod missing for watch_filter_rubylang_v2.t" if $@; -} - -use_ok 'PublicInbox::V2Writable'; +require_mods(qw(Filesys::Notify::Simple DBD::SQLite Search::Xapian)); use_ok 'PublicInbox::WatchMaildir'; use_ok 'PublicInbox::Emergency'; -my $tmpdir = tempdir('watch-XXXXXX', TMPDIR => 1, CLEANUP => 1); +my ($tmpdir, $for_destroy) = tmpdir(); local $ENV{PI_CONFIG} = "$tmpdir/pi_config"; -for my $v (qw(V1 V2)) { +my @v = qw(V1); +SKIP: { + if (require_git(2.6, 1)) { + use_ok 'PublicInbox::V2Writable'; + push @v, 'V2'; + } else { + skip 'git 2.6+ needed for V2', 40; + } +} + +for my $v (@v) { my @warn; $SIG{__WARN__} = sub { push @warn, @_ }; my $cfgpfx = "publicinbox.$v"; - my $mainrepo = "$tmpdir/$v"; + my $inboxdir = "$tmpdir/$v"; my $maildir = "$tmpdir/md-$v"; my $spamdir = "$tmpdir/spam-$v"; my $addr = "test-$v\@example.com"; - my @cmd = ('blib/script/public-inbox-init', "-$v", $v, $mainrepo, + my @cmd = ('-init', "-$v", $v, $inboxdir, "http://example.com/$v", $addr); - is(system(@cmd), 0, 'public-inbox init OK'); + ok(run_script(\@cmd), 'public-inbox init OK'); if ($v eq 'V1') { - is(system('blib/script/public-inbox-index', $mainrepo), 0); + ok(run_script(['-index', $inboxdir]), 'v1 indexed'); } PublicInbox::Emergency->new($spamdir); @@ -60,15 +64,15 @@ spam EOF PublicInbox::Emergency->new($maildir)->prepare(\"$spam"); - my %orig = ( - "$cfgpfx.address" => $addr, - "$cfgpfx.mainrepo" => $mainrepo, - "$cfgpfx.watch" => "maildir:$maildir", - "$cfgpfx.filter" => 'PublicInbox::Filter::RubyLang', - "$cfgpfx.altid" => 'serial:alerts:file=msgmap.sqlite3', - "publicinboxwatch.watchspam" => "maildir:$spamdir", - ); - my $config = PublicInbox::Config->new({%orig}); + my $orig = <new(\$orig); my $ibx = $config->lookup_name($v); ok($ibx, 'found inbox by name'); @@ -98,7 +102,7 @@ EOF } $w->scan('full'); - $config = PublicInbox::Config->new({%orig}); + $config = PublicInbox::Config->new(\$orig); $ibx = $config->lookup_name($v); ($tot, undef) = $ibx->search->reopen->query('b:spam'); is($tot, 0, 'spam removed');