✅ add tests for binary type
This commit is contained in:
		
							parent
							
								
									fff46ea98c
								
							
						
					
					
						commit
						5c42847011
					
				
					 5 changed files with 67 additions and 22 deletions
				
			
		| 
						 | 
					@ -1500,11 +1500,6 @@ class binary_reader
 | 
				
			||||||
    */
 | 
					    */
 | 
				
			||||||
    bool get_msgpack_binary(internal_binary_t& result)
 | 
					    bool get_msgpack_binary(internal_binary_t& result)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        if (JSON_HEDLEY_UNLIKELY(not unexpect_eof(input_format_t::msgpack, "binary")))
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            return false;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        switch (current)
 | 
					        switch (current)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            case 0xC4: // bin 8
 | 
					            case 0xC4: // bin 8
 | 
				
			||||||
| 
						 | 
					@ -1582,11 +1577,8 @@ class binary_reader
 | 
				
			||||||
                return get_number(input_format_t::msgpack, result.subtype) and get_binary(input_format_t::msgpack, 16, result);
 | 
					                return get_number(input_format_t::msgpack, result.subtype) and get_binary(input_format_t::msgpack, 16, result);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            default:
 | 
					            default:            // LCOV_EXCL_LINE
 | 
				
			||||||
            {
 | 
					                assert(false);  // LCOV_EXCL_LINE
 | 
				
			||||||
                auto last_token = get_token_string();
 | 
					 | 
				
			||||||
                return sax->parse_error(chars_read, last_token, parse_error::create(113, chars_read, exception_message(input_format_t::msgpack, "expected binary type specification (0xC4-0xC9, 0xD4-0xD8); last byte: 0x" + last_token, "binary")));
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7027,11 +7027,6 @@ class binary_reader
 | 
				
			||||||
    */
 | 
					    */
 | 
				
			||||||
    bool get_msgpack_binary(internal_binary_t& result)
 | 
					    bool get_msgpack_binary(internal_binary_t& result)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        if (JSON_HEDLEY_UNLIKELY(not unexpect_eof(input_format_t::msgpack, "binary")))
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            return false;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        switch (current)
 | 
					        switch (current)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            case 0xC4: // bin 8
 | 
					            case 0xC4: // bin 8
 | 
				
			||||||
| 
						 | 
					@ -7109,11 +7104,8 @@ class binary_reader
 | 
				
			||||||
                return get_number(input_format_t::msgpack, result.subtype) and get_binary(input_format_t::msgpack, 16, result);
 | 
					                return get_number(input_format_t::msgpack, result.subtype) and get_binary(input_format_t::msgpack, 16, result);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            default:
 | 
					            default:            // LCOV_EXCL_LINE
 | 
				
			||||||
            {
 | 
					                assert(false);  // LCOV_EXCL_LINE
 | 
				
			||||||
                auto last_token = get_token_string();
 | 
					 | 
				
			||||||
                return sax->parse_error(chars_read, last_token, parse_error::create(113, chars_read, exception_message(input_format_t::msgpack, "expected binary type specification (0xC4-0xC9, 0xD4-0xD8); last byte: 0x" + last_token, "binary")));
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -892,6 +892,22 @@ TEST_CASE("element access 1")
 | 
				
			||||||
                    CHECK(it == j.end());
 | 
					                    CHECK(it == j.end());
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            SECTION("binary")
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    json j = json::binary_array({1, 2, 3});
 | 
				
			||||||
 | 
					                    json::iterator it = j.erase(j.begin(), j.end());
 | 
				
			||||||
 | 
					                    CHECK(j.type() == json::value_t::null);
 | 
				
			||||||
 | 
					                    CHECK(it == j.end());
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    json j = json::binary_array({1, 2, 3});
 | 
				
			||||||
 | 
					                    json::const_iterator it = j.erase(j.cbegin(), j.cend());
 | 
				
			||||||
 | 
					                    CHECK(j.type() == json::value_t::null);
 | 
				
			||||||
 | 
					                    CHECK(it == j.end());
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        SECTION("erase with two invalid iterators")
 | 
					        SECTION("erase with two invalid iterators")
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1418,6 +1418,7 @@ TEST_CASE("MessagePack")
 | 
				
			||||||
            CHECK_THROWS_AS(_ = json::from_msgpack(std::vector<uint8_t>({0xa5, 0x68, 0x65})), json::parse_error&);
 | 
					            CHECK_THROWS_AS(_ = json::from_msgpack(std::vector<uint8_t>({0xa5, 0x68, 0x65})), json::parse_error&);
 | 
				
			||||||
            CHECK_THROWS_AS(_ = json::from_msgpack(std::vector<uint8_t>({0x92, 0x01})), json::parse_error&);
 | 
					            CHECK_THROWS_AS(_ = json::from_msgpack(std::vector<uint8_t>({0x92, 0x01})), json::parse_error&);
 | 
				
			||||||
            CHECK_THROWS_AS(_ = json::from_msgpack(std::vector<uint8_t>({0x81, 0xa1, 0x61})), json::parse_error&);
 | 
					            CHECK_THROWS_AS(_ = json::from_msgpack(std::vector<uint8_t>({0x81, 0xa1, 0x61})), json::parse_error&);
 | 
				
			||||||
 | 
					            CHECK_THROWS_AS(_ = json::from_msgpack(std::vector<uint8_t>({0xc4, 0x02})), json::parse_error&);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            CHECK_THROWS_WITH(_ = json::from_msgpack(std::vector<uint8_t>({0x87})),
 | 
					            CHECK_THROWS_WITH(_ = json::from_msgpack(std::vector<uint8_t>({0x87})),
 | 
				
			||||||
                              "[json.exception.parse_error.110] parse error at byte 2: syntax error while parsing MessagePack string: unexpected end of input");
 | 
					                              "[json.exception.parse_error.110] parse error at byte 2: syntax error while parsing MessagePack string: unexpected end of input");
 | 
				
			||||||
| 
						 | 
					@ -1457,6 +1458,8 @@ TEST_CASE("MessagePack")
 | 
				
			||||||
                              "[json.exception.parse_error.110] parse error at byte 3: syntax error while parsing MessagePack value: unexpected end of input");
 | 
					                              "[json.exception.parse_error.110] parse error at byte 3: syntax error while parsing MessagePack value: unexpected end of input");
 | 
				
			||||||
            CHECK_THROWS_WITH(_ = json::from_msgpack(std::vector<uint8_t>({0x81, 0xa1, 0x61})),
 | 
					            CHECK_THROWS_WITH(_ = json::from_msgpack(std::vector<uint8_t>({0x81, 0xa1, 0x61})),
 | 
				
			||||||
                              "[json.exception.parse_error.110] parse error at byte 4: syntax error while parsing MessagePack value: unexpected end of input");
 | 
					                              "[json.exception.parse_error.110] parse error at byte 4: syntax error while parsing MessagePack value: unexpected end of input");
 | 
				
			||||||
 | 
					            CHECK_THROWS_WITH(_ = json::from_msgpack(std::vector<uint8_t>({0xc4, 0x02})),
 | 
				
			||||||
 | 
					                              "[json.exception.parse_error.110] parse error at byte 3: syntax error while parsing MessagePack binary: unexpected end of input");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            CHECK(json::from_msgpack(std::vector<uint8_t>({0x87}), true, false).is_discarded());
 | 
					            CHECK(json::from_msgpack(std::vector<uint8_t>({0x87}), true, false).is_discarded());
 | 
				
			||||||
            CHECK(json::from_msgpack(std::vector<uint8_t>({0xcc}), true, false).is_discarded());
 | 
					            CHECK(json::from_msgpack(std::vector<uint8_t>({0xcc}), true, false).is_discarded());
 | 
				
			||||||
