Loading adb/adb_utils.h +4 −1 Original line number Diff line number Diff line Loading @@ -110,7 +110,7 @@ inline std::string_view StripTrailingNulls(std::string_view str) { // Base-10 stroll on a string_view. template <typename T> inline bool ParseUint(T* result, std::string_view str, std::string_view* remaining) { inline bool ParseUint(T* result, std::string_view str, std::string_view* remaining = nullptr) { if (str.empty() || !isdigit(str[0])) { return false; } Loading @@ -135,6 +135,9 @@ inline bool ParseUint(T* result, std::string_view str, std::string_view* remaini *result = value; if (remaining) { *remaining = str.substr(it - str.begin()); } else { return it == str.end(); } return true; } adb/adb_utils_test.cpp +8 −0 Original line number Diff line number Diff line Loading @@ -206,6 +206,14 @@ void TestParseUint(std::string_view string, bool expected_success, uint32_t expe EXPECT_EQ(remaining, "foo"); } } // With trailing text, without remaining. { std::string text = std::string(string) + "foo"; uint32_t value; bool success = ParseUint(&value, text, nullptr); EXPECT_EQ(success, false); } } TEST(adb_utils, ParseUint) { Loading Loading
adb/adb_utils.h +4 −1 Original line number Diff line number Diff line Loading @@ -110,7 +110,7 @@ inline std::string_view StripTrailingNulls(std::string_view str) { // Base-10 stroll on a string_view. template <typename T> inline bool ParseUint(T* result, std::string_view str, std::string_view* remaining) { inline bool ParseUint(T* result, std::string_view str, std::string_view* remaining = nullptr) { if (str.empty() || !isdigit(str[0])) { return false; } Loading @@ -135,6 +135,9 @@ inline bool ParseUint(T* result, std::string_view str, std::string_view* remaini *result = value; if (remaining) { *remaining = str.substr(it - str.begin()); } else { return it == str.end(); } return true; }
adb/adb_utils_test.cpp +8 −0 Original line number Diff line number Diff line Loading @@ -206,6 +206,14 @@ void TestParseUint(std::string_view string, bool expected_success, uint32_t expe EXPECT_EQ(remaining, "foo"); } } // With trailing text, without remaining. { std::string text = std::string(string) + "foo"; uint32_t value; bool success = ParseUint(&value, text, nullptr); EXPECT_EQ(success, false); } } TEST(adb_utils, ParseUint) { Loading