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.1 required=3.0 tests=ALL_TRUSTED,AWL,BAYES_00, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF 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 3CBFE1F61C for ; Mon, 12 Dec 2022 04:22:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=80x24.org; s=selector1; t=1670818922; bh=4wVmFYVLUE9ZcP0AvZCNpG6SoF+a3HRuL4Gq1Yqq2Pk=; h=From:To:Subject:Date:In-Reply-To:References:From; b=3qfHJAZkhkoP/Ll0dGfee0D7VrtkNROP4Fmj4kZDmlBYxJ2TXbAz9LOFzO4YC2Qze CZZ6bLZgTYfUDeaZ1MCdHoLhqecP2rdFLbi6TxbLJXTdB0wC7foKL2d22RaA9VyFdR 6gbBPyPL8uXvhNrb4YQ5H6O0Eq5eLGB8hVeEdXKw= From: Eric Wong To: meta@public-inbox.org Subject: [PATCH 1/2] tests: replace select/usleep calls with tick() Date: Mon, 12 Dec 2022 04:22:00 +0000 Message-Id: <20221212042201.510414-2-e@80x24.org> In-Reply-To: <20221212042201.510414-1-e@80x24.org> References: <20221212042201.510414-1-e@80x24.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit List-Id: This makes it easier to identify places in tests which cause unnecessary slowdowns doing busy waits. --- t/cmd_ipc.t | 3 +-- t/httpd-corner.t | 2 +- t/httpd-unix.t | 8 ++++---- t/nntpd.t | 6 +++--- 4 files changed, 9 insertions(+), 10 deletions(-) diff --git a/t/cmd_ipc.t b/t/cmd_ipc.t index 75697a15..cd76d5e8 100644 --- a/t/cmd_ipc.t +++ b/t/cmd_ipc.t @@ -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; } } diff --git a/t/httpd-corner.t b/t/httpd-corner.t index e16e8dc8..88820270 100644 --- a/t/httpd-corner.t +++ b/t/httpd-corner.t @@ -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; diff --git a/t/httpd-unix.t b/t/httpd-unix.t index fe4a2161..e915ea2c 100644 --- a/t/httpd-unix.t +++ b/t/httpd-unix.t @@ -1,8 +1,8 @@ -# Copyright (C) 2016-2021 all contributors +#!perl -w +# Copyright (C) all contributors # License: AGPL-3.0+ # 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'); } diff --git a/t/nntpd.t b/t/nntpd.t index 058bd796..30233ce0 100644 --- 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 {