| 
						 | 
					@ -1477,6 +1480,8 @@ TEST_CASE("MessagePack")
 | 
				
			||||||
            CHECK(json::from_msgpack(std::vector<uint8_t>({0xa5, 0x68, 0x65}), true, false).is_discarded());
 | 
					            CHECK(json::from_msgpack(std::vector<uint8_t>({0xa5, 0x68, 0x65}), true, false).is_discarded());
 | 
				
			||||||
            CHECK(json::from_msgpack(std::vector<uint8_t>({0x92, 0x01}), true, false).is_discarded());
 | 
					            CHECK(json::from_msgpack(std::vector<uint8_t>({0x92, 0x01}), true, false).is_discarded());
 | 
				
			||||||
            CHECK(json::from_msgpack(std::vector<uint8_t>({0x81, 0xA1, 0x61}), true, false).is_discarded());
 | 
					            CHECK(json::from_msgpack(std::vector<uint8_t>({0x81, 0xA1, 0x61}), true, false).is_discarded());
 | 
				
			||||||
 | 
					            CHECK(json::from_msgpack(std::vector<uint8_t>({0xc4, 0x02}), true, false).is_discarded());
 | 
				
			||||||
 | 
					            CHECK(json::from_msgpack(std::vector<uint8_t>({0xc4}), true, false).is_discarded());
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        SECTION("unsupported bytes")
 | 
					        SECTION("unsupported bytes")
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -61,6 +61,7 @@ TEST_CASE("pointer access")
 | 
				
			||||||
        CHECK(value.get_ptr<json::number_unsigned_t*>() == nullptr);
 | 
					        CHECK(value.get_ptr<json::number_unsigned_t*>() == nullptr);
 | 
				
			||||||
        CHECK(value.get_ptr<json::number_float_t*>() == nullptr);
 | 
					        CHECK(value.get_ptr<json::number_float_t*>() == nullptr);
 | 
				
			||||||
        CHECK(value.get_ptr<json::binary_t*>() == nullptr);
 | 
					        CHECK(value.get_ptr<json::binary_t*>() == nullptr);
 | 
				
			||||||
 | 
					        CHECK(value.get_ptr<json::internal_binary_t*>() == nullptr);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    SECTION("pointer access to const object_t")
 | 
					    SECTION("pointer access to const object_t")
 | 
				
			||||||
