1 #include <stddef.h> 2 #include <wchar.h> 3 4 #include <minitest/minitest.h> 5 6 TEST(wchar, wchar_limits) { 7 ASSERT_EQ(4U, sizeof(wchar_t)); 8 ASSERT_EQ(sizeof(int), sizeof(wint_t)); 9 #ifdef __arm__ 10 ASSERT_GT(wchar_t(0), wchar_t(-1)); 11 ASSERT_EQ(wchar_t(0), WCHAR_MIN); 12 ASSERT_EQ(wchar_t(0xffffffff), WCHAR_MAX); 13 #else 14 ASSERT_LT(wchar_t(0), wchar_t(-1)); 15 ASSERT_EQ(wchar_t(0x80000000), WCHAR_MIN); 16 ASSERT_EQ(wchar_t(0x7fffffff), WCHAR_MAX); 17 #endif 18 } 19 20 TEST(wchar, wcschr) { 21 static const wchar_t kString[] = L"abcda"; 22 EXPECT_EQ(kString + 0, wcschr(kString, L'a')); 23 EXPECT_EQ(kString + 1, wcschr(kString, L'b')); 24 EXPECT_EQ(kString + 2, wcschr(kString, L'c')); 25 EXPECT_EQ(kString + 3, wcschr(kString, L'd')); 26 EXPECT_FALSE(wcschr(kString, L'e')); 27 EXPECT_EQ(kString + 5, wcschr(kString, L'\0')); 28 } 29 30 TEST(wchar, wcsrchr) { 31 static const wchar_t kString[] = L"abcda"; 32 EXPECT_EQ(kString + 4, wcsrchr(kString, L'a')); 33 EXPECT_EQ(kString + 1, wcsrchr(kString, L'b')); 34 EXPECT_EQ(kString + 2, wcsrchr(kString, L'c')); 35 EXPECT_EQ(kString + 3, wcsrchr(kString, L'd')); 36 EXPECT_FALSE(wcsrchr(kString, L'e')); 37 EXPECT_EQ(kString + 5, wcsrchr(kString, L'\0')); 38 } 39