[geary/mjog/ci-updates] Remove Flatpak test locale hack, just use en_US.UTF-8 for now



commit 8206cf434dd7a910283fd27ba0be70c34e2c352b
Author: Michael Gratton <mike vee net>
Date:   Mon Oct 7 19:22:22 2019 +1100

    Remove Flatpak test locale hack, just use en_US.UTF-8 for now
    
    FDO 19.08 runtime now includes C.UTF-8 locale, but since Fedora
    now ships one that collates high-bit chars, it differs compared
    to Debian et al's and FDO.
    
    As a result, just use en_US.UTF-8 for now, probably until glibc
    actually ships it and so they all agree.

 .gitlab-ci.yml                                 |  9 +++++++--
 test/engine/imap-db/imap-db-database-test.vala | 16 +++-------------
 test/test-client.vala                          |  7 +++++--
 test/test-engine.vala                          | 15 +++++----------
 4 files changed, 20 insertions(+), 27 deletions(-)
---
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index bc30df20..2e260047 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -13,6 +13,10 @@ variables:
   # See Infrastructure/Infrastructure#97.
   TEST_ARGS: -t 10
 
+  # Locale used for unit tests. See notes in test/test-engine.vala and
+  # test/test-client.vala.
+  TEST_LOCALE: en_US.UTF-8
+
   # Build
   BUILD_DIR: build
   CONFIG_CMD: meson --buildtype=debug $BUILD_DIR
@@ -28,7 +32,7 @@ variables:
     libappstream-glib-devel libgee-devel libhandy-devel libpeas-devel
     libsecret-devel libunwind-devel libxml2-devel libytnef-devel
     sqlite-devel webkitgtk4-devel
-  FEDORA_TEST_DEPS: Xvfb tar xz
+  FEDORA_TEST_DEPS: glibc-langpack-en tar xz Xvfb
 
   # Ubuntu packages
   UBUNTU_DEPS:
@@ -39,7 +43,7 @@ variables:
     libjson-glib-dev libmessaging-menu-dev libpeas-dev libsecret-1-dev
     libsqlite3-dev libunity-dev libunwind-dev libwebkit2gtk-4.0-dev
     libxml2-dev libytnef0-dev
-  UBUNTU_TEST_DEPS: xauth xvfb
+  UBUNTU_TEST_DEPS: locales xauth xvfb
 
 fedora:
   stage: build
@@ -65,6 +69,7 @@ ubuntu:
   before_script:
     - apt-get update
     - apt-get install -q -y --no-install-recommends $UBUNTU_DEPS $UBUNTU_TEST_DEPS
+    - locale-gen $TEST_LOCALE
   script:
     - $CONFIG_CMD
     - $BUILD_CMD
diff --git a/test/engine/imap-db/imap-db-database-test.vala b/test/engine/imap-db/imap-db-database-test.vala
index 5b758c2a..1341f2d8 100644
--- a/test/engine/imap-db/imap-db-database-test.vala
+++ b/test/engine/imap-db/imap-db-database-test.vala
@@ -143,23 +143,13 @@ class Geary.ImapDB.DatabaseTest : TestCase {
         db.exec("""
             CREATE TABLE Test (id INTEGER PRIMARY KEY, test_str TEXT);
             INSERT INTO Test (test_str) VALUES ('a');
+            INSERT INTO Test (test_str) VALUES ('b');
             INSERT INTO Test (test_str) VALUES ('B');
             INSERT INTO Test (test_str) VALUES ('BB');
-            INSERT INTO Test (test_str) VALUES ('🤯');
+            INSERT INTO Test (test_str) VALUES ('á');
         """);
 
-        string[] expected = { "a", "BB", "B", "🤯" };
-        // Distros don't ship well-known locales other than C.UTF-8 by
-        // default, but Flatpak does not currently ship C.UTF-8 at
-        // all, so need to support both. :(
-        //
-        // See test-engine.vala and
-        // https://gitlab.com/freedesktop-sdk/freedesktop-sdk/issues/812
-        if (GLib.Intl.setlocale(LocaleCategory.COLLATE, null) != "C.UTF-8") {
-            // en_US.UTF-8:
-            expected = { "BB", "B", "a", "🤯" };
-        }
-
+        string[] expected = { "BB", "B", "b", "á", "a" };
         Db.Result result = db.query(
             "SELECT test_str FROM Test ORDER BY test_str COLLATE UTF8COLL DESC"
         );
diff --git a/test/test-client.vala b/test/test-client.vala
index 6665582b..25567a3a 100644
--- a/test/test-client.vala
+++ b/test/test-client.vala
@@ -27,8 +27,11 @@ int main(string[] args) {
      */
 
     // Ensure things like e.g. GLib's formatting routines uses a
-    // UTF-8-based locale rather ASCII
-    GLib.Intl.setlocale(LocaleCategory.ALL, "C.UTF-8");
+    // well-known UTF-8-based locale rather ASCII. Would like to use
+    // C.UTF-8 here, but currently only Debian et al and Fedora ship
+    // it, and as of Fedora 32 they disagree on collation order for
+    // non-ASCII chars.
+    GLib.Intl.setlocale(LocaleCategory.ALL, "en_US.UTF-8");
 
     Gtk.init(ref args);
     Test.init(ref args);
diff --git a/test/test-engine.vala b/test/test-engine.vala
index 0f28510a..d8cc5c6d 100644
--- a/test/test-engine.vala
+++ b/test/test-engine.vala
@@ -11,16 +11,11 @@ int main(string[] args) {
      */
 
     // Ensure things like e.g. GLib's formatting routines uses a
-    // well-known UTF-8-based locale rather ASCII.
-    //
-    // Distros don't ship well-known locales other than C.UTF-8 by
-    // default, but Flatpak does not currently support C.UTF-8, so
-    // need to try both. :(
-    // https://gitlab.com/freedesktop-sdk/freedesktop-sdk/issues/812
-    string? locale = GLib.Intl.setlocale(LocaleCategory.ALL, "C.UTF-8");
-    if (locale == null) {
-        GLib.Intl.setlocale(LocaleCategory.ALL, "en_US.UTF-8");
-    }
+    // well-known UTF-8-based locale rather ASCII. Would like to use
+    // C.UTF-8 here, but currently only Debian et al and Fedora ship
+    // it, and as of Fedora 32 they disagree on collation order for
+    // non-ASCII chars.
+    GLib.Intl.setlocale(LocaleCategory.ALL, "en_US.UTF-8");
 
     Test.init(ref args);
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]