From aca209c0956dae1eb3695c702a12a3570c640886 Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Wed, 18 Jul 2018 21:57:47 +0200 Subject: [PATCH] Using C.UTF-8 locale fallback for string tests for vanilla Linux installations. --- src/tl/unit_tests/tlString.cc | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/tl/unit_tests/tlString.cc b/src/tl/unit_tests/tlString.cc index 93c254a04..13e2f064b 100644 --- a/src/tl/unit_tests/tlString.cc +++ b/src/tl/unit_tests/tlString.cc @@ -484,9 +484,13 @@ TEST(14) // UTF-8 to wchar_t and local conversion TEST(15) { - // NOTE: we don't know the local setting, but translation back and forth should work. std::string locale = setlocale (LC_ALL, NULL); - setlocale (LC_ALL, "en_US.UTF-8"); + const char *lc = setlocale (LC_ALL, "en_US.UTF-8"); + if (! lc || std::string (lc) != "en_US.UTF-8") { + // use C.UTF-8 as fallback + setlocale (LC_ALL, "C.UTF-8"); + } + try { EXPECT_EQ (tl::to_string_from_local (tl::to_local ("Hällo\tWörld!").c_str ()), "Hällo\tWörld!"); setlocale (LC_ALL, locale.c_str ());