| 
						 | 
					@ -90,6 +91,7 @@ TEST_CASE("pointer access")
 | 
				
			||||||
        CHECK(value.get_ptr<const json::number_unsigned_t*>() == nullptr);
 | 
					        CHECK(value.get_ptr<const json::number_unsigned_t*>() == nullptr);
 | 
				
			||||||
        CHECK(value.get_ptr<const json::number_float_t*>() == nullptr);
 | 
					        CHECK(value.get_ptr<const json::number_float_t*>() == nullptr);
 | 
				
			||||||
        CHECK(value.get_ptr<const json::binary_t*>() == nullptr);
 | 
					        CHECK(value.get_ptr<const json::binary_t*>() == nullptr);
 | 
				
			||||||
 | 
					        CHECK(value.get_ptr<const json::internal_binary_t*>() == nullptr);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    SECTION("pointer access to array_t")
 | 
					    SECTION("pointer access to array_t")
 | 
				
			||||||
| 
						 | 
					@ -119,7 +121,7 @@ TEST_CASE("pointer access")
 | 
				
			||||||
        CHECK(value.get_ptr<json::number_unsigned_t*>() == nullptr);
 | 
					        CHECK(value.get_ptr<json::number_unsigned_t*>() == nullptr);
 | 
				
			||||||
        CHECK(value.get_ptr<json::number_float_t*>() == nullptr);
 | 
					        CHECK(value.get_ptr<json::number_float_t*>() == nullptr);
 | 
				
			||||||
        CHECK(value.get_ptr<json::binary_t*>() == nullptr);
 | 
					        CHECK(value.get_ptr<json::binary_t*>() == nullptr);
 | 
				
			||||||
 | 
					        CHECK(value.get_ptr<json::internal_binary_t*>() == nullptr);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    SECTION("pointer access to const array_t")
 | 
					    SECTION("pointer access to const array_t")
 | 
				
			||||||
