Fixed JsonVariant::is<int>() that returned true for empty strings

This commit is contained in:
Benoit Blanchon
2018-07-05 09:53:11 +02:00
parent 954428e341
commit fa1a40ac6e
3 changed files with 8 additions and 3 deletions

View File

@ -5,6 +5,7 @@ HEAD
----
* Improved float serialization when `-fsingle-precision-constant` is used
* Fixed `JsonVariant::is<int>()` that returned true for empty strings
v5.13.2
-------

View File

@ -10,10 +10,10 @@ namespace ArduinoJson {
namespace Internals {
inline bool isInteger(const char* s) {
if (!s) return false;
if (!s || !*s) return false;
if (issign(*s)) s++;
while (isdigit(*s)) s++;
return *s == '\0';
}
}
}
} // namespace Internals
} // namespace ArduinoJson

View File

@ -12,6 +12,10 @@ TEST_CASE("isInteger()") {
REQUIRE_FALSE(isInteger(NULL));
}
SECTION("Empty String") {
REQUIRE_FALSE(isInteger(""));
}
SECTION("FloatNotInteger") {
REQUIRE_FALSE(isInteger("3.14"));
REQUIRE_FALSE(isInteger("-3.14"));