summaryrefslogtreecommitdiff
path: root/base/parseint_test.cpp
AgeCommit message (Collapse)Author
2020-05-19Migrate system/core/base to system/libbaseBaligh Uddin
BUG: 148941208 test: TH Change-Id: I1134f1e9e968b9273748e2483bea8d25e5c9e994
2018-08-29Set errno for all error return cases.Christopher Ferris
Test: Updated unit tests pass. Change-Id: I2c1f14ed44ce144a46cb2866c146fca89a05539e
2018-08-23Fix typo in parseint.untouched_on_failure testTom Cherry
This test means to check both that ParseInt() and ParseUint() do not change the result on failure, however it erroneously tested ParseInt() twice. Test: unit tests Change-Id: If534e2525827e19aba6cae0eef45668d57623efb
2018-08-22Fix two ParseInt edge casesTom Cherry
1) ParseInt and ParseUint accept strings that have spaces followed by a valid number, however the base check for determining hex numbers does not take this into account currently, but now does this this change. 2) ParseUint rejects negative numbers except in the case that the template argument is unsigned long long. That is a mistake; it should reject negative numbers in all cases and this change does that by rejecting any string with a - prefix. Bug: 112668205 Test: new (and old) unit tests Change-Id: I0179b42e50adc1b169cf0e6d830283b71210a029
2018-07-20ParseInt/ParseUint: allow validation only.Steven Moreland
Removes segfault if T* out != nullptr and just returns validation result. Bug: 110758329 Test: libbase_test Change-Id: I0f304533a7076bba977fbd1a715b9cc0d9e58e75
2018-04-19Add android::base::ParseByteCount.Elliott Hughes
Bug: N/A Test: ran tests Change-Id: Ib2adcf0a5b9494fcf8259b29974303e8516a9ad9
2016-10-13Move off std::sto* function which abort on failure.Elliott Hughes
Bug: http://b/31403370 Test: builds, boots, libbase tests pass Change-Id: I89cd7ca3d8f1c8a1bad0ddf3043439449d19a293
2015-12-04Track rename of base/ to android-base/.Elliott Hughes
Change-Id: Idf9444fece4aa89c93e15640de59a91f6e758ccf
2015-11-02Fix ParseInt/ParseUint to handle explicit "0x" hex.Elliott Hughes
Also improve fastboot error reporting around max-download-size. Change-Id: Ic3aec9460de01e5264a2803a0a6be3706d73026b
2015-09-11libbase_test: get it building for WindowsSpencer Low
Add to whitelist. For some reason, when compiling, parseint_test.cpp would encounter errors like the following: host cross C++: host_cross_libbase_test <= system/core/base/parseint_test.cpp In file included from external/gtest/include/gtest/gtest.h:1929:0, from system/core/base/parseint_test.cpp:19: system/core/base/parseint_test.cpp: In member function ‘virtual void parseint_signed_smoke_Test::TestBody()’: external/gtest/include/gtest/internal/gtest-internal.h:133:55: error: converting ‘false’ to pointer type for argument 1 of ‘char testing::internal::IsNullLiteralHelper(testing::internal::Secret*)’ [-Werror=conversion-null] (sizeof(::testing::internal::IsNullLiteralHelper(x)) == 1) ^ external/gtest/include/gtest/gtest_pred_impl.h:77:52: note: in definition of macro ‘GTEST_ASSERT_’ if (const ::testing::AssertionResult gtest_ar = (expression)) \ ^ external/gtest/include/gtest/gtest_pred_impl.h:166:3: note: in expansion of macro ‘GTEST_PRED_FORMAT2_’ GTEST_PRED_FORMAT2_(pred_format, v1, v2, GTEST_FATAL_FAILURE_) ^ external/gtest/include/gtest/gtest.h:1993:3: note: in expansion of macro ‘ASSERT_PRED_FORMAT2’ ASSERT_PRED_FORMAT2(::testing::internal:: \ ^ external/gtest/include/gtest/gtest.h:1994:32: note: in expansion of macro ‘GTEST_IS_NULL_LITERAL_’ EqHelper<GTEST_IS_NULL_LITERAL_(expected)>::Compare, \ ^ external/gtest/include/gtest/gtest.h:2011:32: note: in expansion of macro ‘GTEST_ASSERT_EQ’ # define ASSERT_EQ(val1, val2) GTEST_ASSERT_EQ(val1, val2) ^ system/core/base/parseint_test.cpp:23:3: note: in expansion of macro ‘ASSERT_EQ’ ASSERT_EQ(false, android::base::ParseInt("x", &i)); ^ For whatever reason, the gcc for Windows isn't handling the template metaprogramming correctly, so to work-around the issue, I search-and-replaced "ASSERT_EQ(false, " to "ASSERT_FALSE(" and "ASSERT_EQ(true, " to "ASSERT_TRUE(" and that seems to compile just fine for Linux and Windows (and the tests pass on both platforms). Change-Id: I05132909d1f4b18afff23139652a218649689f2d Signed-off-by: Spencer Low <CompareAndSwap@gmail.com>
2015-09-04Add ParseInt (and ParseUint).Elliott Hughes
strtol and family are hard to use correctly, and most callers don't even try. Change-Id: I2833622a92cccd4662c0c5bdbbef5eeb4e496914