]> git.ipfire.org Git - thirdparty/postgresql.git/commit
Add basic spinlock tests to regression tests.
authorAndres Freund <andres@anarazel.de>
Mon, 8 Jun 2020 23:36:51 +0000 (16:36 -0700)
committerAndres Freund <andres@anarazel.de>
Thu, 18 Jun 2020 21:06:29 +0000 (14:06 -0700)
commit3f66e1c5a5768f68f71d1bd1ef322af2202d5e3c
treee2fbd926cc640b3fc7164ff80efc75eb8f6976d6
parent28fa0484efe925383f3fee8b7e88b74e9bb19004
Add basic spinlock tests to regression tests.

As s_lock_test, the already existing test for spinlocks, isn't run in
an automated fashion (and doesn't test a normal backend environment),
adding tests that are run as part of a normal regression run is a good
idea. Particularly in light of several recent and upcoming spinlock
related fixes.

Currently the new tests are run as part of the pre-existing
test_atomic_ops() test. That perhaps can be quibbled about, but for
now seems ok.

The only operations that s_lock_test tests but the new tests don't are
the detection of a stuck spinlock and S_LOCK_FREE (which is otherwise
unused, not implemented on all platforms, and will be removed).

This currently contains a test for more than INT_MAX spinlocks (only
run with --disable-spinlocks), to ensure the recent commit fixing a
bug with more than INT_MAX spinlock initializations is correct. That
test is somewhat slow, so we might want to disable it after a few
days.

It might be worth retiring s_lock_test after this. The added coverage
of a stuck spinlock probably isn't worth the added complexity?

Author: Andres Freund
Discussion: https://postgr.es/m/20200606023103.avzrctgv7476xj7i@alap3.anarazel.de
src/test/regress/regress.c