blob: a440c9f5d75f65f63f654781ff700340acdd06c8 [file] [log] [blame]
#include <stddef.h>
#include <wchar.h>
#include <minitest/minitest.h>
TEST(wchar, wchar_limits) {
ASSERT_EQ(sizeof(__WCHAR_TYPE__), sizeof(wchar_t));
ASSERT_EQ(sizeof(int), sizeof(wint_t));
#ifdef __arm__
ASSERT_GT(wchar_t(0), wchar_t(-1));
ASSERT_EQ(wchar_t(0), WCHAR_MIN);
ASSERT_EQ(wchar_t(0xffffffff), WCHAR_MAX);
#else
ASSERT_LT(wchar_t(0), wchar_t(-1));
ASSERT_EQ(wchar_t(0x80000000), WCHAR_MIN);
ASSERT_EQ(wchar_t(0x7fffffff), WCHAR_MAX);
#endif
}
TEST(wchar, wcschr) {
static const wchar_t kString[] = L"abcda";
EXPECT_EQ(kString + 0, wcschr(kString, L'a'));
EXPECT_EQ(kString + 1, wcschr(kString, L'b'));
EXPECT_EQ(kString + 2, wcschr(kString, L'c'));
EXPECT_EQ(kString + 3, wcschr(kString, L'd'));
EXPECT_FALSE(wcschr(kString, L'e'));
EXPECT_EQ(kString + 5, wcschr(kString, L'\0'));
}
TEST(wchar, wcsrchr) {
static const wchar_t kString[] = L"abcda";
EXPECT_EQ(kString + 4, wcsrchr(kString, L'a'));
EXPECT_EQ(kString + 1, wcsrchr(kString, L'b'));
EXPECT_EQ(kString + 2, wcsrchr(kString, L'c'));
EXPECT_EQ(kString + 3, wcsrchr(kString, L'd'));
EXPECT_FALSE(wcsrchr(kString, L'e'));
EXPECT_EQ(kString + 5, wcsrchr(kString, L'\0'));
}