Unset language-related locale settings in any case, otherwise psql will
authorPeter Eisentraut
Thu, 12 Feb 2009 13:26:03 +0000 (13:26 +0000)
committerPeter Eisentraut
Thu, 12 Feb 2009 13:26:03 +0000 (13:26 +0000)
speak in tongues and mess up the regression test diffs.

doc/src/sgml/regress.sgml
src/test/regress/pg_regress.c

index 1cb90264fd461986360103ccf33ae9e13acac4a8..ac8680412cc0f1de3cbc4344228e6caf1096ba51 100644 (file)
@@ -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
index 2ff76483d2e3f97f0841e831b1dd846acfa6febf..7bd297f20c13e2b738cb89bb9e72dbb4719a1431 100644 (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
     */