| 
						 | 
					@ -149,7 +151,7 @@ TEST_CASE("pointer access")
 | 
				
			||||||
        CHECK(value.get_ptr<const json::number_unsigned_t*>() == nullptr);
 | 
					        CHECK(value.get_ptr<const json::number_unsigned_t*>() == nullptr);
 | 
				
			||||||
        CHECK(value.get_ptr<const json::number_float_t*>() == nullptr);
 | 
					        CHECK(value.get_ptr<const json::number_float_t*>() == nullptr);
 | 
				
			||||||
        CHECK(value.get_ptr<const json::binary_t*>() == nullptr);
 | 
					        CHECK(value.get_ptr<const json::binary_t*>() == nullptr);
 | 
				
			||||||
 | 
					        CHECK(value.get_ptr<const json::internal_binary_t*>() == nullptr);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    SECTION("pointer access to string_t")
 | 
					    SECTION("pointer access to string_t")
 | 
				
			||||||
| 
						 | 
					@ -179,6 +181,7 @@ TEST_CASE("pointer access")
 | 
				
			||||||
        CHECK(value.get_ptr<json::number_unsigned_t*>() == nullptr);
 | 
					        CHECK(value.get_ptr<json::number_unsigned_t*>() == nullptr);
 | 
				
			||||||
        CHECK(value.get_ptr<json::number_float_t*>() == nullptr);
 | 
					        CHECK(value.get_ptr<json::number_float_t*>() == nullptr);
 | 
				
			||||||
        CHECK(value.get_ptr<json::binary_t*>() == nullptr);
 | 
					        CHECK(value.get_ptr<json::binary_t*>() == nullptr);
 | 
				
			||||||
 | 
					        CHECK(value.get_ptr<json::internal_binary_t*>() == nullptr);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    SECTION("pointer access to const string_t")
 | 
					    SECTION("pointer access to const string_t")
 | 
				
			||||||
| 
						 | 
					@ -208,6 +211,7 @@ TEST_CASE("pointer access")
 | 
				
			||||||
        CHECK(value.get_ptr<const json::number_unsigned_t*>() == nullptr);
 | 
					        CHECK(value.get_ptr<const json::number_unsigned_t*>() == nullptr);
 | 
				
			||||||
        CHECK(value.get_ptr<const json::number_float_t*>() == nullptr);
 | 
					        CHECK(value.get_ptr<const json::number_float_t*>() == nullptr);
 | 
				
			||||||
        CHECK(value.get_ptr<const json::binary_t*>() == nullptr);
 | 
					        CHECK(value.get_ptr<const json::binary_t*>() == nullptr);
 | 
				
			||||||
 | 
					        CHECK(value.get_ptr<const json::internal_binary_t*>() == nullptr);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    SECTION("pointer access to boolean_t")
 | 
					    SECTION("pointer access to boolean_t")
 | 
				
			||||||
| 
						 | 
					@ -237,6 +241,7 @@ TEST_CASE("pointer access")
 | 
				
			||||||
        CHECK(value.get_ptr<json::number_unsigned_t*>() == nullptr);
 | 
					        CHECK(value.get_ptr<json::number_unsigned_t*>() == nullptr);
 | 
				
			||||||
        CHECK(value.get_ptr<json::number_float_t*>() == nullptr);
 | 
					        CHECK(value.get_ptr<json::number_float_t*>() == nullptr);
 | 
				
			||||||
        CHECK(value.get_ptr<json::binary_t*>() == nullptr);
 | 
					        CHECK(value.get_ptr<json::binary_t*>() == nullptr);
 | 
				
			||||||
 | 
					        CHECK(value.get_ptr<json::internal_binary_t*>() == nullptr);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    SECTION("pointer access to const boolean_t")
 | 
					    SECTION("pointer access to const boolean_t")
 | 
				
			||||||
