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 8F55D1F4B5 for ; Fri, 15 Nov 2019 09:51:00 +0000 (UTC) From: Eric Wong To: meta@public-inbox.org Subject: [PATCH 00/29] speed up tests by preloading Date: Fri, 15 Nov 2019 09:50:31 +0000 Message-Id: <20191115095100.25633-1-e@80x24.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit List-Id: On my fastest system, this brings "make check" time down from ~17s to ~10s. This also improves consistency of our test suite, adds ENV{TAIL} support to all daemons, and removes the test-time dependency on the IPC::Run module. Several cleanups were necessary to limit the scope of some references and minor bugs were found (and fixed) in preparation for this. Most of the changes were to explicitly pass global variables into subs to avoid warnings. TEST_RUN_MODE=0 can be set in the environment to restore real-world behavior with (v)fork && execve. Eric Wong (29): edit: pass global variables into subs edit: use OO API of File::Temp to shorten lifetime admin: get rid of singleton $CFG var index: pass global variables into subs init: pass global variables into subs mda: pass global variables into subs learn: pass global variables into subs inboxwritable: add ->cleanup method import: only pass Inbox object to SearchIdx->new xapcmd: do not fire END and DESTROY handlers in child spawn: which: allow embedded slash for relative path t/common: introduce run_script wrapper for t/cgi.t t/edit: switch to use run_script t/init: convert to using run_script t/purge: convert to run_script t/v2mirror: get rid of IPC::Run dependency t/mda: switch to run_script for testing t/mda_filter_rubylang: drop IPC::Run dependency doc: remove IPC::Run as a dev and test dependency t/v2mirror: switch to default run_mode for speedup t/convert-compact: convert to run_script t/httpd: use run_script for -init t/watch_maildir_v2: use run_script for -init t/nntpd: use run_script for -init t/watch_filter_rubylang: run_script for -init and -index t/v2mda: switch to run_script in many places t/indexlevels-mirror*: switch to run_script t/xcpdb-reshard: use run_script for -xcpdb t/common: start_script replaces spawn_listener INSTALL | 4 - ci/deps.perl | 1 - lib/PublicInbox/Admin.pm | 9 +- lib/PublicInbox/Import.pm | 4 +- lib/PublicInbox/InboxWritable.pm | 4 + lib/PublicInbox/Spawn.pm | 2 +- lib/PublicInbox/Xapcmd.pm | 5 +- script/public-inbox-edit | 40 ++--- script/public-inbox-index | 3 +- script/public-inbox-init | 27 +++- script/public-inbox-learn | 8 +- script/public-inbox-mda | 12 +- t/cgi.t | 16 +- t/common.perl | 248 ++++++++++++++++++++++++++++--- t/convert-compact.t | 18 +-- t/edit.t | 65 ++++---- t/git-http-backend.t | 14 +- t/httpd-corner.t | 48 +++--- t/httpd-https.t | 28 +--- t/httpd-unix.t | 47 +++--- t/httpd.t | 18 +-- t/indexlevels-mirror.t | 24 +-- t/init.t | 85 +++++------ t/mda.t | 53 ++++--- t/mda_filter_rubylang.t | 17 +-- t/nntpd-tls.t | 29 +--- t/nntpd-validate.t | 27 ++-- t/nntpd.t | 22 ++- t/perf-nntpd.t | 22 ++- t/purge.t | 20 +-- t/v2mda.t | 38 ++--- t/v2mirror.t | 55 +++---- t/v2writable.t | 8 +- t/watch_filter_rubylang.t | 6 +- t/watch_maildir_v2.t | 4 +- t/www_listing.t | 8 +- t/xcpdb-reshard.t | 5 +- 37 files changed, 584 insertions(+), 460 deletions(-)