summaryrefslogtreecommitdiffstats
path: root/tests/locale_test.cpp
diff options
context:
space:
mode:
authorElliott Hughes <enh@google.com>2014-11-04 18:03:44 -0800
committerElliott Hughes <enh@google.com>2014-11-04 18:03:44 -0800
commit7e0d0f8572152c47a993e7bc8407690556754bd4 (patch)
tree4098f53c0801f8076c1080604ab98a363efdbd41 /tests/locale_test.cpp
parent695781b6f0419f82939176a6ec1a240300d9f036 (diff)
downloadbionic-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.cpp18
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);