X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=t%2Finbox_idle.t;h=51379764f2703882232e0676c09a39208c7c71eb;hb=325fbe26c3e7731eb53bea7f2ce2627c8828e0d8;hp=61287200d9bbe65f493c1b66ad50befa23c76355;hpb=5ce7e26b1d7efc2fb1bb5310a756e7c873145246;p=public-inbox.git
diff --git a/t/inbox_idle.t b/t/inbox_idle.t
index 61287200..51379764 100644
--- a/t/inbox_idle.t
+++ b/t/inbox_idle.t
@@ -1,59 +1,52 @@
#!perl -w
-# Copyright (C) 2020 all contributors
+# Copyright (C) 2020-2021 all contributors
# License: AGPL-3.0+
-use Test::More;
+use strict;
+use v5.10.1;
use PublicInbox::TestCommon;
use PublicInbox::Config;
require_git 2.6;
require_mods(qw(DBD::SQLite));
require PublicInbox::SearchIdx;
use_ok 'PublicInbox::InboxIdle';
-use PublicInbox::InboxWritable;
my ($tmpdir, $for_destroy) = tmpdir();
for my $V (1, 2) {
my $inboxdir = "$tmpdir/$V";
- mkdir $inboxdir or BAIL_OUT("mkdir: $!");
- my %opt = (
- inboxdir => $inboxdir,
- name => 'inbox-idle',
- version => $V,
- -primary_address => 'test@example.com',
- indexlevel => 'basic',
- );
- my $ibx = PublicInbox::Inbox->new({ %opt });
- $ibx = PublicInbox::InboxWritable->new($ibx);
- my $obj = InboxIdleTestObj->new;
- $ibx->init_inbox(0);
- my $im = $ibx->importer(0);
- if ($V == 1) {
+ my $ibx = create_inbox "idle$V", tmpdir => $inboxdir, version => $V,
+ indexlevel => 'basic', -no_gc => 1, sub {
+ my ($im, $ibx) = @_; # capture
+ $im->done;
+ $ibx->init_inbox(0);
+ $_[0] = undef;
+ return if $V != 1;
my $sidx = PublicInbox::SearchIdx->new($ibx, 1);
$sidx->idx_acquire;
- $sidx->set_indexlevel;
+ $sidx->set_metadata_once;
$sidx->idx_release; # allow watching on lockfile
- }
- my $pi_config = PublicInbox::Config->new(\<new;
+ my $pi_cfg = PublicInbox::Config->new(\<{-primary_address}
EOF
my $ident = 'whatever';
- $pi_config->each_inbox(sub { shift->subscribe_unlock($ident, $obj) });
- my $ii = PublicInbox::InboxIdle->new($pi_config);
+ $pi_cfg->each_inbox(sub { shift->subscribe_unlock($ident, $obj) });
+ my $ii = PublicInbox::InboxIdle->new($pi_cfg);
ok($ii, 'InboxIdle created');
SKIP: {
skip('inotify or kqueue missing', 1) unless $ii->{sock};
ok(fileno($ii->{sock}) >= 0, 'fileno() gave valid FD');
}
+ my $im = $ibx->importer(0);
ok($im->add(eml_load('t/utf8.eml')), "$V added");
$im->done;
- PublicInbox::SearchIdx->new($ibx)->index_sync if $V == 1;
$ii->event_step;
is(scalar @{$obj->{called}}, 1, 'called on unlock');
- $pi_config->each_inbox(sub { shift->unsubscribe_unlock($ident) });
+ $pi_cfg->each_inbox(sub { shift->unsubscribe_unlock($ident) });
ok($im->add(eml_load('t/data/0001.patch')), "$V added #2");
$im->done;
- PublicInbox::SearchIdx->new($ibx)->index_sync if $V == 1;
$ii->event_step;
is(scalar @{$obj->{called}}, 1, 'not called when unsubbed');
$ii->close;