mirror of
				https://github.com/eledio-devices/thirdparty-ArduinoJson.git
				synced 2025-10-31 16:14:11 +01:00 
			
		
		
		
	Increased test coverage of MessagePack serialization
This commit is contained in:
		| @@ -32,6 +32,47 @@ TEST_CASE("deserialize MsgPack object") { | ||||
|       REQUIRE(obj["one"] == 1); | ||||
|       REQUIRE(obj["two"] == 2); | ||||
|     } | ||||
|  | ||||
|     SECTION("key is str 8") { | ||||
|       const char* input = "\x82\xd9\x03one\x01\xd9\x03two\x02"; | ||||
|  | ||||
|       DeserializationError error = deserializeMsgPack(doc, input); | ||||
|       JsonObject obj = doc.as<JsonObject>(); | ||||
|  | ||||
|       REQUIRE(error == DeserializationError::Ok); | ||||
|       REQUIRE(doc.is<JsonObject>()); | ||||
|       REQUIRE(obj.size() == 2); | ||||
|       REQUIRE(obj["one"] == 1); | ||||
|       REQUIRE(obj["two"] == 2); | ||||
|     } | ||||
|  | ||||
|     SECTION("key is str 16") { | ||||
|       const char* input = | ||||
|           "\x82\xdb\x00\x00\x00\x03one\x01\xdb\x00\x00\x00\x03two\x02"; | ||||
|  | ||||
|       DeserializationError error = deserializeMsgPack(doc, input); | ||||
|       JsonObject obj = doc.as<JsonObject>(); | ||||
|  | ||||
|       REQUIRE(error == DeserializationError::Ok); | ||||
|       REQUIRE(doc.is<JsonObject>()); | ||||
|       REQUIRE(obj.size() == 2); | ||||
|       REQUIRE(obj["one"] == 1); | ||||
|       REQUIRE(obj["two"] == 2); | ||||
|     } | ||||
|  | ||||
|     SECTION("key is str 32") { | ||||
|       const char* input = | ||||
|           "\x82\xdb\x00\x00\x00\x03one\x01\xdb\x00\x00\x00\x03two\x02"; | ||||
|  | ||||
|       DeserializationError error = deserializeMsgPack(doc, input); | ||||
|       JsonObject obj = doc.as<JsonObject>(); | ||||
|  | ||||
|       REQUIRE(error == DeserializationError::Ok); | ||||
|       REQUIRE(doc.is<JsonObject>()); | ||||
|       REQUIRE(obj.size() == 2); | ||||
|       REQUIRE(obj["one"] == 1); | ||||
|       REQUIRE(obj["two"] == 2); | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   SECTION("map 16") { | ||||
|   | ||||
| @@ -21,10 +21,9 @@ static void check(const JsonArray array, const char (&expected_data)[N]) { | ||||
|   check(array, expected_data, expected_len); | ||||
| } | ||||
|  | ||||
| // TODO: this function is used by the commented test | ||||
| // static void check(const JsonArray array, const std::string& expected) { | ||||
| //   check(array, expected.data(), expected.length()); | ||||
| // } | ||||
| static void check(const JsonArray array, const std::string& expected) { | ||||
|   check(array, expected.data(), expected.length()); | ||||
| } | ||||
|  | ||||
| TEST_CASE("serialize MsgPack array") { | ||||
|   DynamicJsonDocument doc; | ||||
| @@ -49,12 +48,11 @@ TEST_CASE("serialize MsgPack array") { | ||||
|           "\x0E\x0F"); | ||||
|   } | ||||
|  | ||||
|   // TODO: this test is too slow | ||||
|   // SECTION("array 32") { | ||||
|   //   const char* nil = 0; | ||||
|   //   for (int i = 0; i < 65536; i++) array.add(nil); | ||||
|   // | ||||
|   //   check(array, | ||||
|   //         std::string("\xDD\x00\x01\x00\x00", 5) + std::string(65536, 0xC0)); | ||||
|   // } | ||||
|   SECTION("array 32") { | ||||
|     const char* nil = 0; | ||||
|     for (int i = 0; i < 65536; i++) array.add(nil); | ||||
|  | ||||
|     check(array, | ||||
|           std::string("\xDD\x00\x01\x00\x00", 5) + std::string(65536, '\xc0')); | ||||
|   } | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user