How PostgreSQL is tested [video]
blog.pgconf.us
blog.pgconf.us
They have a new test suite built around TAP (https://testanything.org/) and perl so now they have automated tests for more things like certs, and replication.
- pg_regress, which is as you say a set of SQL scripts run on a running server with generated output compared to the expected output. There could be multiple expected outputs, see for example float tests.
- pg_isolation_test, which is a part you are misunderstanding. This facility has been introduced with SSI (serializable transactions) to test concurrency.
- TAP tests (author of the replication/backup/recovery part here), which has roughly three test suites:
-- src/bin/ to test all the in-core binaries
-- src/test/ssl to test SSL configurations. This has proved to be useful lately when moving all the SSL parameters to be reloadable.
-- src/test/recovery to test all the kind of replication scenarios.
There are as well modules in src/test/modules that use TAP tests to run regressions on pg_dump, commit timestamps and extension interactions.
Are there, in fact, no tests on VACUUM and others? Is that a problem? Are there plans to add them? Would you be looking for contributors to do so?
diff $(sort output) $(sort expected)
I'm hoping for one too. I have become frighteningly reliant on the amazing HN community for their tl;dr's.
I literally started watching the video so I could do one and immediately felt guilty because I realize I need to add better tests to my latest. So back to coding instead.