| 
						 | 
					@ -267,6 +272,7 @@ TEST_CASE("pointer access")
 | 
				
			||||||
        CHECK(value.get_ptr<const json::number_float_t*>() == nullptr);
 | 
					        CHECK(value.get_ptr<const json::number_float_t*>() == nullptr);
 | 
				
			||||||
        CHECK(value.get_ptr<const json::binary_t*>() == nullptr);
 | 
					        CHECK(value.get_ptr<const json::binary_t*>() == nullptr);
 | 
				
			||||||
        CHECK(value.get_ptr<const json::binary_t*>() == nullptr);
 | 
					        CHECK(value.get_ptr<const json::binary_t*>() == nullptr);
 | 
				
			||||||
 | 
					        CHECK(value.get_ptr<const json::internal_binary_t*>() == nullptr);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    SECTION("pointer access to number_integer_t")
 | 
					    SECTION("pointer access to number_integer_t")
 | 
				
			||||||
| 
						 | 
					@ -296,6 +302,7 @@ TEST_CASE("pointer access")
 | 
				
			||||||
        CHECK(value.get_ptr<json::number_unsigned_t*>() == nullptr);
 | 
					        CHECK(value.get_ptr<json::number_unsigned_t*>() == nullptr);
 | 
				
			||||||
        CHECK(value.get_ptr<json::number_float_t*>() == nullptr);
 | 
					        CHECK(value.get_ptr<json::number_float_t*>() == nullptr);
 | 
				
			||||||
        CHECK(value.get_ptr<json::binary_t*>() == nullptr);
 | 
					        CHECK(value.get_ptr<json::binary_t*>() == nullptr);
 | 
				
			||||||
 | 
					        CHECK(value.get_ptr<json::internal_binary_t*>() == nullptr);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    SECTION("pointer access to const number_integer_t")
 | 
					    SECTION("pointer access to const number_integer_t")
 | 
				
			||||||
| 
						 | 
					@ -325,6 +332,7 @@ TEST_CASE("pointer access")
 | 
				
			||||||
        CHECK(value.get_ptr<const json::number_unsigned_t*>() == nullptr);
 | 
					        CHECK(value.get_ptr<const json::number_unsigned_t*>() == nullptr);
 | 
				
			||||||
        CHECK(value.get_ptr<const json::number_float_t*>() == nullptr);
 | 
					        CHECK(value.get_ptr<const json::number_float_t*>() == nullptr);
 | 
				
			||||||
        CHECK(value.get_ptr<const json::binary_t*>() == nullptr);
 | 
					        CHECK(value.get_ptr<const json::binary_t*>() == nullptr);
 | 
				
			||||||
 | 
					        CHECK(value.get_ptr<const json::internal_binary_t*>() == nullptr);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    SECTION("pointer access to number_unsigned_t")
 | 
					    SECTION("pointer access to number_unsigned_t")
 | 
				
			||||||
| 
						 | 
					@ -354,6 +362,7 @@ TEST_CASE("pointer access")
 | 
				
			||||||
        CHECK(value.get_ptr<json::number_unsigned_t*>() != nullptr);
 | 
					        CHECK(value.get_ptr<json::number_unsigned_t*>() != nullptr);
 | 
				
			||||||
        CHECK(value.get_ptr<json::number_float_t*>() == nullptr);
 | 
					        CHECK(value.get_ptr<json::number_float_t*>() == nullptr);
 | 
				
			||||||
        CHECK(value.get_ptr<json::binary_t*>() == nullptr);
 | 
					        CHECK(value.get_ptr<json::binary_t*>() == nullptr);
 | 
				
			||||||
 | 
					        CHECK(value.get_ptr<json::internal_binary_t*>() == nullptr);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    SECTION("pointer access to const number_unsigned_t")
 | 
					    SECTION("pointer access to const number_unsigned_t")
 | 
				
			||||||
