// Copyright Catch2 Authors // Distributed under the Boost Software License, Version 1.0. // (See accompanying file LICENSE_1_0.txt or copy at // https://www.boost.org/LICENSE_1_0.txt) // SPDX-License-Identifier: BSL-1.0 #include #include #include TEST_CASE("Reporter spec splitting", "[reporter-spec][cli][approvals]") { using Catch::Detail::splitReporterSpec; using Catch::Matchers::Equals; using namespace std::string_literals; SECTION("Various edge cases") { REQUIRE_THAT( splitReporterSpec( "" ), Equals( std::vector{ ""s } ) ); REQUIRE_THAT( splitReporterSpec( "::" ), Equals( std::vector{ "", "" } ) ); REQUIRE_THAT( splitReporterSpec( "::rep" ), Equals( std::vector{ "", "rep" } ) ); REQUIRE_THAT( splitReporterSpec( "rep::" ), Equals( std::vector{ "rep", "" } ) ); } SECTION("Validish specs") { REQUIRE_THAT( splitReporterSpec( "newReporter" ), Equals( std::vector{ "newReporter"s } ) ); REQUIRE_THAT( splitReporterSpec( "foo-reporter::key1=value1::key2=value with " "space::key with space=some-value" ), Equals( std::vector{ "foo-reporter"s, "key1=value1"s, "key2=value with space"s, "key with space=some-value"s } ) ); REQUIRE_THAT( splitReporterSpec( "spaced reporter name::key:key=value:value" ), Equals( std::vector{ "spaced reporter name"s, "key:key=value:value"s } ) ); } }