X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=t%2Fkqnotify.t;h=902ce0f1616f8e58ebe29541f9803d71ba90c24d;hb=2bc26fececd03705c68c1968f95a2d199bafec29;hp=b3414b8ae3381f592c52b7d25495f0a47985ecf4;hpb=5808636263d72b635a46100a7e7037074dad8f75;p=public-inbox.git diff --git a/t/kqnotify.t b/t/kqnotify.t index b3414b8a..902ce0f1 100644 --- a/t/kqnotify.t +++ b/t/kqnotify.t @@ -1,5 +1,5 @@ #!perl -w -# Copyright (C) 2020 all contributors +# Copyright (C) 2020-2021 all contributors # License: AGPL-3.0+ # # Ensure KQNotify can pick up rename(2) and link(2) operations @@ -17,25 +17,21 @@ close $fh or BAIL_OUT "close: $!"; my $kqn = PublicInbox::KQNotify->new; my $mask = PublicInbox::KQNotify::MOVED_TO_OR_CREATE(); -my $hit = []; -my $cb = sub { push @$hit, map { $_->fullname } @_ }; -my $w = $kqn->watch("$tmpdir/new", $mask, $cb); +my $w = $kqn->watch("$tmpdir/new", $mask); rename("$tmpdir/tst", "$tmpdir/new/tst") or BAIL_OUT "rename: $!"; -$kqn->poll; +my $hit = [ map { $_->fullname } $kqn->read ]; is_deeply($hit, ["$tmpdir/new/tst"], 'rename(2) detected (via NOTE_EXTEND)'); -@$hit = (); open $fh, '>', "$tmpdir/tst" or BAIL_OUT "open: $!"; close $fh or BAIL_OUT "close: $!"; link("$tmpdir/tst", "$tmpdir/new/link") or BAIL_OUT "link: $!"; -$kqn->poll; +$hit = [ grep m!/link$!, map { $_->fullname } $kqn->read ]; is_deeply($hit, ["$tmpdir/new/link"], 'link(2) detected (via NOTE_WRITE)'); $w->cancel; -@$hit = (); link("$tmpdir/new/tst", "$tmpdir/new/link2") or BAIL_OUT "link: $!"; -$kqn->poll; +$hit = [ map { $_->fullname } $kqn->read ]; is_deeply($hit, [], 'link(2) not detected after cancel'); done_testing;