I spent some more time poking into why my buildfarm animals seemed
to have gotten markedly slower in the past month or so. One
particular inflection point was the introduction of test_plan_advice.
We knew that would be expensive, since it invokes an extra run of
the core regression tests. On my animal indri, which can do
install-check-C in about 10 or 11 seconds, you'd have expected that
to add ten-ish seconds to the total cycle time. But it added more
than 30 seconds. Investigation shows that what you'd guess from
simple arithmetic is the truth: the BF client script is invoking
that test *three times*. Once from make_misc_check, once from
make_testmodules_install_check with locale "C", and once from
make_testmodules_install_check with locale "en_US.utf8", since
that animal is set up with
locales => [ 'C', 'en_US.UTF-8' ],
I do not think we need this. We should apply the same policy to
src/test/modules as we do to contrib, namely that TAP tests are
run just once during the "make check" phase, not during the "make
installcheck" phases. I've applied the attached to my animals
and it makes for a significant drop in cycle time.
(I've not looked into whether the meson side has a similar issue.)
regards, tom lane
--- run_build.pl~ 2026-04-07 18:34:30.112991218 -0400
+++ run_build.pl 2026-04-07 22:33:56.230330171 -0400
@@ -2228,8 +2228,9 @@ sub make_testmodules_install_check
my @checklog;
unless ($using_msvc)
{
+ # skip TAP tests - they are called elsewhere
my $cmd =
- "cd $pgsql/src/test/modules && $make USE_MODULE_DB=1 installcheck";
+ "cd $pgsql/src/test/modules && $make USE_MODULE_DB=1 TAP_TESTS= installcheck";
@checklog = run_log($cmd);
}
else