mirror of
				https://github.com/eledio-devices/thirdparty-ArduinoJson.git
				synced 2025-11-01 00:38:27 +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["one"] == 1); | ||||||
|       REQUIRE(obj["two"] == 2); |       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") { |   SECTION("map 16") { | ||||||
|   | |||||||
| @@ -21,10 +21,9 @@ static void check(const JsonArray array, const char (&expected_data)[N]) { | |||||||
|   check(array, expected_data, expected_len); |   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) { | ||||||
| // static void check(const JsonArray array, const std::string& expected) { |   check(array, expected.data(), expected.length()); | ||||||
| //   check(array, expected.data(), expected.length()); | } | ||||||
| // } |  | ||||||
|  |  | ||||||
| TEST_CASE("serialize MsgPack array") { | TEST_CASE("serialize MsgPack array") { | ||||||
|   DynamicJsonDocument doc; |   DynamicJsonDocument doc; | ||||||
| @@ -49,12 +48,11 @@ TEST_CASE("serialize MsgPack array") { | |||||||
|           "\x0E\x0F"); |           "\x0E\x0F"); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   // TODO: this test is too slow |   SECTION("array 32") { | ||||||
|   // SECTION("array 32") { |     const char* nil = 0; | ||||||
|   //   const char* nil = 0; |     for (int i = 0; i < 65536; i++) array.add(nil); | ||||||
|   //   for (int i = 0; i < 65536; i++) array.add(nil); |  | ||||||
|   // |     check(array, | ||||||
|   //   check(array, |           std::string("\xDD\x00\x01\x00\x00", 5) + std::string(65536, '\xc0')); | ||||||
|   //         std::string("\xDD\x00\x01\x00\x00", 5) + std::string(65536, 0xC0)); |   } | ||||||
|   // } |  | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user