From ca7dc0e94c0d47b9ef7ad0e3ad9f5be95e3d6560 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sun, 24 Dec 2006 21:47:05 +0000 Subject: [PATCH] Silently skip tests if we can't set LC_COLLATE to en_US. (#336438) 2006-12-24 Matthias Clasen * tests/run-collate-tests.sh: * tests/unicode-collate.c: Silently skip tests if we can't set LC_COLLATE to en_US. (#336438) --- ChangeLog | 6 ++++++ tests/run-collate-tests.sh | 6 +++--- tests/unicode-collate.c | 13 +++++++++++++ 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index d119d735..4695b61f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2006-12-24 Matthias Clasen + + * tests/run-collate-tests.sh: + * tests/unicode-collate.c: Silently skip tests if + we can't set LC_COLLATE to en_US. (#336438) + 2006-12-19 Matthias Clasen * glib/gkeyfile.c (g_key_file_is_key_name): Accept diff --git a/tests/run-collate-tests.sh b/tests/run-collate-tests.sh index b27f7d65..24f3d690 100755 --- a/tests/run-collate-tests.sh +++ b/tests/run-collate-tests.sh @@ -13,9 +13,6 @@ echo_v () fi } -LC_ALL=en_US -export LC_ALL - error_out=/dev/null if [ "$1" = "-v" ]; then verbose=1 @@ -25,6 +22,9 @@ for I in ${srcdir:-.}/collate/*.in; do echo_v "Sorting $I" name=`basename $I .in` ./unicode-collate $I > collate.out + if [ $? -eq 2 ]; then + exit 0 + fi diff collate.out ${srcdir:-.}/collate/$name.unicode || fail "unexpected error when using g_utf8_collate() on $I" ./unicode-collate --key $I > collate.out diff --git a/tests/unicode-collate.c b/tests/unicode-collate.c index 009b00fa..785f1690 100644 --- a/tests/unicode-collate.c +++ b/tests/unicode-collate.c @@ -5,6 +5,7 @@ #include #include #include +#include typedef struct { const char *key; @@ -38,6 +39,18 @@ int main (int argc, char **argv) guint i; gboolean do_key = FALSE; gboolean do_file = FALSE; + gchar *locale; + + /* FIXME: need to modify environment here, + * since g_utf8_collate_key calls setlocal (LC_COLLATE, "") + */ + g_setenv ("LC_ALL", "en_US", TRUE); + locale = setlocale (LC_ALL, ""); + if (locale == NULL || strcmp (locale, "en_US") != 0) + { + fprintf (stderr, "No suitable locale, skipping test\n"); + return 2; + } if (argc != 1 && argc != 2 && argc != 3) { -- 2.34.1