Andrew Dunstan <and...@dunslane.net> writes: > I think I found a logic bug. Testing.
Not sure what you are looking at, but I was trying to fix it by making the loop over test modules skip unbuilt modules, borrowing the test you added in v19 to skip unbuilt contrib modules. It's a little more complicated for the other modules because some of them have no .c files to be built, and I could not get that to work. I eventually concluded that there's something wrong with the "scalar glob()" idiom you used. A bit of googling suggested "grep -e, glob()" instead, and that seems to work for me. sifaka seems happy with the attached patch. regards, tom lane
--- run_build.pl~ 2025-03-04 16:34:04.082252563 -0500 +++ run_build.pl 2025-03-04 16:35:25.967357487 -0500 @@ -2483,6 +2483,11 @@ sub run_misc_tests my $testname = basename($testdir); next if $testname =~ /ssl/ && !$using_ssl; next unless -d "$testdir/t"; + + # can't test it if we haven't built it + next unless grep -e, glob("$testdir/*.o $testdir/*.obj") + or not grep -e, glob("$testdir/*.c"); + next if $using_msvc && $testname eq 'pg_bsd_indent'; next unless step_wanted("module-$testname"); print time_str(), "running misc test module-$testname ...\n" @@ -2496,7 +2501,7 @@ sub run_misc_tests my $testname = basename($testdir); # can't test it if we haven't built it - next unless scalar glob("$testdir/*.o $testdir/*.obj"); + next unless grep -e, glob("$testdir/*.o $testdir/*.obj"); # skip sepgsql unless it's marked for testing next if $testname eq 'sepgsql' && $ENV{PG_TEST_EXTRA} !~ /\bsepgsql\b/;