diff options
author | Eric Wong <e@80x24.org> | 2021-03-15 12:58:16 +0100 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2021-03-15 16:54:30 -0400 |
commit | 61bbfbf640f5fcdc95438dbad3f27782ab5cabdf (patch) | |
tree | d78f2c66caba9e61939192d763b953a880ca408e /t | |
parent | 14ce66a9924a83eda6cbc8d5328f02353782cf69 (diff) | |
download | public-inbox-61bbfbf640f5fcdc95438dbad3f27782ab5cabdf.tar.gz |
Surprising to me, this is actually significantly faster even though we're starting off with an empty inbox due to -no_fsync being the default.
Diffstat (limited to 't')
-rw-r--r-- | t/inbox_idle.t | 31 |
1 files changed, 13 insertions, 18 deletions
diff --git a/t/inbox_idle.t b/t/inbox_idle.t index 27facfe9..c9df73a1 100644 --- a/t/inbox_idle.t +++ b/t/inbox_idle.t @@ -1,41 +1,35 @@ #!perl -w # Copyright (C) 2020-2021 all contributors <meta@public-inbox.org> # License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt> -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_metadata_once; $sidx->idx_release; # allow watching on lockfile - } + }; + my $obj = InboxIdleTestObj->new; my $pi_cfg = PublicInbox::Config->new(\<<EOF); publicinbox.inbox-idle.inboxdir=$inboxdir publicinbox.inbox-idle.indexlevel=basic -publicinbox.inbox-idle.address=test\@example.com +publicinbox.inbox-idle.address=$ibx->{-primary_address} EOF my $ident = 'whatever'; $pi_cfg->each_inbox(sub { shift->subscribe_unlock($ident, $obj) }); @@ -45,6 +39,7 @@ EOF 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; |