Andrew Dunstan <andrew@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/;