pgsql: Use "template" data directory in tests

Поиск
Список
Период
Сортировка
От Andres Freund
Тема pgsql: Use "template" data directory in tests
Дата
Msg-id E1qZIW0-000jJR-4s@gemulon.postgresql.org
обсуждение исходный текст
Ответы Re: pgsql: Use "template" data directory in tests  (Michael Paquier <michael@paquier.xyz>)
Список pgsql-committers
Use "template" data directory in tests

When running all (or just many) of our tests, a significant portion of both
CPU time and IO is spent running initdb. Most of those initdb runs don't
specify any options influencing properties of the created data directory.

Avoid most of that overhead by creating a "template" data directory, alongside
the temporary installation. Instead of running initdb, pg_regress and tap
tests can copy that data directory. When a tap test specifies options to
initdb, the template data directory is not used. That could be relaxed for
some options, but it's not clear it's worth the effort.

There unfortunately is some duplication between pg_regress.c and Cluster.pm,
but there are no easy ways of sharing that code without introducing additional
complexity.

Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
Discussion: https://postgr.es/m/20220120021859.3zpsfqn4z7ob7afz@alap3.anarazel.de

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/252dcb32397f64a5e1ceac05b29a271ab19aa960

Modified Files
--------------
.cirrus.tasks.yml                        |  3 +-
meson.build                              | 30 +++++++++++++
src/Makefile.global.in                   | 38 +++++++++-------
src/test/perl/PostgreSQL/Test/Cluster.pm | 46 ++++++++++++++++++-
src/test/regress/pg_regress.c            | 76 +++++++++++++++++++++++++-------
5 files changed, 156 insertions(+), 37 deletions(-)


В списке pgsql-committers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: pgsql: Cache by-reference missing values in a long lived context
Следующее
От: Bruce Momjian
Дата:
Сообщение: pgsql: doc: PG 16 relnotes: fix initdb encoding/locale item