:white_check_mark: add regression test
diff --git a/.travis.yml b/.travis.yml index f48ee1f..c671e93 100644 --- a/.travis.yml +++ b/.travis.yml
@@ -300,6 +300,16 @@ sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-trusty-7'] packages: ['g++-7', 'clang-7', 'ninja-build'] + - os: linux + compiler: clang + env: + - COMPILER=clang++-7 + - CXX_STANDARD=20 + addons: + apt: + sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-trusty-7'] + packages: ['g++-7', 'clang-7', 'ninja-build'] + ################ # build script # ################
diff --git a/test/src/unit-regression2.cpp b/test/src/unit-regression2.cpp index ca50cdd..1171531 100644 --- a/test/src/unit-regression2.cpp +++ b/test/src/unit-regression2.cpp
@@ -51,6 +51,10 @@ #include <variant> #endif +#ifdef JSON_HAS_CPP_20 + #include <span> +#endif + ///////////////////////////////////////////////////////////////////// // for #1021 ///////////////////////////////////////////////////////////////////// @@ -484,4 +488,14 @@ json j = json::parse(ss, nullptr, true, true); CHECK(j.dump() == "{}"); } + +#ifdef JSON_HAS_CPP_20 + SECTION("issue #2546 - parsing containers of std::byte") + { + const char DATA[] = R"("Hello, world!")"; + const auto s = std::as_bytes(std::span(DATA)); + json j = json::parse(s); + CHECK(j.dump == "Hello, world!"); + } +#endif }