summaryrefslogtreecommitdiff
path: root/gettext-tools/gnulib-tests/test-localename.c
diff options
context:
space:
mode:
Diffstat (limited to 'gettext-tools/gnulib-tests/test-localename.c')
-rw-r--r--gettext-tools/gnulib-tests/test-localename.c42
1 files changed, 32 insertions, 10 deletions
diff --git a/gettext-tools/gnulib-tests/test-localename.c b/gettext-tools/gnulib-tests/test-localename.c
index b5dd742..be8fcaf 100644
--- a/gettext-tools/gnulib-tests/test-localename.c
+++ b/gettext-tools/gnulib-tests/test-localename.c
@@ -1,5 +1,5 @@
/* Test of gl_locale_name function and its variants.
- Copyright (C) 2007-2015 Free Software Foundation, Inc.
+ Copyright (C) 2007-2016 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -183,6 +183,8 @@ test_locale_name (void)
ASSERT (strcmp (name, "fr_FR.UTF-8") == 0);
name = gl_locale_name (LC_MESSAGES, "LC_MESSAGES");
ASSERT (strcmp (name, "fr_FR.UTF-8") == 0);
+ uselocale (LC_GLOBAL_LOCALE);
+ freelocale (locale);
}
}
@@ -194,11 +196,13 @@ test_locale_name (void)
for (i = 0; i < SIZEOF (categories); i++)
{
int category_mask = categories[i].mask;
- locale_t locale = newlocale (LC_ALL_MASK, "fr_FR.UTF-8", NULL);
- if (locale != NULL)
+ locale_t loc = newlocale (LC_ALL_MASK, "fr_FR.UTF-8", NULL);
+ if (loc != NULL)
{
- locale = newlocale (category_mask, "de_DE.UTF-8", locale);
- if (locale != NULL)
+ locale_t locale = newlocale (category_mask, "de_DE.UTF-8", loc);
+ if (locale == NULL)
+ freelocale (loc);
+ else
{
unsigned int j;
@@ -212,6 +216,8 @@ test_locale_name (void)
else
ASSERT (strcmp (name_j, "fr_FR.UTF-8") == 0);
}
+ uselocale (LC_GLOBAL_LOCALE);
+ freelocale (locale);
}
}
}
@@ -245,6 +251,8 @@ test_locale_name_thread (void)
ASSERT (strcmp (name, "fr_FR.UTF-8") == 0);
name = gl_locale_name_thread (LC_MESSAGES, "LC_MESSAGES");
ASSERT (strcmp (name, "fr_FR.UTF-8") == 0);
+ uselocale (LC_GLOBAL_LOCALE);
+ freelocale (locale);
}
}
@@ -256,11 +264,13 @@ test_locale_name_thread (void)
for (i = 0; i < SIZEOF (categories); i++)
{
int category_mask = categories[i].mask;
- locale_t locale = newlocale (LC_ALL_MASK, "fr_FR.UTF-8", NULL);
- if (locale != NULL)
+ locale_t loc = newlocale (LC_ALL_MASK, "fr_FR.UTF-8", NULL);
+ if (loc != NULL)
{
- locale = newlocale (category_mask, "de_DE.UTF-8", locale);
- if (locale != NULL)
+ locale_t locale = newlocale (category_mask, "de_DE.UTF-8", loc);
+ if (locale == NULL)
+ freelocale (loc);
+ else
{
unsigned int j;
@@ -275,6 +285,8 @@ test_locale_name_thread (void)
else
ASSERT (strcmp (name_j, "fr_FR.UTF-8") == 0);
}
+ uselocale (LC_GLOBAL_LOCALE);
+ freelocale (locale);
}
}
}
@@ -444,6 +456,7 @@ test_locale_name_thread (void)
ASSERT (strcmp (unsaved_names[j][i], name) == 0);
}
uselocale (LC_GLOBAL_LOCALE);
+ freelocale (locale);
}
}
/* Verify the unsaved_names are still valid. */
@@ -453,7 +466,10 @@ test_locale_name_thread (void)
unsigned int i;
for (i = 0; i < SIZEOF (categories); i++)
- ASSERT (strcmp (unsaved_names[j][i], saved_names[j][i]) == 0);
+ {
+ ASSERT (strcmp (unsaved_names[j][i], saved_names[j][i]) == 0);
+ free (saved_names[j][i]);
+ }
}
}
#else
@@ -590,6 +606,8 @@ test_locale_name_posix (void)
uselocale (locale);
name = gl_locale_name_posix (LC_MESSAGES, "LC_MESSAGES");
ASSERT (strcmp (name, "C") == 0);
+ uselocale (LC_GLOBAL_LOCALE);
+ freelocale (locale);
}
}
#endif
@@ -702,6 +720,8 @@ test_locale_name_environ (void)
uselocale (locale);
name = gl_locale_name_environ (LC_MESSAGES, "LC_MESSAGES");
ASSERT (strcmp (name, "C") == 0);
+ uselocale (LC_GLOBAL_LOCALE);
+ freelocale (locale);
}
}
#endif
@@ -729,6 +749,8 @@ test_locale_name_default (void)
{
uselocale (locale);
ASSERT (strcmp (gl_locale_name_default (), name) == 0);
+ uselocale (LC_GLOBAL_LOCALE);
+ freelocale (locale);
}
}
#endif