aboutsummaryrefslogtreecommitdiffstats
path: root/tests/wchar_test.cpp
diff options
context:
space:
mode:
authorElliott Hughes <enh@google.com>2014-09-23 14:53:10 -0700
committerElliott Hughes <enh@google.com>2014-09-23 14:53:10 -0700
commitb05ec5ae933987e6b4a4f6a318cb13e035ad33e9 (patch)
tree64f418a870ba50ccec912a11f90605418f74c844 /tests/wchar_test.cpp
parent8642165344217877b8a70811d19e09b584a0e10a (diff)
downloadandroid_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.cpp72
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);
+}