pgstat: Hide instability in stats.spec with -DCATCACHE_FORCE_RELEASE.
authorAndres Freund
Fri, 8 Apr 2022 01:20:50 +0000 (18:20 -0700)
committerAndres Freund
Fri, 8 Apr 2022 01:20:50 +0000 (18:20 -0700)
commitd6c0db14836cd843d589372d909c73aab68c7a24
treecaa7aad696bec9b37e97a07e08f5fff56a09852a
parent5264add7847871d61d36a5770dac2139d6a7bc80
pgstat: Hide instability in stats.spec with -DCATCACHE_FORCE_RELEASE.

With -DCATCACHE_FORCE_RELEASE a few tests failed. Those were trying to test
behavior in the absence of invalidation processing and
-DCATCACHE_FORCE_RELEASE obviously adds a lot of invalidation processing. The
test already tried to handle debug_discard_caches > 0, by disabling it for
individual tests.

Instead hide potentially problematic function calls in a wrapper function that
catches the does-not-exist error. The error isn't the actually interesting
bit, it's whether the stats entry still exist afterwards.

I confirmed that the tests still catches leaked function stats if I nuke the
protections against that in pgstat_function.c.

Per buildfarm animal prion.

Discussion: https://postgr.es/m/20220407165709[email protected]
src/test/isolation/expected/stats.out
src/test/isolation/expected/stats_1.out
src/test/isolation/specs/stats.spec