Loading base/include/android-base/parseint.h +6 −2 Original line number Diff line number Diff line Loading @@ -47,7 +47,9 @@ bool ParseUint(const char* s, T* out, T max = std::numeric_limits<T>::max(), if (max < result) { return false; } if (out != nullptr) { *out = static_cast<T>(result); } return true; } Loading Loading @@ -87,7 +89,9 @@ bool ParseInt(const char* s, T* out, if (result < min || max < result) { return false; } if (out != nullptr) { *out = static_cast<T>(result); } return true; } Loading base/parseint_test.cpp +8 −0 Original line number Diff line number Diff line Loading @@ -36,6 +36,10 @@ TEST(parseint, signed_smoke) { ASSERT_EQ(12, i); ASSERT_FALSE(android::base::ParseInt("-12", &i, 0, 15)); ASSERT_FALSE(android::base::ParseInt("16", &i, 0, 15)); ASSERT_FALSE(android::base::ParseInt<int>("x", nullptr)); ASSERT_FALSE(android::base::ParseInt<int>("123x", nullptr)); ASSERT_TRUE(android::base::ParseInt<int>("1234", nullptr)); } TEST(parseint, unsigned_smoke) { Loading @@ -55,6 +59,10 @@ TEST(parseint, unsigned_smoke) { ASSERT_EQ(12u, i); ASSERT_FALSE(android::base::ParseUint("-12", &i, 15u)); ASSERT_FALSE(android::base::ParseUint("16", &i, 15u)); ASSERT_FALSE(android::base::ParseUint<unsigned short>("x", nullptr)); ASSERT_FALSE(android::base::ParseUint<unsigned short>("123x", nullptr)); ASSERT_TRUE(android::base::ParseUint<unsigned short>("1234", nullptr)); } TEST(parseint, no_implicit_octal) { Loading Loading
base/include/android-base/parseint.h +6 −2 Original line number Diff line number Diff line Loading @@ -47,7 +47,9 @@ bool ParseUint(const char* s, T* out, T max = std::numeric_limits<T>::max(), if (max < result) { return false; } if (out != nullptr) { *out = static_cast<T>(result); } return true; } Loading Loading @@ -87,7 +89,9 @@ bool ParseInt(const char* s, T* out, if (result < min || max < result) { return false; } if (out != nullptr) { *out = static_cast<T>(result); } return true; } Loading
base/parseint_test.cpp +8 −0 Original line number Diff line number Diff line Loading @@ -36,6 +36,10 @@ TEST(parseint, signed_smoke) { ASSERT_EQ(12, i); ASSERT_FALSE(android::base::ParseInt("-12", &i, 0, 15)); ASSERT_FALSE(android::base::ParseInt("16", &i, 0, 15)); ASSERT_FALSE(android::base::ParseInt<int>("x", nullptr)); ASSERT_FALSE(android::base::ParseInt<int>("123x", nullptr)); ASSERT_TRUE(android::base::ParseInt<int>("1234", nullptr)); } TEST(parseint, unsigned_smoke) { Loading @@ -55,6 +59,10 @@ TEST(parseint, unsigned_smoke) { ASSERT_EQ(12u, i); ASSERT_FALSE(android::base::ParseUint("-12", &i, 15u)); ASSERT_FALSE(android::base::ParseUint("16", &i, 15u)); ASSERT_FALSE(android::base::ParseUint<unsigned short>("x", nullptr)); ASSERT_FALSE(android::base::ParseUint<unsigned short>("123x", nullptr)); ASSERT_TRUE(android::base::ParseUint<unsigned short>("1234", nullptr)); } TEST(parseint, no_implicit_octal) { Loading