From c1c1886d8245be78fc689dca457a11d1e18a8212 Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Thu, 12 Feb 2009 13:26:03 +0000 Subject: [PATCH] Unset language-related locale settings in any case, otherwise psql will speak in tongues and mess up the regression test diffs. --- doc/src/sgml/regress.sgml | 12 ++++++++---- src/test/regress/pg_regress.c | 15 +++++++++++---- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/doc/src/sgml/regress.sgml b/doc/src/sgml/regress.sgml index 1cb90264fd..ac8680412c 100644 --- a/doc/src/sgml/regress.sgml +++ b/doc/src/sgml/regress.sgml @@ -1,4 +1,4 @@ - + Regression Tests @@ -218,11 +218,15 @@ gmake installcheck locale-related environment variables on the make command line, for example: -gmake check LC_ALL=de_DE.utf8 +gmake check LANG=de_DE.utf8 - or analogously to use no locale: + (The regression test driver unsets LC_ALL, so it + does not work to choose the locale using that variable.) To use + no locale, either unset all locale-related environment variables + (or set them to C) or use the following + special invocation: -gmake check LC_ALL=C +gmake check NO_LOCALE=1 When running the tests against an existing installation, the locale setup is determined by the existing installation. To diff --git a/src/test/regress/pg_regress.c b/src/test/regress/pg_regress.c index 2ff76483d2..7bd297f20c 100644 --- a/src/test/regress/pg_regress.c +++ b/src/test/regress/pg_regress.c @@ -11,7 +11,7 @@ * Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/test/regress/pg_regress.c,v 1.60 2009/02/11 14:03:42 petere Exp $ + * $PostgreSQL: pgsql/src/test/regress/pg_regress.c,v 1.61 2009/02/12 13:26:03 petere Exp $ * *------------------------------------------------------------------------- */ @@ -694,18 +694,25 @@ initialize_environment(void) unsetenv("LC_COLLATE"); unsetenv("LC_CTYPE"); unsetenv("LC_MONETARY"); - unsetenv("LC_MESSAGES"); unsetenv("LC_NUMERIC"); unsetenv("LC_TIME"); - unsetenv("LC_ALL"); unsetenv("LANG"); - unsetenv("LANGUAGE"); /* On Windows the default locale cannot be English, so force it */ #if defined(WIN32) || defined(__CYGWIN__) putenv("LANG=en"); #endif } + /* + * Set translation-related settings to English; otherwise psql + * will produce translated messages and produce diffs. (XXX If we + * ever support translation of pg_regress, this needs to be moved + * elsewhere, where psql is actually called.) + */ + unsetenv("LANGUAGE"); + unsetenv("LC_ALL"); + putenv("LC_MESSAGES=C"); + /* * Set multibyte as requested */