theory/pgtap

No Parallel testing on PostgreSQL 9.6 or Higher

theory opened this issue · 5 comments

I noticed because the partitions test fails on 9.6, even though it should be added to EXCLUDE_TEST_FILES in the Makefile. But the tests were also serial; when I tested on 9.5, the tests ran in parallel (way faster!). But they do not run in parallel for me on 9.6 - 14. Shouldn't they?

And if there are situations where tests should not or cannot run in parallel, we should be sure that the proper tests are skipped for them, too.

I think we should get this straightened out before releasing v1.2.0, which we should try to do ASAP now that Postgres 14 is out and tests fail (see #278).

If it won't run in parallel I'd wager it's because it's using the same object names as some other test.

Object names?

It runs in parallel fine on older versions.

Fixed the issue with parallel test on my Mac, but this still fails on 9.6:

make installcheck PARALLEL_CONN=1

It's odd, because test/build/run.sch looks like this:

ignore: partitions
test: aretap
test: check
test: cmpok
test: coltap
test: do_tap
test: enumtap
test: extension
test: fktap
test: functap
test: hastap
test: index
test: inheritance
test: istap
test: matching
test: moretap
test: ownership
test: partitions
test: performs_ok
test: performs_within
test: pg73
test: pktap
test: policy
test: privs
test: resultset
test: roletap
test: ruletap
test: runjusttests
test: runnotests
test: runtests
test: throwtap
test: todotap
test: trigger
test: unique
test: usergroup
test: util
test: valueset

Note that partitions appears twice. When I build it without PARALLEL_CONN=1, it looks like this:

test: coltap
test: hastap
ignore: partitions
test: aretap check cmpok do_tap enumtap extension fktap functap index inheritance istap matching moretap ownership performs_ok performs_within pg73 pktap policy privs resultset roletap ruletap runjusttests runnotests runtests throwtap todotap trigger unique usergroup util valueset

So it appears only once. Something isn't filtering it out.