diff options
author | Elliott Hughes <enh@google.com> | 2014-11-04 18:03:44 -0800 |
---|---|---|
committer | Elliott Hughes <enh@google.com> | 2014-11-04 18:03:44 -0800 |
commit | 7e0d0f8572152c47a993e7bc8407690556754bd4 (patch) | |
tree | 4098f53c0801f8076c1080604ab98a363efdbd41 /tests/locale_test.cpp | |
parent | 695781b6f0419f82939176a6ec1a240300d9f036 (diff) | |
download | bionic-7e0d0f8572152c47a993e7bc8407690556754bd4.zip bionic-7e0d0f8572152c47a993e7bc8407690556754bd4.tar.gz bionic-7e0d0f8572152c47a993e7bc8407690556754bd4.tar.bz2 |
Fix newlocale with a NULL locale name.
Bug: https://code.google.com/p/android/issues/detail?id=78567
Change-Id: I272dabc12ab186b44a525c7e8ac1846e62334e85
Diffstat (limited to 'tests/locale_test.cpp')
-rw-r--r-- | tests/locale_test.cpp | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/tests/locale_test.cpp b/tests/locale_test.cpp index 7ec607a..f308af5 100644 --- a/tests/locale_test.cpp +++ b/tests/locale_test.cpp @@ -71,20 +71,30 @@ TEST(locale, setlocale) { EXPECT_EQ(ENOENT, errno); // POSIX specified, not an implementation detail! } -TEST(locale, newlocale) { +TEST(locale, newlocale_invalid_category_mask) { errno = 0; EXPECT_EQ(0, newlocale(1 << 20, "C", 0)); EXPECT_EQ(EINVAL, errno); +} - locale_t l = newlocale(LC_ALL, "C", 0); - ASSERT_TRUE(l != NULL); - freelocale(l); +TEST(locale, newlocale_NULL_locale_name) { + errno = 0; + EXPECT_EQ(0, newlocale(LC_ALL, NULL, 0)); + EXPECT_EQ(EINVAL, errno); +} +TEST(locale, newlocale_bad_locale_name) { errno = 0; EXPECT_EQ(0, newlocale(LC_ALL, "this-is-not-a-locale", 0)); EXPECT_EQ(ENOENT, errno); // POSIX specified, not an implementation detail! } +TEST(locale, newlocale) { + locale_t l = newlocale(LC_ALL, "C", 0); + ASSERT_TRUE(l != NULL); + freelocale(l); +} + TEST(locale, duplocale) { locale_t cloned_global = duplocale(LC_GLOBAL_LOCALE); ASSERT_TRUE(cloned_global != NULL); |