void-packages/srcpkgs/iio-sensor-proxy/patches/fr_FR_locale-test.patch

102 lines
3.6 KiB
Diff

From fe56bdba1243cc5f6a652eb75d11ae1d1957ff7e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Guido=20G=C3=BCnther?= <agx@sigxcpu.org>
Date: Mon, 4 Mar 2024 08:18:54 +0100
Subject: [PATCH] tests: Skip some test when fr_FR locale isn't available
Some test require that locale so skip those when it is unavailable.
Closes: #392
---
src/test-mount-matrix.c | 8 ++++++--
tests/integration-test.py | 20 +++++++++++++++-----
2 files changed, 21 insertions(+), 7 deletions(-)
diff --git a/src/test-mount-matrix.c b/src/test-mount-matrix.c
index 0cf6c34..d0b608c 100644
--- a/src/test-mount-matrix.c
+++ b/src/test-mount-matrix.c
@@ -66,12 +66,16 @@ test_mount_matrix (void)
static void
test_comma_decimal_separator (void)
{
+ const char *fr_locale = "fr_FR.UTF-8";
char *old_locale;
AccelVec3 *vecs;
- old_locale = setlocale (LC_ALL, "fr_FR.UTF-8");
+ old_locale = setlocale (LC_ALL, fr_locale);
/* French locale not available? */
- g_assert_nonnull (old_locale);
+ if (!old_locale) {
+ g_test_skip_printf ("Local %s not available", fr_locale);
+ return;
+ }
/* Default matrix */
g_assert_true (parse_mount_matrix (DEFAULT_MATRIX, &vecs));
diff --git a/tests/integration-test.py b/tests/integration-test.py
index 20c0e92..4ccabb3 100755
--- a/tests/integration-test.py
+++ b/tests/integration-test.py
@@ -27,6 +27,7 @@ import tempfile
import psutil
import subprocess
import unittest
+import locale
import time
try:
@@ -50,6 +51,7 @@ SP_COMPASS = 'net.hadess.SensorProxy.Compass'
SP_COMPASS_PATH = '/net/hadess/SensorProxy/Compass'
class Tests(dbusmock.DBusTestCase):
+
@classmethod
def setUpClass(cls):
# run from local build tree if we are in one, otherwise use system instance
@@ -92,6 +94,15 @@ class Tests(dbusmock.DBusTestCase):
cls.dbus = Gio.bus_get_sync(Gio.BusType.SYSTEM, None)
cls.dbus_con = cls.get_dbus(True)
+ # Some test outputs require the daemon to run under the fr locale:
+ # so check if that's available
+ try:
+ old_loc = locale.setlocale(locale.LC_ALL, 'fr_FR.UTF-8')
+ cls.has_fr = True
+ locale.setlocale(locale.LC_ALL, old_loc)
+ except:
+ cls.has_fr = False
+
@classmethod
def tearDownClass(cls):
cls.test_bus.down()
@@ -612,10 +623,9 @@ class Tests(dbusmock.DBusTestCase):
mock_file.write(data)
self.proxy.ClaimAccelerometer()
self.assertEventually(lambda: self.have_text_in_log('Accel sent by driver'))
- # If the 2nd test fails, it's likely that fr_FR.UTF-8 locale isn't supported
self.assertEqual(self.have_text_in_log('scale: 0,000000,0,000000,0,000000'), False)
- self.assertEqual(self.have_text_in_log('scale: 0,000010,0,000010,0,000010'), True)
-
+ if self.has_fr:
+ self.assertEqual(self.have_text_in_log('scale: 0,000010,0,000010,0,000010'), True)
self.stop_daemon()
def test_iio_scale_decimal_separator_offset(self):
@@ -715,9 +725,9 @@ class Tests(dbusmock.DBusTestCase):
self.proxy.ClaimAccelerometer()
self.assertEventually(lambda: self.have_text_in_log('Accel read from IIO on'))
- # If the 2nd test fails, it's likely that fr_FR.UTF-8 locale isn't supported
self.assertEqual(self.have_text_in_log('scale 1,000000,1,000000,1,000000'), False)
- self.assertEqual(self.have_text_in_log('scale 0,000001,0,000001,0,000001'), True)
+ if self.has_fr:
+ self.assertEqual(self.have_text_in_log('scale 0,000001,0,000001,0,000001'), True)
self.assertEventually(lambda: self.get_dbus_property('AccelerometerOrientation') == 'normal')
--
GitLab