test557: set a known good numeric locale

Windows does not allow setting the locale with environment variables (as
the test attempted to do), so the test failed when run with a user
locale that has a comma as radixchar. Changed the test to call
setlocale() explicitly to ensure that a known working locale is set even
on Windows.
This commit is contained in:
Dan Fandrich 2017-05-04 18:03:03 +02:00
parent ff10852158
commit 7cb1e1ee01
2 changed files with 13 additions and 5 deletions

View File

@ -15,10 +15,6 @@ unittest
<server>
none
</server>
<setenv>
LC_ALL=
LC_NUMERIC=C
</setenv>
# tool is what to use instead of 'curl'
<tool>
lib557

View File

@ -26,8 +26,12 @@
*/
#include "test.h"
#include "memdebug.h"
#ifdef HAVE_LOCALE_H
# include <locale.h> /* for setlocale() */
#endif
#include "memdebug.h"
#if (CURL_SIZEOF_CURL_OFF_T > CURL_SIZEOF_LONG)
# define MPRNT_SUFFIX_CURL_OFF_T LL
@ -1656,6 +1660,14 @@ int test(char *URL)
int errors = 0;
(void)URL; /* not used */
#ifdef HAVE_SETLOCALE
/*
* The test makes assumptions about the numeric locale (specifically,
* RADIXCHAR) so set it to a known working (and portable) one.
*/
setlocale(LC_NUMERIC, "C");
#endif
errors += test_weird_arguments();
errors += test_unsigned_short_formatting();