Unset language-related locale settings in any case, otherwise psql will

speak in tongues and mess up the regression test diffs.
This commit is contained in:
Peter Eisentraut 2009-02-12 13:26:03 +00:00
parent eee82d44bd
commit c1c1886d82
2 changed files with 19 additions and 8 deletions

View File

@ -1,4 +1,4 @@
<!-- $PostgreSQL: pgsql/doc/src/sgml/regress.sgml,v 1.61 2009/02/11 14:03:41 petere Exp $ -->
<!-- $PostgreSQL: pgsql/doc/src/sgml/regress.sgml,v 1.62 2009/02/12 13:26:03 petere Exp $ -->
<chapter id="regress">
<title id="regress-title">Regression Tests</title>
@ -218,11 +218,15 @@ gmake installcheck
locale-related environment variables on
the <command>make</command> command line, for example:
<programlisting>
gmake check LC_ALL=de_DE.utf8
gmake check LANG=de_DE.utf8
</programlisting>
or analogously to use no locale:
(The regression test driver unsets <envar>LC_ALL</envar>, 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 <literal>C</literal>) or use the following
special invocation:
<programlisting>
gmake check LC_ALL=C
gmake check NO_LOCALE=1
</programlisting>
When running the tests against an existing installation, the
locale setup is determined by the existing installation. To

View File

@ -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
*/