mirror of
				https://github.com/eledio-devices/thirdparty-ArduinoJson.git
				synced 2025-10-31 16:14:11 +01:00 
			
		
		
		
	Update Catch library to 2.13.10 (#1820)
This commit is contained in:
		| @@ -1,6 +1,6 @@ | |||||||
| #include <ArduinoJson.h> | #include <ArduinoJson.h> | ||||||
|  |  | ||||||
| #include <catch.hpp> | #include <catch.hpp> | ||||||
|  |  | ||||||
| #include <string_view> | #include <string_view> | ||||||
|  |  | ||||||
| #if !ARDUINOJSON_ENABLE_STRING_VIEW | #if !ARDUINOJSON_ENABLE_STRING_VIEW | ||||||
|   | |||||||
| @@ -5,6 +5,8 @@ | |||||||
| #include <ArduinoJson.h> | #include <ArduinoJson.h> | ||||||
| #include <catch.hpp> | #include <catch.hpp> | ||||||
|  |  | ||||||
|  | #include <sstream> | ||||||
|  |  | ||||||
| void testStringification(DeserializationError error, std::string expected) { | void testStringification(DeserializationError error, std::string expected) { | ||||||
|   REQUIRE(error.c_str() == expected); |   REQUIRE(error.c_str() == expected); | ||||||
| } | } | ||||||
|   | |||||||
| @@ -5,6 +5,8 @@ | |||||||
| #include <ArduinoJson.h> | #include <ArduinoJson.h> | ||||||
| #include <catch.hpp> | #include <catch.hpp> | ||||||
|  |  | ||||||
|  | #include <sstream> | ||||||
|  |  | ||||||
| #define SHOULD_WORK(expression) REQUIRE(DeserializationError::Ok == expression); | #define SHOULD_WORK(expression) REQUIRE(DeserializationError::Ok == expression); | ||||||
| #define SHOULD_FAIL(expression) \ | #define SHOULD_FAIL(expression) \ | ||||||
|   REQUIRE(DeserializationError::TooDeep == expression); |   REQUIRE(DeserializationError::TooDeep == expression); | ||||||
|   | |||||||
| @@ -11,15 +11,15 @@ TEST_CASE("nullptr") { | |||||||
|   JsonVariant variant = doc.to<JsonVariant>(); |   JsonVariant variant = doc.to<JsonVariant>(); | ||||||
|  |  | ||||||
|   SECTION("JsonVariant == nullptr") { |   SECTION("JsonVariant == nullptr") { | ||||||
|     REQUIRE((variant == nullptr)); |     REQUIRE(variant == nullptr); | ||||||
|     REQUIRE_FALSE((variant != nullptr)); |     REQUIRE_FALSE(variant != nullptr); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   SECTION("JsonVariant != nullptr") { |   SECTION("JsonVariant != nullptr") { | ||||||
|     variant.set(42); |     variant.set(42); | ||||||
|  |  | ||||||
|     REQUIRE_FALSE((variant == nullptr)); |     REQUIRE_FALSE(variant == nullptr); | ||||||
|     REQUIRE((variant != nullptr)); |     REQUIRE(variant != nullptr); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   SECTION("JsonVariant.set(nullptr)") { |   SECTION("JsonVariant.set(nullptr)") { | ||||||
|   | |||||||
| @@ -6,6 +6,8 @@ | |||||||
| #include <ArduinoJson.hpp> | #include <ArduinoJson.hpp> | ||||||
| #include <catch.hpp> | #include <catch.hpp> | ||||||
|  |  | ||||||
|  | #include <sstream> | ||||||
|  |  | ||||||
| using namespace ARDUINOJSON_NAMESPACE; | using namespace ARDUINOJSON_NAMESPACE; | ||||||
|  |  | ||||||
| TEST_CASE("Reader<std::istringstream>") { | TEST_CASE("Reader<std::istringstream>") { | ||||||
|   | |||||||
| @@ -5,6 +5,8 @@ | |||||||
| #include <ArduinoJson.h> | #include <ArduinoJson.h> | ||||||
| #include <catch.hpp> | #include <catch.hpp> | ||||||
|  |  | ||||||
|  | #include <sstream> | ||||||
|  |  | ||||||
| using namespace ARDUINOJSON_NAMESPACE; | using namespace ARDUINOJSON_NAMESPACE; | ||||||
|  |  | ||||||
| class EmptyClass {}; | class EmptyClass {}; | ||||||
| @@ -19,9 +21,9 @@ TEST_CASE("Polyfills/type_traits") { | |||||||
|   } |   } | ||||||
|  |  | ||||||
|   SECTION("is_array") { |   SECTION("is_array") { | ||||||
|     REQUIRE_FALSE((is_array<const char*>::value)); |     REQUIRE_FALSE(is_array<const char*>::value); | ||||||
|     REQUIRE((is_array<const char[]>::value)); |     REQUIRE(is_array<const char[]>::value); | ||||||
|     REQUIRE((is_array<const char[10]>::value)); |     REQUIRE(is_array<const char[10]>::value); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   SECTION("is_const") { |   SECTION("is_const") { | ||||||
| @@ -172,36 +174,35 @@ TEST_CASE("Polyfills/type_traits") { | |||||||
|   } |   } | ||||||
|  |  | ||||||
|   SECTION("is_convertible") { |   SECTION("is_convertible") { | ||||||
|     CHECK((is_convertible<short, int>::value == true)); |     CHECK(is_convertible<short, int>::value == true); | ||||||
|     CHECK((is_convertible<int, int>::value == true)); |     CHECK(is_convertible<int, int>::value == true); | ||||||
|     CHECK((is_convertible<EmptyEnum, int>::value == true)); |     CHECK(is_convertible<EmptyEnum, int>::value == true); | ||||||
|     CHECK((is_convertible<int*, int>::value == false)); |     CHECK(is_convertible<int*, int>::value == false); | ||||||
|     CHECK((is_convertible<EmptyClass, int>::value == false)); |     CHECK(is_convertible<EmptyClass, int>::value == false); | ||||||
|  |  | ||||||
|     CHECK((is_convertible<DeserializationError, JsonVariantConst>::value == |     CHECK(is_convertible<DeserializationError, JsonVariantConst>::value == | ||||||
|            false)); |           false); | ||||||
|     CHECK((is_convertible<JsonPair, JsonVariantConst>::value == false)); |     CHECK(is_convertible<JsonPair, JsonVariantConst>::value == false); | ||||||
|     CHECK((is_convertible<JsonVariant, JsonVariantConst>::value == true)); |     CHECK(is_convertible<JsonVariant, JsonVariantConst>::value == true); | ||||||
|     CHECK((is_convertible<JsonVariantConst, JsonVariantConst>::value == true)); |     CHECK(is_convertible<JsonVariantConst, JsonVariantConst>::value == true); | ||||||
|     CHECK((is_convertible<JsonArray, JsonVariantConst>::value == true)); |     CHECK(is_convertible<JsonArray, JsonVariantConst>::value == true); | ||||||
|     CHECK((is_convertible<ElementProxy<JsonArray>, JsonVariantConst>::value == |     CHECK(is_convertible<ElementProxy<JsonArray>, JsonVariantConst>::value == | ||||||
|            true)); |           true); | ||||||
|     CHECK((is_convertible<JsonArrayConst, JsonVariantConst>::value == true)); |     CHECK(is_convertible<JsonArrayConst, JsonVariantConst>::value == true); | ||||||
|     CHECK((is_convertible<JsonObject, JsonVariantConst>::value == true)); |     CHECK(is_convertible<JsonObject, JsonVariantConst>::value == true); | ||||||
|     CHECK((is_convertible<MemberProxy<JsonObject, const char*>, |     CHECK(is_convertible<MemberProxy<JsonObject, const char*>, | ||||||
|                           JsonVariantConst>::value == true)); |                          JsonVariantConst>::value == true); | ||||||
|     CHECK((is_convertible<JsonObjectConst, JsonVariantConst>::value == true)); |     CHECK(is_convertible<JsonObjectConst, JsonVariantConst>::value == true); | ||||||
|     CHECK( |     CHECK(is_convertible<DynamicJsonDocument, JsonVariantConst>::value == true); | ||||||
|         (is_convertible<DynamicJsonDocument, JsonVariantConst>::value == true)); |     CHECK(is_convertible<StaticJsonDocument<10>, JsonVariantConst>::value == | ||||||
|     CHECK((is_convertible<StaticJsonDocument<10>, JsonVariantConst>::value == |           true); | ||||||
|            true)); |  | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   SECTION("is_class") { |   SECTION("is_class") { | ||||||
|     CHECK((is_class<int>::value == false)); |     CHECK(is_class<int>::value == false); | ||||||
|     CHECK((is_class<EmptyEnum>::value == false)); |     CHECK(is_class<EmptyEnum>::value == false); | ||||||
|     CHECK((is_class<int*>::value == false)); |     CHECK(is_class<int*>::value == false); | ||||||
|     CHECK((is_class<EmptyClass>::value == true)); |     CHECK(is_class<EmptyClass>::value == true); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   SECTION("is_enum") { |   SECTION("is_enum") { | ||||||
|   | |||||||
| @@ -9,95 +9,89 @@ using namespace ARDUINOJSON_NAMESPACE; | |||||||
|  |  | ||||||
| TEST_CASE("arithmeticCompare()") { | TEST_CASE("arithmeticCompare()") { | ||||||
|   SECTION("int vs uint8_t") { |   SECTION("int vs uint8_t") { | ||||||
|     CHECK((arithmeticCompare<int, uint8_t>(256, 1) == COMPARE_RESULT_GREATER)); |     CHECK(arithmeticCompare<int, uint8_t>(256, 1) == COMPARE_RESULT_GREATER); | ||||||
|     CHECK((arithmeticCompare<int, uint8_t>(41, 42) == COMPARE_RESULT_LESS)); |     CHECK(arithmeticCompare<int, uint8_t>(41, 42) == COMPARE_RESULT_LESS); | ||||||
|     CHECK((arithmeticCompare<int, uint8_t>(42, 42) == COMPARE_RESULT_EQUAL)); |     CHECK(arithmeticCompare<int, uint8_t>(42, 42) == COMPARE_RESULT_EQUAL); | ||||||
|     CHECK((arithmeticCompare<int, uint8_t>(43, 42) == COMPARE_RESULT_GREATER)); |     CHECK(arithmeticCompare<int, uint8_t>(43, 42) == COMPARE_RESULT_GREATER); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   SECTION("unsigned vs int") { |   SECTION("unsigned vs int") { | ||||||
|     CHECK((arithmeticCompare<unsigned, int>(0, -1) == COMPARE_RESULT_GREATER)); |     CHECK(arithmeticCompare<unsigned, int>(0, -1) == COMPARE_RESULT_GREATER); | ||||||
|     CHECK((arithmeticCompare<unsigned, int>(42, 41) == COMPARE_RESULT_GREATER)); |     CHECK(arithmeticCompare<unsigned, int>(42, 41) == COMPARE_RESULT_GREATER); | ||||||
|     CHECK((arithmeticCompare<unsigned, int>(42, 42) == COMPARE_RESULT_EQUAL)); |     CHECK(arithmeticCompare<unsigned, int>(42, 42) == COMPARE_RESULT_EQUAL); | ||||||
|     CHECK((arithmeticCompare<unsigned, int>(42, 43) == COMPARE_RESULT_LESS)); |     CHECK(arithmeticCompare<unsigned, int>(42, 43) == COMPARE_RESULT_LESS); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   SECTION("float vs int") { |   SECTION("float vs int") { | ||||||
|     CHECK((arithmeticCompare<float, int>(42, 41) == COMPARE_RESULT_GREATER)); |     CHECK(arithmeticCompare<float, int>(42, 41) == COMPARE_RESULT_GREATER); | ||||||
|     CHECK((arithmeticCompare<float, int>(42, 42) == COMPARE_RESULT_EQUAL)); |     CHECK(arithmeticCompare<float, int>(42, 42) == COMPARE_RESULT_EQUAL); | ||||||
|     CHECK((arithmeticCompare<float, int>(42, 43) == COMPARE_RESULT_LESS)); |     CHECK(arithmeticCompare<float, int>(42, 43) == COMPARE_RESULT_LESS); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   SECTION("int vs unsigned") { |   SECTION("int vs unsigned") { | ||||||
|     CHECK((arithmeticCompare<int, unsigned>(-1, 0) == COMPARE_RESULT_LESS)); |     CHECK(arithmeticCompare<int, unsigned>(-1, 0) == COMPARE_RESULT_LESS); | ||||||
|     CHECK((arithmeticCompare<int, unsigned>(0, 0) == COMPARE_RESULT_EQUAL)); |     CHECK(arithmeticCompare<int, unsigned>(0, 0) == COMPARE_RESULT_EQUAL); | ||||||
|     CHECK((arithmeticCompare<int, unsigned>(1, 0) == COMPARE_RESULT_GREATER)); |     CHECK(arithmeticCompare<int, unsigned>(1, 0) == COMPARE_RESULT_GREATER); | ||||||
|     CHECK((arithmeticCompare<int, unsigned>(42, 41) == COMPARE_RESULT_GREATER)); |     CHECK(arithmeticCompare<int, unsigned>(42, 41) == COMPARE_RESULT_GREATER); | ||||||
|     CHECK((arithmeticCompare<int, unsigned>(42, 42) == COMPARE_RESULT_EQUAL)); |     CHECK(arithmeticCompare<int, unsigned>(42, 42) == COMPARE_RESULT_EQUAL); | ||||||
|     CHECK((arithmeticCompare<int, unsigned>(42, 43) == COMPARE_RESULT_LESS)); |     CHECK(arithmeticCompare<int, unsigned>(42, 43) == COMPARE_RESULT_LESS); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   SECTION("unsigned vs unsigned") { |   SECTION("unsigned vs unsigned") { | ||||||
|     CHECK((arithmeticCompare<unsigned, unsigned>(42, 41) == |     CHECK(arithmeticCompare<unsigned, unsigned>(42, 41) == | ||||||
|            COMPARE_RESULT_GREATER)); |           COMPARE_RESULT_GREATER); | ||||||
|     CHECK((arithmeticCompare<unsigned, unsigned>(42, 42) == |     CHECK(arithmeticCompare<unsigned, unsigned>(42, 42) == | ||||||
|            COMPARE_RESULT_EQUAL)); |           COMPARE_RESULT_EQUAL); | ||||||
|     CHECK( |     CHECK(arithmeticCompare<unsigned, unsigned>(42, 43) == COMPARE_RESULT_LESS); | ||||||
|         (arithmeticCompare<unsigned, unsigned>(42, 43) == COMPARE_RESULT_LESS)); |  | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   SECTION("bool vs bool") { |   SECTION("bool vs bool") { | ||||||
|     CHECK( |     CHECK(arithmeticCompare<bool, bool>(false, false) == COMPARE_RESULT_EQUAL); | ||||||
|         (arithmeticCompare<bool, bool>(false, false) == COMPARE_RESULT_EQUAL)); |     CHECK(arithmeticCompare<bool, bool>(true, true) == COMPARE_RESULT_EQUAL); | ||||||
|     CHECK((arithmeticCompare<bool, bool>(true, true) == COMPARE_RESULT_EQUAL)); |     CHECK(arithmeticCompare<bool, bool>(false, true) == COMPARE_RESULT_LESS); | ||||||
|     CHECK((arithmeticCompare<bool, bool>(false, true) == COMPARE_RESULT_LESS)); |     CHECK(arithmeticCompare<bool, bool>(true, false) == COMPARE_RESULT_GREATER); | ||||||
|     CHECK( |  | ||||||
|         (arithmeticCompare<bool, bool>(true, false) == COMPARE_RESULT_GREATER)); |  | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   SECTION("bool vs int") { |   SECTION("bool vs int") { | ||||||
|     CHECK((arithmeticCompare<bool, int>(false, -1) == COMPARE_RESULT_GREATER)); |     CHECK(arithmeticCompare<bool, int>(false, -1) == COMPARE_RESULT_GREATER); | ||||||
|     CHECK((arithmeticCompare<bool, int>(false, 0) == COMPARE_RESULT_EQUAL)); |     CHECK(arithmeticCompare<bool, int>(false, 0) == COMPARE_RESULT_EQUAL); | ||||||
|     CHECK((arithmeticCompare<bool, int>(false, 1) == COMPARE_RESULT_LESS)); |     CHECK(arithmeticCompare<bool, int>(false, 1) == COMPARE_RESULT_LESS); | ||||||
|     CHECK((arithmeticCompare<bool, int>(true, 0) == COMPARE_RESULT_GREATER)); |     CHECK(arithmeticCompare<bool, int>(true, 0) == COMPARE_RESULT_GREATER); | ||||||
|     CHECK((arithmeticCompare<bool, int>(true, 1) == COMPARE_RESULT_EQUAL)); |     CHECK(arithmeticCompare<bool, int>(true, 1) == COMPARE_RESULT_EQUAL); | ||||||
|     CHECK((arithmeticCompare<bool, int>(true, 2) == COMPARE_RESULT_LESS)); |     CHECK(arithmeticCompare<bool, int>(true, 2) == COMPARE_RESULT_LESS); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   SECTION("bool vs int") { |   SECTION("bool vs int") { | ||||||
|     CHECK((arithmeticCompare<int, bool>(0, false) == COMPARE_RESULT_EQUAL)); |     CHECK(arithmeticCompare<int, bool>(0, false) == COMPARE_RESULT_EQUAL); | ||||||
|     CHECK((arithmeticCompare<int, bool>(1, true) == COMPARE_RESULT_EQUAL)); |     CHECK(arithmeticCompare<int, bool>(1, true) == COMPARE_RESULT_EQUAL); | ||||||
|     CHECK((arithmeticCompare<int, bool>(1, false) == COMPARE_RESULT_GREATER)); |     CHECK(arithmeticCompare<int, bool>(1, false) == COMPARE_RESULT_GREATER); | ||||||
|     CHECK((arithmeticCompare<int, bool>(0, true) == COMPARE_RESULT_LESS)); |     CHECK(arithmeticCompare<int, bool>(0, true) == COMPARE_RESULT_LESS); | ||||||
|   } |   } | ||||||
| } | } | ||||||
|  |  | ||||||
| TEST_CASE("arithmeticCompareNegateLeft()") { | TEST_CASE("arithmeticCompareNegateLeft()") { | ||||||
|   SECTION("unsigned vs int") { |   SECTION("unsigned vs int") { | ||||||
|     CHECK((arithmeticCompareNegateLeft<int>(0, 1) == COMPARE_RESULT_LESS)); |     CHECK(arithmeticCompareNegateLeft<int>(0, 1) == COMPARE_RESULT_LESS); | ||||||
|     CHECK((arithmeticCompareNegateLeft<int>(42, -41) == COMPARE_RESULT_LESS)); |     CHECK(arithmeticCompareNegateLeft<int>(42, -41) == COMPARE_RESULT_LESS); | ||||||
|     CHECK((arithmeticCompareNegateLeft<int>(42, -42) == COMPARE_RESULT_EQUAL)); |     CHECK(arithmeticCompareNegateLeft<int>(42, -42) == COMPARE_RESULT_EQUAL); | ||||||
|     CHECK( |     CHECK(arithmeticCompareNegateLeft<int>(42, -43) == COMPARE_RESULT_GREATER); | ||||||
|         (arithmeticCompareNegateLeft<int>(42, -43) == COMPARE_RESULT_GREATER)); |  | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   SECTION("unsigned vs unsigned") { |   SECTION("unsigned vs unsigned") { | ||||||
|     CHECK( |     CHECK(arithmeticCompareNegateLeft<unsigned>(42, 42) == COMPARE_RESULT_LESS); | ||||||
|         (arithmeticCompareNegateLeft<unsigned>(42, 42) == COMPARE_RESULT_LESS)); |  | ||||||
|   } |   } | ||||||
| } | } | ||||||
|  |  | ||||||
| TEST_CASE("arithmeticCompareNegateRight()") { | TEST_CASE("arithmeticCompareNegateRight()") { | ||||||
|   SECTION("int vs unsigned") { |   SECTION("int vs unsigned") { | ||||||
|     CHECK((arithmeticCompareNegateRight<int>(1, 0) == COMPARE_RESULT_GREATER)); |     CHECK(arithmeticCompareNegateRight<int>(1, 0) == COMPARE_RESULT_GREATER); | ||||||
|     CHECK( |     CHECK(arithmeticCompareNegateRight<int>(-41, 42) == COMPARE_RESULT_GREATER); | ||||||
|         (arithmeticCompareNegateRight<int>(-41, 42) == COMPARE_RESULT_GREATER)); |     CHECK(arithmeticCompareNegateRight<int>(-42, 42) == COMPARE_RESULT_EQUAL); | ||||||
|     CHECK((arithmeticCompareNegateRight<int>(-42, 42) == COMPARE_RESULT_EQUAL)); |     CHECK(arithmeticCompareNegateRight<int>(-43, 42) == COMPARE_RESULT_LESS); | ||||||
|     CHECK((arithmeticCompareNegateRight<int>(-43, 42) == COMPARE_RESULT_LESS)); |  | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   SECTION("unsigned vs unsigned") { |   SECTION("unsigned vs unsigned") { | ||||||
|     CHECK((arithmeticCompareNegateRight<unsigned>(42, 42) == |     CHECK(arithmeticCompareNegateRight<unsigned>(42, 42) == | ||||||
|            COMPARE_RESULT_GREATER)); |           COMPARE_RESULT_GREATER); | ||||||
|   } |   } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -5,6 +5,8 @@ | |||||||
| #include <ArduinoJson.h> | #include <ArduinoJson.h> | ||||||
| #include <catch.hpp> | #include <catch.hpp> | ||||||
|  |  | ||||||
|  | #include <sstream> | ||||||
|  |  | ||||||
| using namespace ARDUINOJSON_NAMESPACE; | using namespace ARDUINOJSON_NAMESPACE; | ||||||
|  |  | ||||||
| TEST_CASE("deserializeMsgPack() filter") { | TEST_CASE("deserializeMsgPack() filter") { | ||||||
|   | |||||||
| @@ -5,6 +5,8 @@ | |||||||
| #include <ArduinoJson.h> | #include <ArduinoJson.h> | ||||||
| #include <catch.hpp> | #include <catch.hpp> | ||||||
|  |  | ||||||
|  | #include <sstream> | ||||||
|  |  | ||||||
| TEST_CASE("deserializeMsgPack() returns EmptyInput") { | TEST_CASE("deserializeMsgPack() returns EmptyInput") { | ||||||
|   StaticJsonDocument<100> doc; |   StaticJsonDocument<100> doc; | ||||||
|  |  | ||||||
|   | |||||||
| @@ -5,6 +5,8 @@ | |||||||
| #include <ArduinoJson.h> | #include <ArduinoJson.h> | ||||||
| #include <catch.hpp> | #include <catch.hpp> | ||||||
|  |  | ||||||
|  | #include <sstream> | ||||||
|  |  | ||||||
| #define SHOULD_WORK(expression) REQUIRE(DeserializationError::Ok == expression); | #define SHOULD_WORK(expression) REQUIRE(DeserializationError::Ok == expression); | ||||||
| #define SHOULD_FAIL(expression) \ | #define SHOULD_FAIL(expression) \ | ||||||
|   REQUIRE(DeserializationError::TooDeep == expression); |   REQUIRE(DeserializationError::TooDeep == expression); | ||||||
|   | |||||||
| @@ -10,126 +10,123 @@ using namespace ARDUINOJSON_NAMESPACE; | |||||||
|  |  | ||||||
| TEST_CASE("canConvertNumber<TOut, TIn>()") { | TEST_CASE("canConvertNumber<TOut, TIn>()") { | ||||||
|   SECTION("int8_t -> int8_t") { |   SECTION("int8_t -> int8_t") { | ||||||
|     CHECK((canConvertNumber<int8_t, int8_t>(0)) == true); |     CHECK(canConvertNumber<int8_t, int8_t>(0) == true); | ||||||
|     CHECK((canConvertNumber<int8_t, int8_t>(127)) == true); |     CHECK(canConvertNumber<int8_t, int8_t>(127) == true); | ||||||
|     CHECK((canConvertNumber<int8_t, int8_t>(-128)) == true); |     CHECK(canConvertNumber<int8_t, int8_t>(-128) == true); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   SECTION("int8_t -> int16_t") { |   SECTION("int8_t -> int16_t") { | ||||||
|     CHECK((canConvertNumber<int16_t, int8_t>(0)) == true); |     CHECK(canConvertNumber<int16_t, int8_t>(0) == true); | ||||||
|     CHECK((canConvertNumber<int16_t, int8_t>(127)) == true); |     CHECK(canConvertNumber<int16_t, int8_t>(127) == true); | ||||||
|     CHECK((canConvertNumber<int16_t, int8_t>(-128)) == true); |     CHECK(canConvertNumber<int16_t, int8_t>(-128) == true); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   SECTION("int8_t -> uint8_t") { |   SECTION("int8_t -> uint8_t") { | ||||||
|     CHECK((canConvertNumber<uint8_t, int8_t>(0)) == true); |     CHECK(canConvertNumber<uint8_t, int8_t>(0) == true); | ||||||
|     CHECK((canConvertNumber<uint8_t, int8_t>(127)) == true); |     CHECK(canConvertNumber<uint8_t, int8_t>(127) == true); | ||||||
|     CHECK((canConvertNumber<uint8_t, int8_t>(-128)) == false); |     CHECK(canConvertNumber<uint8_t, int8_t>(-128) == false); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   SECTION("int8_t -> uint16_t") { |   SECTION("int8_t -> uint16_t") { | ||||||
|     CHECK((canConvertNumber<uint16_t, int8_t>(0)) == true); |     CHECK(canConvertNumber<uint16_t, int8_t>(0) == true); | ||||||
|     CHECK((canConvertNumber<uint16_t, int8_t>(127)) == true); |     CHECK(canConvertNumber<uint16_t, int8_t>(127) == true); | ||||||
|     CHECK((canConvertNumber<uint16_t, int8_t>(-128)) == false); |     CHECK(canConvertNumber<uint16_t, int8_t>(-128) == false); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   SECTION("int16_t -> int8_t") { |   SECTION("int16_t -> int8_t") { | ||||||
|     CHECK((canConvertNumber<int8_t, int16_t>(0)) == true); |     CHECK(canConvertNumber<int8_t, int16_t>(0) == true); | ||||||
|     CHECK((canConvertNumber<int8_t, int16_t>(127)) == true); |     CHECK(canConvertNumber<int8_t, int16_t>(127) == true); | ||||||
|     CHECK((canConvertNumber<int8_t, int16_t>(128)) == false); |     CHECK(canConvertNumber<int8_t, int16_t>(128) == false); | ||||||
|     CHECK((canConvertNumber<int8_t, int16_t>(-128)) == true); |     CHECK(canConvertNumber<int8_t, int16_t>(-128) == true); | ||||||
|     CHECK((canConvertNumber<int8_t, int16_t>(-129)) == false); |     CHECK(canConvertNumber<int8_t, int16_t>(-129) == false); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   SECTION("int16_t -> uint8_t") { |   SECTION("int16_t -> uint8_t") { | ||||||
|     CHECK((canConvertNumber<uint8_t, int16_t>(0)) == true); |     CHECK(canConvertNumber<uint8_t, int16_t>(0) == true); | ||||||
|     CHECK((canConvertNumber<uint8_t, int16_t>(255)) == true); |     CHECK(canConvertNumber<uint8_t, int16_t>(255) == true); | ||||||
|     CHECK((canConvertNumber<uint8_t, int16_t>(256)) == false); |     CHECK(canConvertNumber<uint8_t, int16_t>(256) == false); | ||||||
|     CHECK((canConvertNumber<uint8_t, int16_t>(-1)) == false); |     CHECK(canConvertNumber<uint8_t, int16_t>(-1) == false); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   SECTION("uint8_t -> int8_t") { |   SECTION("uint8_t -> int8_t") { | ||||||
|     CHECK((canConvertNumber<int8_t, uint8_t>(0)) == true); |     CHECK(canConvertNumber<int8_t, uint8_t>(0) == true); | ||||||
|     CHECK((canConvertNumber<int8_t, uint8_t>(127)) == true); |     CHECK(canConvertNumber<int8_t, uint8_t>(127) == true); | ||||||
|     CHECK((canConvertNumber<int8_t, uint8_t>(128)) == false); |     CHECK(canConvertNumber<int8_t, uint8_t>(128) == false); | ||||||
|     CHECK((canConvertNumber<int8_t, uint8_t>(255)) == false); |     CHECK(canConvertNumber<int8_t, uint8_t>(255) == false); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   SECTION("uint8_t -> int16_t") { |   SECTION("uint8_t -> int16_t") { | ||||||
|     CHECK((canConvertNumber<int16_t, uint8_t>(0)) == true); |     CHECK(canConvertNumber<int16_t, uint8_t>(0) == true); | ||||||
|     CHECK((canConvertNumber<int16_t, uint8_t>(127)) == true); |     CHECK(canConvertNumber<int16_t, uint8_t>(127) == true); | ||||||
|     CHECK((canConvertNumber<int16_t, uint8_t>(128)) == true); |     CHECK(canConvertNumber<int16_t, uint8_t>(128) == true); | ||||||
|     CHECK((canConvertNumber<int16_t, uint8_t>(255)) == true); |     CHECK(canConvertNumber<int16_t, uint8_t>(255) == true); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   SECTION("uint8_t -> uint8_t") { |   SECTION("uint8_t -> uint8_t") { | ||||||
|     CHECK((canConvertNumber<uint8_t, uint8_t>(0)) == true); |     CHECK(canConvertNumber<uint8_t, uint8_t>(0) == true); | ||||||
|     CHECK((canConvertNumber<uint8_t, uint8_t>(127)) == true); |     CHECK(canConvertNumber<uint8_t, uint8_t>(127) == true); | ||||||
|     CHECK((canConvertNumber<uint8_t, uint8_t>(128)) == true); |     CHECK(canConvertNumber<uint8_t, uint8_t>(128) == true); | ||||||
|     CHECK((canConvertNumber<uint8_t, uint8_t>(255)) == true); |     CHECK(canConvertNumber<uint8_t, uint8_t>(255) == true); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   SECTION("uint8_t -> uint16_t") { |   SECTION("uint8_t -> uint16_t") { | ||||||
|     CHECK((canConvertNumber<uint16_t, uint8_t>(0)) == true); |     CHECK(canConvertNumber<uint16_t, uint8_t>(0) == true); | ||||||
|     CHECK((canConvertNumber<uint16_t, uint8_t>(127)) == true); |     CHECK(canConvertNumber<uint16_t, uint8_t>(127) == true); | ||||||
|     CHECK((canConvertNumber<uint16_t, uint8_t>(128)) == true); |     CHECK(canConvertNumber<uint16_t, uint8_t>(128) == true); | ||||||
|     CHECK((canConvertNumber<uint16_t, uint8_t>(255)) == true); |     CHECK(canConvertNumber<uint16_t, uint8_t>(255) == true); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   SECTION("float -> int32_t") { |   SECTION("float -> int32_t") { | ||||||
|     CHECK((canConvertNumber<int32_t, float>(0)) == true); |     CHECK(canConvertNumber<int32_t, float>(0) == true); | ||||||
|     CHECK((canConvertNumber<int32_t, float>(-2.147483904e9f)) == false); |     CHECK(canConvertNumber<int32_t, float>(-2.147483904e9f) == false); | ||||||
|     CHECK((canConvertNumber<int32_t, float>(-2.147483648e+9f)) == true); |     CHECK(canConvertNumber<int32_t, float>(-2.147483648e+9f) == true); | ||||||
|     CHECK((canConvertNumber<int32_t, float>(2.14748352e+9f)) == true); |     CHECK(canConvertNumber<int32_t, float>(2.14748352e+9f) == true); | ||||||
|     CHECK((canConvertNumber<int32_t, float>(2.14748365e+9f)) == false); |     CHECK(canConvertNumber<int32_t, float>(2.14748365e+9f) == false); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   SECTION("double -> int32_t") { |   SECTION("double -> int32_t") { | ||||||
|     CHECK((canConvertNumber<int32_t, double>(0)) == true); |     CHECK(canConvertNumber<int32_t, double>(0) == true); | ||||||
|     CHECK((canConvertNumber<int32_t, double>(-2.147483649e+9)) == false); |     CHECK(canConvertNumber<int32_t, double>(-2.147483649e+9) == false); | ||||||
|     CHECK((canConvertNumber<int32_t, double>(-2.147483648e+9)) == true); |     CHECK(canConvertNumber<int32_t, double>(-2.147483648e+9) == true); | ||||||
|     CHECK((canConvertNumber<int32_t, double>(2.147483647e+9)) == true); |     CHECK(canConvertNumber<int32_t, double>(2.147483647e+9) == true); | ||||||
|     CHECK((canConvertNumber<int32_t, double>(2.147483648e+9)) == false); |     CHECK(canConvertNumber<int32_t, double>(2.147483648e+9) == false); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   SECTION("float -> uint32_t") { |   SECTION("float -> uint32_t") { | ||||||
|     CHECK((canConvertNumber<uint32_t, float>(0)) == true); |     CHECK(canConvertNumber<uint32_t, float>(0) == true); | ||||||
|     CHECK((canConvertNumber<uint32_t, float>(-1.401298e-45f)) == false); |     CHECK(canConvertNumber<uint32_t, float>(-1.401298e-45f) == false); | ||||||
|     CHECK((canConvertNumber<uint32_t, float>(4.29496704e+9f)) == true); |     CHECK(canConvertNumber<uint32_t, float>(4.29496704e+9f) == true); | ||||||
|     CHECK((canConvertNumber<uint32_t, float>(4.294967296e+9f)) == false); |     CHECK(canConvertNumber<uint32_t, float>(4.294967296e+9f) == false); | ||||||
|   } |   } | ||||||
|  |  | ||||||
| #if ARDUINOJSON_HAS_LONG_LONG | #if ARDUINOJSON_HAS_LONG_LONG | ||||||
|   SECTION("float -> int64_t") { |   SECTION("float -> int64_t") { | ||||||
|     CHECK((canConvertNumber<int64_t, float>(0)) == true); |     CHECK(canConvertNumber<int64_t, float>(0) == true); | ||||||
|     CHECK((canConvertNumber<int64_t, float>(-9.22337204e+18f)) == true); |     CHECK(canConvertNumber<int64_t, float>(-9.22337204e+18f) == true); | ||||||
|     CHECK((canConvertNumber<int64_t, float>(9.22337149e+18f)) == true); |     CHECK(canConvertNumber<int64_t, float>(9.22337149e+18f) == true); | ||||||
|     CHECK((canConvertNumber<int64_t, float>(9.22337204e+18f)) == false); |     CHECK(canConvertNumber<int64_t, float>(9.22337204e+18f) == false); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   SECTION("double -> int64_t") { |   SECTION("double -> int64_t") { | ||||||
|     CHECK((canConvertNumber<int64_t, double>(0)) == true); |     CHECK(canConvertNumber<int64_t, double>(0) == true); | ||||||
|     CHECK((canConvertNumber<int64_t, double>(-9.2233720368547758e+18)) == true); |     CHECK(canConvertNumber<int64_t, double>(-9.2233720368547758e+18) == true); | ||||||
|     CHECK((canConvertNumber<int64_t, double>(9.2233720368547748e+18)) == true); |     CHECK(canConvertNumber<int64_t, double>(9.2233720368547748e+18) == true); | ||||||
|     CHECK((canConvertNumber<int64_t, double>(9.2233720368547758e+18)) == false); |     CHECK(canConvertNumber<int64_t, double>(9.2233720368547758e+18) == false); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   SECTION("float -> uint64_t") { |   SECTION("float -> uint64_t") { | ||||||
|     CHECK((canConvertNumber<uint64_t, float>(0)) == true); |     CHECK(canConvertNumber<uint64_t, float>(0) == true); | ||||||
|     CHECK((canConvertNumber<uint64_t, float>(-1.401298e-45f)) == false); |     CHECK(canConvertNumber<uint64_t, float>(-1.401298e-45f) == false); | ||||||
|     CHECK((canConvertNumber<uint64_t, float>(1.844674297419792384e+19f)) == |     CHECK(canConvertNumber<uint64_t, float>(1.84467429741979238e+19f) == true); | ||||||
|           true); |     CHECK(canConvertNumber<uint64_t, float>(1.844674407370955161e+19f) == | ||||||
|     CHECK((canConvertNumber<uint64_t, float>(1.8446744073709551616e+19f)) == |  | ||||||
|           false); |           false); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   SECTION("double -> uint64_t") { |   SECTION("double -> uint64_t") { | ||||||
|     CHECK((canConvertNumber<uint64_t, double>(0)) == true); |     CHECK(canConvertNumber<uint64_t, double>(0) == true); | ||||||
|     CHECK((canConvertNumber<uint64_t, double>(-4.94065645841247e-324)) == |     CHECK(canConvertNumber<uint64_t, double>(-4.9406564584124e-324) == false); | ||||||
|           false); |     CHECK(canConvertNumber<uint64_t, double>(1.844674407370954958e+19) == true); | ||||||
|     CHECK((canConvertNumber<uint64_t, double>(1.8446744073709549568e+19)) == |     CHECK(canConvertNumber<uint64_t, double>(1.844674407370955166e+19) == | ||||||
|           true); |  | ||||||
|     CHECK((canConvertNumber<uint64_t, double>(1.8446744073709551616e+19)) == |  | ||||||
|           false); |           false); | ||||||
|   } |   } | ||||||
| #endif | #endif | ||||||
|   | |||||||
| @@ -2,7 +2,7 @@ | |||||||
| # Copyright Benoit Blanchon 2014-2021 | # Copyright Benoit Blanchon 2014-2021 | ||||||
| # MIT License | # MIT License | ||||||
|  |  | ||||||
| set(CMAKE_CXX_STANDARD 11) | set(CMAKE_CXX_STANDARD 17) | ||||||
| set(CMAKE_CXX_STANDARD_REQUIRED OFF) | set(CMAKE_CXX_STANDARD_REQUIRED OFF) | ||||||
|  |  | ||||||
| add_library(catch | add_library(catch | ||||||
| @@ -15,7 +15,7 @@ target_include_directories(catch | |||||||
| 	${CMAKE_CURRENT_SOURCE_DIR} | 	${CMAKE_CURRENT_SOURCE_DIR} | ||||||
| ) | ) | ||||||
|  |  | ||||||
| if(CMAKE_CXX_COMPILER_ID MATCHES "GNU") | if(MINGW) | ||||||
| 	# prevent "xxx will change in GCC x.x" with arm-linux-gnueabihf-gcc | 	# prevent "too many sections (32837)" with MinGW | ||||||
| 	target_compile_options(catch PRIVATE -Wno-psabi) | 	target_compile_options(catch PRIVATE -Wa,-mbig-obj) | ||||||
| endif() | endif() | ||||||
|   | |||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
		Reference in New Issue
	
	Block a user