| 
									
										
										
										
											2019-05-19 15:48:27 +02:00
										 |  |  | #define ARDUINOJSON_ENABLE_INFINITY 0
 | 
					
						
							|  |  |  | #include <ArduinoJson.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include <catch.hpp>
 | 
					
						
							|  |  |  | #include <limits>
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static void assertParseFails(const char* json) { | 
					
						
							| 
									
										
										
										
											2023-07-17 18:15:13 +02:00
										 |  |  |   JsonDocument doc; | 
					
						
							| 
									
										
										
										
											2021-06-15 18:52:18 +02:00
										 |  |  |   DeserializationError err = deserializeJson(doc, json); | 
					
						
							| 
									
										
										
										
											2019-05-19 15:48:27 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |   REQUIRE(err == DeserializationError::InvalidInput); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static void assertJsonEquals(const JsonDocument& doc, | 
					
						
							|  |  |  |                              std::string expectedJson) { | 
					
						
							|  |  |  |   std::string actualJson; | 
					
						
							|  |  |  |   serializeJson(doc, actualJson); | 
					
						
							|  |  |  |   REQUIRE(actualJson == expectedJson); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | TEST_CASE("ARDUINOJSON_ENABLE_INFINITY == 0") { | 
					
						
							|  |  |  |   SECTION("serializeJson()") { | 
					
						
							| 
									
										
										
										
											2023-07-17 18:15:13 +02:00
										 |  |  |     JsonDocument doc; | 
					
						
							| 
									
										
										
										
											2019-05-19 15:48:27 +02:00
										 |  |  |     doc.add(std::numeric_limits<double>::infinity()); | 
					
						
							|  |  |  |     doc.add(-std::numeric_limits<double>::infinity()); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     assertJsonEquals(doc, "[null,null]"); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   SECTION("deserializeJson()") { | 
					
						
							|  |  |  |     assertParseFails("{\"X\":Infinity}"); | 
					
						
							|  |  |  |     assertParseFails("{\"X\":-Infinity}"); | 
					
						
							|  |  |  |     assertParseFails("{\"X\":+Infinity}"); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | } |