diff --git a/extras/tests/MsgPackDeserializer/errors.cpp b/extras/tests/MsgPackDeserializer/errors.cpp index 1219a5e7..821d311b 100644 --- a/extras/tests/MsgPackDeserializer/errors.cpp +++ b/extras/tests/MsgPackDeserializer/errors.cpp @@ -7,6 +7,8 @@ #include +#include "Allocators.hpp" + TEST_CASE("deserializeMsgPack() returns InvalidInput") { JsonDocument doc; @@ -228,3 +230,19 @@ TEST_CASE("deserializeMsgPack() replaces ext types by null") { 20) == "[null,42]"); } } + +TEST_CASE( + "deserializeMsgPack() returns NoMemory when string allocation fails") { + TimebombAllocator allocator(0); + JsonDocument doc(&allocator); + + SECTION("fixstr") { + DeserializationError err = deserializeMsgPack(doc, "\xA5hello", 9); + REQUIRE(err == DeserializationError::NoMemory); + } + + SECTION("bin 8") { + DeserializationError err = deserializeMsgPack(doc, "\xC4\x01X", 3); + REQUIRE(err == DeserializationError::NoMemory); + } +}