On Tue, 2023-12-12 at 18:56 -0800, Noah Misch wrote:
> > Yea. I wonder if the better fix would have been to copy
> > setenv("LC_MESSAGES", "C", 1);
> > to the initdb template creation. That afaict also fixes the issue,
> > with a
> > smaller blast radius?
>
> +1, that would restore the testing semantics known from v16-. I
> think the
> intent of the template was to optimize without changing semantics,
> and the
> above proposal aligns with that. Currently, for v17 alone, one needs
> installcheck or build file hacks to reproduce a locale-specific test
> failure.
Attached.
I just changed --no-locale to --lc-messages=C, which I think solves it
in the right place with minimal blast radius. Andres, did you literally
mean C setenv() somewhere, or is this what you had in mind?
I also noticed that collate.linux.utf8.sql seems to be skipped on my
machine because of the "version() !~ 'linux-gnu'" check, even though
I'm running Ubuntu. Is that test getting run often enough?
And relatedly, is it worth thinking about extending pg_regress to
report skipped tests so it's easier to find these kinds of problems?
Regards,
Jeff Davis
From 3ffcf3e25bd2b16114775409404ee492e283584f Mon Sep 17 00:00:00 2001
From: Jeff Davis <[email protected]>
Date: Tue, 19 Dec 2023 22:34:52 -0800
Subject: [PATCH v1] Initialize data directories with --lc-messages=C for
tests.
Commit db6d9891e8 changed them to be initialized with --no-locale, but
that reduced the test coverage for non-C locales.
Discussion: https://postgr.es/m/0d47e5ecc037b3908149aad5f2a987793cf938bd.camel%40j-davis.com
---
meson.build | 2 +-
src/Makefile.global.in | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/meson.build b/meson.build
index f816283301..f786850840 100644
--- a/meson.build
+++ b/meson.build
@@ -3115,7 +3115,7 @@ sys.exit(sp.returncode)
''',
test_initdb_template,
temp_install_bindir / 'initdb',
- '--auth', 'trust', '--no-sync', '--no-instructions', '--no-locale',
+ '--auth', 'trust', '--no-sync', '--no-instructions', '--lc-messages=C',
'--no-clean'
],
priority: setup_tests_priority - 1,
diff --git a/src/Makefile.global.in b/src/Makefile.global.in
index 104e5de0fe..f8e461cbad 100644
--- a/src/Makefile.global.in
+++ b/src/Makefile.global.in
@@ -423,7 +423,7 @@ ifeq ($(MAKELEVEL),0)
$(MAKE) -C '$(top_builddir)' DESTDIR='$(abs_top_builddir)'/tmp_install install >'$(abs_top_builddir)'/tmp_install/log/install.log 2>&1
$(MAKE) -j1 $(if $(CHECKPREP_TOP),-C $(CHECKPREP_TOP),) checkprep >>'$(abs_top_builddir)'/tmp_install/log/install.log 2>&1
- $(with_temp_install) initdb --auth trust --no-sync --no-instructions --no-locale --no-clean '$(abs_top_builddir)'/tmp_install/initdb-template >>'$(abs_top_builddir)'/tmp_install/log/initdb-template.log 2>&1
+ $(with_temp_install) initdb --auth trust --no-sync --no-instructions --lc-messages=C --no-clean '$(abs_top_builddir)'/tmp_install/initdb-template >>'$(abs_top_builddir)'/tmp_install/log/initdb-template.log 2>&1
endif
endif
endif
--
2.34.1