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/;

Reply via email to