Merge "Add a log_allocator_stats_on_exit option." into main
diff --git a/tests/ctype_test.cpp b/tests/ctype_test.cpp
index 826d39a..18fbfc0 100644
--- a/tests/ctype_test.cpp
+++ b/tests/ctype_test.cpp
@@ -293,40 +293,57 @@
}
TEST(ctype, toascii) {
- EXPECT_EQ('a', toascii('a'));
- EXPECT_EQ('a', toascii(0x80 | 'a'));
+ // POSIX explicitly says that toascii() returns (c & 0x7f),
+ // so there's no EOF-preserving behavior here and we start from 0.
+ for (int i = 0; i < kMax; ++i) {
+ if (i <= 0x7f) {
+ EXPECT_EQ(i, toascii(i));
+ } else {
+ EXPECT_EQ(i & 0x7f, toascii(i));
+ }
+ }
}
TEST(ctype, tolower) {
EXPECT_EQ('!', tolower('!'));
EXPECT_EQ('a', tolower('a'));
EXPECT_EQ('a', tolower('A'));
+ EXPECT_EQ('z', tolower('z'));
+ EXPECT_EQ('z', tolower('Z'));
}
TEST(ctype, tolower_l) {
EXPECT_EQ('!', tolower_l('!', LC_GLOBAL_LOCALE));
EXPECT_EQ('a', tolower_l('a', LC_GLOBAL_LOCALE));
EXPECT_EQ('a', tolower_l('A', LC_GLOBAL_LOCALE));
+ EXPECT_EQ('z', tolower_l('z', LC_GLOBAL_LOCALE));
+ EXPECT_EQ('z', tolower_l('Z', LC_GLOBAL_LOCALE));
}
TEST(ctype, _tolower) {
// _tolower may mangle characters for which isupper is false.
EXPECT_EQ('a', _tolower('A'));
+ EXPECT_EQ('z', _tolower('Z'));
}
TEST(ctype, toupper) {
EXPECT_EQ('!', toupper('!'));
EXPECT_EQ('A', toupper('a'));
EXPECT_EQ('A', toupper('A'));
+ EXPECT_EQ('Z', toupper('z'));
+ EXPECT_EQ('Z', toupper('Z'));
}
TEST(ctype, toupper_l) {
EXPECT_EQ('!', toupper_l('!', LC_GLOBAL_LOCALE));
EXPECT_EQ('A', toupper_l('a', LC_GLOBAL_LOCALE));
EXPECT_EQ('A', toupper_l('A', LC_GLOBAL_LOCALE));
+ EXPECT_EQ('Z', toupper_l('z', LC_GLOBAL_LOCALE));
+ EXPECT_EQ('Z', toupper_l('Z', LC_GLOBAL_LOCALE));
}
TEST(ctype, _toupper) {
// _toupper may mangle characters for which islower is false.
EXPECT_EQ('A', _toupper('a'));
+ EXPECT_EQ('Z', _toupper('z'));
}
diff --git a/tests/wctype_test.cpp b/tests/wctype_test.cpp
index 8a254bc..f4b7a8f 100644
--- a/tests/wctype_test.cpp
+++ b/tests/wctype_test.cpp
@@ -109,6 +109,8 @@
EXPECT_EQ(wint_t('!'), towlower(L'!'));
EXPECT_EQ(wint_t('a'), towlower(L'a'));
EXPECT_EQ(wint_t('a'), towlower(L'A'));
+ EXPECT_EQ(wint_t('z'), towlower(L'z'));
+ EXPECT_EQ(wint_t('z'), towlower(L'Z'));
if (have_dl()) {
EXPECT_EQ(wint_t(L'ç'), towlower(L'ç'));
EXPECT_EQ(wint_t(L'ç'), towlower(L'Ç'));
@@ -125,6 +127,8 @@
EXPECT_EQ(wint_t('!'), towlower_l(L'!', l.l));
EXPECT_EQ(wint_t('a'), towlower_l(L'a', l.l));
EXPECT_EQ(wint_t('a'), towlower_l(L'A', l.l));
+ EXPECT_EQ(wint_t('z'), towlower_l(L'z', l.l));
+ EXPECT_EQ(wint_t('z'), towlower_l(L'Z', l.l));
if (have_dl()) {
EXPECT_EQ(wint_t(L'ç'), towlower_l(L'ç', l.l));
EXPECT_EQ(wint_t(L'ç'), towlower_l(L'Ç', l.l));
@@ -140,6 +144,8 @@
EXPECT_EQ(wint_t('!'), towupper(L'!'));
EXPECT_EQ(wint_t('A'), towupper(L'a'));
EXPECT_EQ(wint_t('A'), towupper(L'A'));
+ EXPECT_EQ(wint_t('Z'), towupper(L'z'));
+ EXPECT_EQ(wint_t('Z'), towupper(L'Z'));
if (have_dl()) {
EXPECT_EQ(wint_t(L'Ç'), towupper(L'ç'));
EXPECT_EQ(wint_t(L'Ç'), towupper(L'Ç'));
@@ -156,6 +162,8 @@
EXPECT_EQ(wint_t('!'), towupper_l(L'!', l.l));
EXPECT_EQ(wint_t('A'), towupper_l(L'a', l.l));
EXPECT_EQ(wint_t('A'), towupper_l(L'A', l.l));
+ EXPECT_EQ(wint_t('Z'), towupper_l(L'z', l.l));
+ EXPECT_EQ(wint_t('Z'), towupper_l(L'Z', l.l));
if (have_dl()) {
EXPECT_EQ(wint_t(L'Ç'), towupper_l(L'ç', l.l));
EXPECT_EQ(wint_t(L'Ç'), towupper_l(L'Ç', l.l));