summary refs log tree commit diff
path: root/gnu/tests/base.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2016-08-02 18:05:23 +0200
committerLudovic Courtès <ludo@gnu.org>2016-08-02 18:07:19 +0200
commitab3a64507a792e4da0527b423fbc28f8768e736a (patch)
tree6e754531160bc86c3a0d574fe5daa928748070be /gnu/tests/base.scm
parenta5c376034f0c465c00e88283dae6d59ac49612a9 (diff)
downloadguix-ab3a64507a792e4da0527b423fbc28f8768e736a.tar.gz
system: Define 'GUIX_LOCPATH' to work around 'glibc' package defect.
Our 'glibc' package currently ignores /run/current-system/locale,
although the intent is to look for locales in that directory.

* gnu/packages/base.scm (glibc/linux): Add comment about
/run/current-system/locale being ignored.
* gnu/system.scm (operating-system-environment-variables): Add
'GUIX_LOCPATH'.
* gnu/tests/base.scm (run-basic-test): Add "locale" test.
Diffstat (limited to 'gnu/tests/base.scm')
-rw-r--r--gnu/tests/base.scm12
1 files changed, 12 insertions, 0 deletions
diff --git a/gnu/tests/base.scm b/gnu/tests/base.scm
index a6278b25d4..7170ab1e38 100644
--- a/gnu/tests/base.scm
+++ b/gnu/tests/base.scm
@@ -178,6 +178,18 @@ info --version")
              '(false-if-exception (getaddrinfo "does-not-exist"))
              marionette))
 
+          (test-equal "locale"
+            "en_US.utf8"
+            (marionette-eval '(begin
+                                ;; XXX: This 'setenv' call wouldn't be needed
+                                ;; but our glibc@2.23 currently ignores
+                                ;; /run/current-system/locale.
+                                (setenv "GUIX_LOCPATH"
+                                        "/run/current-system/locale")
+                                (let ((before (setlocale LC_ALL "en_US.utf8")))
+                                  (setlocale LC_ALL before)))
+                             marionette))
+
           (test-assert "screendump"
             (begin
               (marionette-control (string-append "screendump " #$output