Thread

  1. BF client script runs src/test/modules TAP tests multiple times

    Tom Lane <tgl@sss.pgh.pa.us> — 2026-04-08T05:00:51Z

    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
    
    
  2. Re: BF client script runs src/test/modules TAP tests multiple times

    Andrew Dunstan <andrew@dunslane.net> — 2026-04-08T13:23:43Z

    On 2026-04-08 We 1:00 AM, Tom Lane wrote:
    > 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.)
    >
    > 			
    
    
    Ok, I will try to rationalize this.
    
    
    cheers
    
    
    andrew
    
    --
    Andrew Dunstan
    EDB:https://www.enterprisedb.com