mirror of
				https://github.com/eledio-devices/thirdparty-ArduinoJson.git
				synced 2025-10-31 16:14:11 +01:00 
			
		
		
		
	Test: extracted executable Cpp11Tests
This commit is contained in:
		| @@ -2,11 +2,7 @@ | ||||
| # Copyright Benoit Blanchon 2014-2021 | ||||
| # MIT License | ||||
|  | ||||
| # we need C++11 for 'long long' | ||||
| set(CMAKE_CXX_STANDARD 11) | ||||
|  | ||||
| add_executable(MixedConfigurationTests | ||||
| 	cpp11.cpp | ||||
| 	decode_unicode_0.cpp | ||||
| 	decode_unicode_1.cpp | ||||
| 	enable_alignment_0.cpp | ||||
| @@ -22,8 +18,6 @@ add_executable(MixedConfigurationTests | ||||
| 	enable_string_deduplication_1.cpp | ||||
| 	use_double_0.cpp | ||||
| 	use_double_1.cpp | ||||
| 	use_long_long_0.cpp | ||||
| 	use_long_long_1.cpp | ||||
| ) | ||||
|  | ||||
| set_target_properties(MixedConfigurationTests PROPERTIES UNITY_BUILD OFF) | ||||
| @@ -33,4 +27,4 @@ add_test(MixedConfiguration MixedConfigurationTests) | ||||
| set_tests_properties(MixedConfiguration | ||||
| 	PROPERTIES | ||||
| 		LABELS 		"Catch" | ||||
| ) | ||||
| ) | ||||
|   | ||||
| @@ -1,94 +0,0 @@ | ||||
| #include <ArduinoJson.h> | ||||
|  | ||||
| #include <catch.hpp> | ||||
|  | ||||
| #if __cplusplus >= 201103L | ||||
|  | ||||
| TEST_CASE("nullptr") { | ||||
|   DynamicJsonDocument doc(4096); | ||||
|   JsonVariant variant = doc.to<JsonVariant>(); | ||||
|  | ||||
|   SECTION("JsonVariant == nullptr") { | ||||
|     REQUIRE((variant == nullptr)); | ||||
|     REQUIRE_FALSE((variant != nullptr)); | ||||
|   } | ||||
|  | ||||
|   SECTION("JsonVariant != nullptr") { | ||||
|     variant.set(42); | ||||
|  | ||||
|     REQUIRE_FALSE((variant == nullptr)); | ||||
|     REQUIRE((variant != nullptr)); | ||||
|   } | ||||
|  | ||||
|   SECTION("JsonVariant.set(nullptr)") { | ||||
|     variant.set(42); | ||||
|     variant.set(nullptr); | ||||
|  | ||||
|     REQUIRE(variant.isNull()); | ||||
|   } | ||||
|  | ||||
|   SECTION("JsonVariant.is<nullptr_t>()") { | ||||
|     variant.set(42); | ||||
|     REQUIRE(variant.is<std::nullptr_t>() == false); | ||||
|  | ||||
|     variant.clear(); | ||||
|     REQUIRE(variant.is<std::nullptr_t>() == true); | ||||
|   } | ||||
| } | ||||
|  | ||||
| TEST_CASE("Issue #1120") { | ||||
|   StaticJsonDocument<500> doc; | ||||
|   constexpr char str[] = | ||||
|       "{\"contents\":[{\"module\":\"Packet\"},{\"module\":\"Analog\"}]}"; | ||||
|   deserializeJson(doc, str); | ||||
|  | ||||
|   SECTION("MemberProxy<std::string>::isNull()") { | ||||
|     SECTION("returns false") { | ||||
|       auto value = doc[std::string("contents")]; | ||||
|       CHECK(value.isNull() == false); | ||||
|     } | ||||
|  | ||||
|     SECTION("returns true") { | ||||
|       auto value = doc[std::string("zontents")]; | ||||
|       CHECK(value.isNull() == true); | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   SECTION("ElementProxy<MemberProxy<const char*> >::isNull()") { | ||||
|     SECTION("returns false") {  // Issue #1120 | ||||
|       auto value = doc["contents"][1]; | ||||
|       CHECK(value.isNull() == false); | ||||
|     } | ||||
|  | ||||
|     SECTION("returns true") { | ||||
|       auto value = doc["contents"][2]; | ||||
|       CHECK(value.isNull() == true); | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   SECTION("MemberProxy<ElementProxy<MemberProxy>, const char*>::isNull()") { | ||||
|     SECTION("returns false") { | ||||
|       auto value = doc["contents"][1]["module"]; | ||||
|       CHECK(value.isNull() == false); | ||||
|     } | ||||
|  | ||||
|     SECTION("returns true") { | ||||
|       auto value = doc["contents"][1]["zodule"]; | ||||
|       CHECK(value.isNull() == true); | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   SECTION("MemberProxy<ElementProxy<MemberProxy>, std::string>::isNull()") { | ||||
|     SECTION("returns false") { | ||||
|       auto value = doc["contents"][1][std::string("module")]; | ||||
|       CHECK(value.isNull() == false); | ||||
|     } | ||||
|  | ||||
|     SECTION("returns true") { | ||||
|       auto value = doc["contents"][1][std::string("zodule")]; | ||||
|       CHECK(value.isNull() == true); | ||||
|     } | ||||
|   } | ||||
| } | ||||
|  | ||||
| #endif | ||||
| @@ -6,7 +6,7 @@ | ||||
|  | ||||
| static void assertParseFails(const char* json) { | ||||
|   DynamicJsonDocument doc(4096); | ||||
|   auto err = deserializeJson(doc, json); | ||||
|   DeserializationError err = deserializeJson(doc, json); | ||||
|  | ||||
|   REQUIRE(err == DeserializationError::InvalidInput); | ||||
| } | ||||
|   | ||||
| @@ -22,7 +22,8 @@ TEST_CASE("ARDUINOJSON_ENABLE_INFINITY == 1") { | ||||
|   } | ||||
|  | ||||
|   SECTION("deserializeJson()") { | ||||
|     auto err = deserializeJson(doc, "[Infinity,-Infinity,+Infinity]"); | ||||
|     DeserializationError err = | ||||
|         deserializeJson(doc, "[Infinity,-Infinity,+Infinity]"); | ||||
|     float a = doc[0]; | ||||
|     float b = doc[1]; | ||||
|     float c = doc[2]; | ||||
|   | ||||
| @@ -18,7 +18,7 @@ TEST_CASE("ARDUINOJSON_ENABLE_NAN == 0") { | ||||
|   } | ||||
|  | ||||
|   SECTION("deserializeJson()") { | ||||
|     auto err = deserializeJson(doc, "{\"X\":NaN}"); | ||||
|     DeserializationError err = deserializeJson(doc, "{\"X\":NaN}"); | ||||
|  | ||||
|     REQUIRE(err == DeserializationError::InvalidInput); | ||||
|   } | ||||
|   | ||||
| @@ -22,7 +22,7 @@ TEST_CASE("ARDUINOJSON_ENABLE_NAN == 1") { | ||||
|   } | ||||
|  | ||||
|   SECTION("deserializeJson()") { | ||||
|     auto err = deserializeJson(doc, "{\"X\":NaN}"); | ||||
|     DeserializationError err = deserializeJson(doc, "{\"X\":NaN}"); | ||||
|     float x = doc["X"]; | ||||
|  | ||||
|     REQUIRE(err == DeserializationError::Ok); | ||||
|   | ||||
| @@ -1,16 +0,0 @@ | ||||
| #define ARDUINOJSON_USE_LONG_LONG 0 | ||||
| #include <ArduinoJson.h> | ||||
|  | ||||
| #include <catch.hpp> | ||||
|  | ||||
| TEST_CASE("ARDUINOJSON_USE_LONG_LONG == 0") { | ||||
|   DynamicJsonDocument doc(4096); | ||||
|  | ||||
|   doc["A"] = 42; | ||||
|   doc["B"] = 84; | ||||
|  | ||||
|   std::string json; | ||||
|   serializeJson(doc, json); | ||||
|  | ||||
|   REQUIRE(json == "{\"A\":42,\"B\":84}"); | ||||
| } | ||||
| @@ -1,17 +0,0 @@ | ||||
| #define ARDUINOJSON_USE_LONG_LONG 1 | ||||
| #include <ArduinoJson.h> | ||||
|  | ||||
| #include <catch.hpp> | ||||
|  | ||||
| TEST_CASE("ARDUINOJSON_USE_LONG_LONG == 1") { | ||||
|   DynamicJsonDocument doc(4096); | ||||
|   JsonObject root = doc.to<JsonObject>(); | ||||
|  | ||||
|   root["A"] = 123456789123456789; | ||||
|   root["B"] = 987654321987654321; | ||||
|  | ||||
|   std::string json; | ||||
|   serializeJson(doc, json); | ||||
|  | ||||
|   REQUIRE(json == "{\"A\":123456789123456789,\"B\":987654321987654321}"); | ||||
| } | ||||
		Reference in New Issue
	
	Block a user