]> Sergey Matveev's repositories - public-inbox.git/commitdiff
tests: replace select/usleep calls with tick()
authorEric Wong <e@80x24.org>
Mon, 12 Dec 2022 04:22:00 +0000 (04:22 +0000)
committerEric Wong <e@80x24.org>
Mon, 12 Dec 2022 20:57:45 +0000 (20:57 +0000)
This makes it easier to identify places in tests which cause
unnecessary slowdowns doing busy waits.

t/cmd_ipc.t
t/httpd-corner.t
t/httpd-unix.t
t/nntpd.t

index 75697a1539e3e8b2b80bb4d1cfa80d685e7d57d5..cd76d5e896d160a015e19a9f9e119bfa0ffaa188 100644 (file)
@@ -10,7 +10,6 @@ pipe(my ($r, $w)) or BAIL_OUT;
 my ($send, $recv);
 require_ok 'PublicInbox::Spawn';
 my $SOCK_SEQPACKET = eval { Socket::SOCK_SEQPACKET() } // undef;
-use Time::HiRes qw(usleep);
 
 my $do_test = sub { SKIP: {
        my ($type, $flag, $desc) = @_;
@@ -61,7 +60,7 @@ my $do_test = sub { SKIP: {
                        if ($pid == 0) {
                                # need to loop since Perl signals are racy
                                # (the interpreter doesn't self-pipe)
-                               while (usleep(1000)) {
+                               while (tick(0.01)) {
                                        kill 'ALRM', $tgt;
                                }
                        }
index e16e8dc87364db2de975b1edeefc49ed04a96db9..88820270d4f97100cd3f66f931529ccdee88e446 100644 (file)
@@ -320,7 +320,7 @@ sub conn_for {
        $spawn_httpd->('-W0');
 }
 
-sub delay { select(undef, undef, undef, shift || rand(0.02)) }
+sub delay { tick(shift || rand(0.02)) }
 
 my $str = 'abcdefghijklmnopqrstuvwxyz';
 my $len = length $str;
index fe4a21616373a682d71020a6be26e7b10b6f76fe..e915ea2c66dd3c707c0690b5c148018e1cff7e8b 100644 (file)
@@ -1,8 +1,8 @@
-# Copyright (C) 2016-2021 all contributors <meta@public-inbox.org>
+#!perl -w
+# Copyright (C) all contributors <meta@public-inbox.org>
 # License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
 # Tests for binding Unix domain sockets
 use strict;
-use warnings;
 use Test::More;
 use PublicInbox::TestCommon;
 use Errno qw(EADDRINUSE);
@@ -36,7 +36,7 @@ $spawn_httpd->("-l$unix", '-W0');
 my %o = (Peer => $unix, Type => SOCK_STREAM);
 for (1..1000) {
        last if -S $unix && IO::Socket::UNIX->new(%o);
-       select undef, undef, undef, 0.02
+       tick(0.02);
 }
 
 ok(-S $unix, 'UNIX socket was bound by -httpd');
@@ -89,7 +89,7 @@ sub delay_until {
        my $end = time + 30;
        do {
                return if $cond->();
-               select undef, undef, undef, 0.012;
+               tick(0.012);
        } until (time > $end);
        Carp::confess('condition failed');
 }
index 058bd796e8fb28979ac46b76d9dfb3a0b9c44f69..30233ce0c3b186ba8dd4d813183d8d81e874584a 100644 (file)
--- a/t/nntpd.t
+++ b/t/nntpd.t
@@ -358,7 +358,7 @@ Date: Fri, 02 Oct 1993 00:00:00 +0000
                }
                ok(run_script([qw(-index -c -j0 --reindex), $ibx->{inboxdir}],
                                undef, $noerr), '-compacted');
-               select(undef, undef, undef, $fast_idle ? 0.1 : 2.1);
+               tick($fast_idle ? 0.1 : 2.1);
                $art = $n->article($ex->header('Message-ID'));
                ok($art, 'new article retrieved after compact');
                $lsof or skip 'lsof missing', 1;
@@ -372,9 +372,9 @@ Date: Fri, 02 Oct 1993 00:00:00 +0000
        {
                setsockopt($s, IPPROTO_TCP, TCP_NODELAY, 1);
                syswrite($s, 'HDR List-id 1-');
-               select(undef, undef, undef, 0.15);
+               tick(0.15);
                ok($td->kill, 'killed nntpd');
-               select(undef, undef, undef, 0.15);
+               tick(0.15);
                syswrite($s, "\r\n");
                $buf = '';
                do {