From 926446f4aab62d5fa02840d39d661de61632292c Mon Sep 17 00:00:00 2001 From: David Herrmann Date: Fri, 15 Aug 2014 13:20:18 +0200 Subject: test: fix strtod test for real The "0,5" syntax was actually right. The real problem is, the test should only run if the local system has the de_DE.UTF-8 locale. Therefore, skip the tests if setlocale() fails. This is kinda ugly, as it is done silently, but we cannot skip partial tests with the current infrastructure. Should be fine this way. --- src/test/test-util.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) (limited to 'src/test/test-util.c') diff --git a/src/test/test-util.c b/src/test/test-util.c index 1850f9772..7d81b0b7b 100644 --- a/src/test/test-util.c +++ b/src/test/test-util.c @@ -202,20 +202,21 @@ static void test_safe_atod(void) { assert_se(*e == ','); /* Check if this really is locale independent */ - setlocale(LC_NUMERIC, "de_DE.utf8"); + if (setlocale(LC_NUMERIC, "de_DE.utf8")) { - r = safe_atod("0.2244", &d); - assert_se(r == 0); - assert_se(fabs(d - 0.2244) < 0.000001); + r = safe_atod("0.2244", &d); + assert_se(r == 0); + assert_se(fabs(d - 0.2244) < 0.000001); - r = safe_atod("0,5", &d); - assert_se(r == -EINVAL); + r = safe_atod("0,5", &d); + assert_se(r == -EINVAL); - errno = 0; - assert_se(fabs(strtod("0.5", &e) - 0.5) < 0.00001); + errno = 0; + assert_se(fabs(strtod("0,5", &e) - 0.5) < 0.00001); + } /* And check again, reset */ - setlocale(LC_NUMERIC, "C"); + assert_se(setlocale(LC_NUMERIC, "C")); r = safe_atod("0.2244", &d); assert_se(r == 0); -- cgit v1.2.3