| 
						 | 
					@ -383,6 +392,7 @@ TEST_CASE("pointer access")
 | 
				
			||||||
        CHECK(value.get_ptr<const json::number_unsigned_t*>() != nullptr);
 | 
					        CHECK(value.get_ptr<const json::number_unsigned_t*>() != nullptr);
 | 
				
			||||||
        CHECK(value.get_ptr<const json::number_float_t*>() == nullptr);
 | 
					        CHECK(value.get_ptr<const json::number_float_t*>() == nullptr);
 | 
				
			||||||
        CHECK(value.get_ptr<const json::binary_t*>() == nullptr);
 | 
					        CHECK(value.get_ptr<const json::binary_t*>() == nullptr);
 | 
				
			||||||
 | 
					        CHECK(value.get_ptr<const json::internal_binary_t*>() == nullptr);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    SECTION("pointer access to number_float_t")
 | 
					    SECTION("pointer access to number_float_t")
 | 
				
			||||||
| 
						 | 
					@ -412,6 +422,7 @@ TEST_CASE("pointer access")
 | 
				
			||||||
        CHECK(value.get_ptr<json::number_unsigned_t*>() == nullptr);
 | 
					        CHECK(value.get_ptr<json::number_unsigned_t*>() == nullptr);
 | 
				
			||||||
        CHECK(value.get_ptr<json::number_float_t*>() != nullptr);
 | 
					        CHECK(value.get_ptr<json::number_float_t*>() != nullptr);
 | 
				
			||||||
        CHECK(value.get_ptr<json::binary_t*>() == nullptr);
 | 
					        CHECK(value.get_ptr<json::binary_t*>() == nullptr);
 | 
				
			||||||
 | 
					        CHECK(value.get_ptr<json::internal_binary_t*>() == nullptr);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    SECTION("pointer access to const number_float_t")
 | 
					    SECTION("pointer access to const number_float_t")
 | 
				
			||||||
| 
						 | 
					@ -471,4 +482,33 @@ TEST_CASE("pointer access")
 | 
				
			||||||
        CHECK(value.get_ptr<const json::number_float_t*>() == nullptr);
 | 
					        CHECK(value.get_ptr<const json::number_float_t*>() == nullptr);
 | 
				
			||||||
        CHECK(value.get_ptr<const json::binary_t*>() != nullptr);
 | 
					        CHECK(value.get_ptr<const json::binary_t*>() != nullptr);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    SECTION("pointer access to const binary_t")
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        using test_type = const json::internal_binary_t;
 | 
				
			||||||
 | 
					        const json value = json::binary_array({});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // check if pointers are returned correctly
 | 
				
			||||||
 | 
					        test_type* p1 = value.get_ptr<test_type*>();
 | 
				
			||||||
 | 
					        CHECK(p1 == value.get_ptr<test_type*>());
 | 
				
			||||||
 | 
					        //CHECK(*p1 == value.get<test_type>());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        const test_type* p2 = value.get_ptr<const test_type*>();
 | 
				
			||||||
 | 
					        CHECK(p2 == value.get_ptr<const test_type*>());
 | 
				
			||||||
 | 
					        //CHECK(*p2 == value.get<test_type>());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        const test_type* const p3 = value.get_ptr<const test_type* const>();
 | 
				
			||||||
 | 
					        CHECK(p3 == value.get_ptr<const test_type* const>());
 | 
				
			||||||
 | 
					        //CHECK(*p3 == value.get<test_type>());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // check if null pointers are returned correctly
 | 
				
			||||||
 | 
					        CHECK(value.get_ptr<const json::object_t*>() == nullptr);
 | 
				
			||||||
 | 
					        CHECK(value.get_ptr<const json::array_t*>() == nullptr);
 | 
				
			||||||
 | 
					        CHECK(value.get_ptr<const json::string_t*>() == nullptr);
 | 
				
			||||||
 | 
					        CHECK(value.get_ptr<const json::boolean_t*>() == nullptr);
 | 
				
			||||||
 | 
					        CHECK(value.get_ptr<const json::number_integer_t*>() == nullptr);
 | 
				
			||||||
 | 
					        CHECK(value.get_ptr<const json::number_unsigned_t*>() == nullptr);
 | 
				
			||||||
 | 
					        CHECK(value.get_ptr<const json::number_float_t*>() == nullptr);
 | 
				
			||||||
 | 
					        CHECK(value.get_ptr<const json::internal_binary_t*>() != nullptr);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue