Skip to content

Commit

Permalink
dev-libs/libgweather: fix tests when system has no French locale
Browse files Browse the repository at this point in the history
Bug: https://bugs.gentoo.org/739592
Package-Manager: Portage-2.3.103, Repoman-2.3.20
Signed-off-by: Mart Raudsepp <[email protected]>
  • Loading branch information
leio committed Aug 30, 2020
1 parent 1a15cea commit 40a6983
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 0 deletions.
52 changes: 52 additions & 0 deletions dev-libs/libgweather/files/3.36.1-tests-locale.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
From 8b20cd91a96eae39bafe82ccf444dbc00759ad43 Mon Sep 17 00:00:00 2001
From: Emmanuele Bassi <[email protected]>
Date: Mon, 9 Mar 2020 12:21:57 +0000
Subject: [PATCH] Do not run local-dependent tests with missing locales

Not everyone has all the locales installed all the time, so let's check
if a locale is available before using it.
---
libgweather/test_libgweather.c | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/libgweather/test_libgweather.c b/libgweather/test_libgweather.c
index 8a219115..77ee459b 100644
--- a/libgweather/test_libgweather.c
+++ b/libgweather/test_libgweather.c
@@ -643,6 +643,7 @@ static void
test_location_names (void)
{
GWeatherLocation *world, *brussels;
+ char *old_locale;

world = gweather_location_get_world ();
g_assert (world);
@@ -653,7 +654,16 @@ test_location_names (void)
g_assert_cmpstr (gweather_location_get_sort_name (brussels), ==, "brussels");
g_assert_cmpstr (gweather_location_get_english_name (brussels), ==, "Brussels");

+ old_locale = g_strdup (setlocale (LC_ALL, NULL));
setlocale (LC_ALL, "fr_FR.UTF-8");
+ if (strstr (setlocale (LC_ALL, NULL), "fr_FR.UTF-8") == NULL)
+ {
+ g_test_skip ("locale fr_FR.UTF-8 not available, skipping localization tests");
+ setlocale (LC_ALL, old_locale);
+ g_free (old_locale);
+ return;
+ }
+
_gweather_location_reset_world ();

world = gweather_location_get_world ();
@@ -665,7 +675,7 @@ test_location_names (void)
g_assert_cmpstr (gweather_location_get_sort_name (brussels), ==, "bruxelles");
g_assert_cmpstr (gweather_location_get_english_name (brussels), ==, "Brussels");

- setlocale (LC_ALL, "");
+ setlocale (LC_ALL, old_locale);
_gweather_location_reset_world ();
}

--
GitLab

1 change: 1 addition & 0 deletions dev-libs/libgweather/libgweather-3.36.1.ebuild
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ BDEPEND="

PATCHES=(
"${FILESDIR}"/3.32.1-meson-tweaks.patch # Provide introspection optionality and don't build tests that aren't ran automatically
"${FILESDIR}"/3.36.1-tests-locale.patch # Don't fail tests when a locale is not present, https://gitlab.gnome.org/GNOME/libgweather/-/merge_requests/58
)

src_prepare() {
Expand Down

0 comments on commit 40a6983

Please sign in to comment.