diff options
author | Elliott Hughes <enh@google.com> | 2014-09-23 14:53:10 -0700 |
---|---|---|
committer | Elliott Hughes <enh@google.com> | 2014-09-23 14:53:10 -0700 |
commit | b05ec5ae933987e6b4a4f6a318cb13e035ad33e9 (patch) | |
tree | 64f418a870ba50ccec912a11f90605418f74c844 /tests/wchar_test.cpp | |
parent | 8642165344217877b8a70811d19e09b584a0e10a (diff) | |
download | android_bionic-b05ec5ae933987e6b4a4f6a318cb13e035ad33e9.tar.gz android_bionic-b05ec5ae933987e6b4a4f6a318cb13e035ad33e9.tar.bz2 android_bionic-b05ec5ae933987e6b4a4f6a318cb13e035ad33e9.zip |
Pull in upstream fixes to reject invalid bases.
Also add tests to make sure the full set works correctly.
Change-Id: I3e7f237f12c9c93e1185a97c9717803e7e55a73c
Diffstat (limited to 'tests/wchar_test.cpp')
-rw-r--r-- | tests/wchar_test.cpp | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/tests/wchar_test.cpp b/tests/wchar_test.cpp index 760475fa1..887266cfa 100644 --- a/tests/wchar_test.cpp +++ b/tests/wchar_test.cpp @@ -520,3 +520,75 @@ TEST(stdio, open_wmemstream_EINVAL) { GTEST_LOG_(INFO) << "This test does nothing.\n"; #endif } + +TEST(wchar, wcstol_EINVAL) { + errno = 0; + wcstol(L"123", NULL, -1); + ASSERT_EQ(EINVAL, errno); + errno = 0; + wcstol(L"123", NULL, 1); + ASSERT_EQ(EINVAL, errno); + errno = 0; + wcstol(L"123", NULL, 37); + ASSERT_EQ(EINVAL, errno); +} + +TEST(wchar, wcstoll_EINVAL) { + errno = 0; + wcstoll(L"123", NULL, -1); + ASSERT_EQ(EINVAL, errno); + errno = 0; + wcstoll(L"123", NULL, 1); + ASSERT_EQ(EINVAL, errno); + errno = 0; + wcstoll(L"123", NULL, 37); + ASSERT_EQ(EINVAL, errno); +} + +TEST(wchar, wcstoul_EINVAL) { + errno = 0; + wcstoul(L"123", NULL, -1); + ASSERT_EQ(EINVAL, errno); + errno = 0; + wcstoul(L"123", NULL, 1); + ASSERT_EQ(EINVAL, errno); + errno = 0; + wcstoul(L"123", NULL, 37); + ASSERT_EQ(EINVAL, errno); +} + +TEST(wchar, wcstoull_EINVAL) { + errno = 0; + wcstoull(L"123", NULL, -1); + ASSERT_EQ(EINVAL, errno); + errno = 0; + wcstoull(L"123", NULL, 1); + ASSERT_EQ(EINVAL, errno); + errno = 0; + wcstoull(L"123", NULL, 37); + ASSERT_EQ(EINVAL, errno); +} + +TEST(wchar, wcstoll_l_EINVAL) { + errno = 0; + wcstoll_l(L"123", NULL, -1, LC_GLOBAL_LOCALE); + ASSERT_EQ(EINVAL, errno); + errno = 0; + wcstoll_l(L"123", NULL, 1, LC_GLOBAL_LOCALE); + ASSERT_EQ(EINVAL, errno); + errno = 0; + wcstoll_l(L"123", NULL, 37, LC_GLOBAL_LOCALE); + ASSERT_EQ(EINVAL, errno); +} + +TEST(wchar, wcstoull_l_EINVAL) { + errno = 0; + wcstoull_l(L"123", NULL, -1, LC_GLOBAL_LOCALE); + ASSERT_EQ(EINVAL, errno); + errno = 0; + wcstoull_l(L"123", NULL, 1, LC_GLOBAL_LOCALE); + ASSERT_EQ(EINVAL, errno); + errno = 0; + wcstoull_l(L"123", NULL, 37, LC_GLOBAL_LOCALE); + ASSERT_EQ(EINVAL, errno); +} |