From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: X-Spam-Status: No, score=-4.0 required=3.0 tests=ALL_TRUSTED,BAYES_00 shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id 718271F8C7 for ; Thu, 2 Sep 2021 22:36:47 +0000 (UTC) From: Eric Wong To: meta@public-inbox.org Subject: [PATCH 1/2] t/lei-auto-watch: improve test reliability Date: Thu, 2 Sep 2021 22:36:46 +0000 Message-Id: <20210902223647.6515-2-e@80x24.org> In-Reply-To: <20210902223647.6515-1-e@80x24.org> References: <20210902223647.6515-1-e@80x24.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit List-Id: On slower systems, even a 100ms delay may not be enough; so loop and retry in hopes of an early exit for faster systems. --- t/lei-auto-watch.t | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/t/lei-auto-watch.t b/t/lei-auto-watch.t index 146402a6..3b0c1b10 100644 --- a/t/lei-auto-watch.t +++ b/t/lei-auto-watch.t @@ -4,9 +4,8 @@ use strict; use v5.10.1; use PublicInbox::TestCommon; use File::Basename qw(basename); my ($ro_home, $cfg_path) = setup_public_inboxes; -my $tick = 2.1; -my $have_fast_inotify = eval { require Linux::Inotify2; $tick = 0.1 } || - eval { require IO::KQueue; $tick = 0.5 }; +my $have_fast_inotify = eval { require Linux::Inotify2 } || + eval { require IO::KQueue }; $have_fast_inotify or diag("$0 IO::KQueue or Linux::Inotify2 missing, test will be slow"); @@ -31,9 +30,13 @@ test_lei(sub { lei_ok qw(add-watch), $x; my $dst = $x[0] . 'S'; rename($x[0], $dst) or xbail "rename($x[0], $dst): $!"; - tick($tick); # wait for inotify or kevent + my $ys = "$y[0]S"; + for (0..50) { + last if -f $ys; + tick; # wait for inotify or kevent + } my @y2 = glob("$y/*/*"); - is_deeply(\@y2, [ "$y[0]S" ], "`seen' kw propagated to `y' dir"); + is_deeply(\@y2, [ $ys ], "`seen' kw propagated to `y' dir"); lei_ok qw(note-event done); lei_ok qw(inspect), "blob:$oid"; $ins = json_utf8->decode($lei_out);