Home | History | Annotate | Download | only in tests
      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