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"> <chapter id="regress">
<title id="regress-title">Regression Tests</title> <title id="regress-title">Regression Tests</title>
@ -218,11 +218,15 @@ gmake installcheck
locale-related environment variables on locale-related environment variables on
the <command>make</command> command line, for example: the <command>make</command> command line, for example:
<programlisting> <programlisting>
gmake check LC_ALL=de_DE.utf8 gmake check LANG=de_DE.utf8
</programlisting> </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> <programlisting>
gmake check LC_ALL=C gmake check NO_LOCALE=1
</programlisting> </programlisting>
When running the tests against an existing installation, the When running the tests against an existing installation, the
locale setup is determined by the existing installation. To 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) 1996-2009, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California * 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_COLLATE");
unsetenv("LC_CTYPE"); unsetenv("LC_CTYPE");
unsetenv("LC_MONETARY"); unsetenv("LC_MONETARY");
unsetenv("LC_MESSAGES");
unsetenv("LC_NUMERIC"); unsetenv("LC_NUMERIC");
unsetenv("LC_TIME"); unsetenv("LC_TIME");
unsetenv("LC_ALL");
unsetenv("LANG"); unsetenv("LANG");
unsetenv("LANGUAGE");
/* On Windows the default locale cannot be English, so force it */ /* On Windows the default locale cannot be English, so force it */
#if defined(WIN32) || defined(__CYGWIN__) #if defined(WIN32) || defined(__CYGWIN__)
putenv("LANG=en"); putenv("LANG=en");
#endif #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 * Set multibyte as requested
*/ */