diff options
Diffstat (limited to 'toolsrc/src/vcpkg-test/specifier.cpp')
| -rw-r--r-- | toolsrc/src/vcpkg-test/specifier.cpp | 68 |
1 files changed, 29 insertions, 39 deletions
diff --git a/toolsrc/src/vcpkg-test/specifier.cpp b/toolsrc/src/vcpkg-test/specifier.cpp index a0a3725e8..2a1398416 100644 --- a/toolsrc/src/vcpkg-test/specifier.cpp +++ b/toolsrc/src/vcpkg-test/specifier.cpp @@ -12,8 +12,8 @@ TEST_CASE ("specifier conversion", "[specifier]") { constexpr std::size_t SPEC_SIZE = 6; - auto a_spec = PackageSpec::from_name_and_triplet("a", Triplet::X64_WINDOWS).value_or_exit(VCPKG_LINE_INFO); - auto b_spec = PackageSpec::from_name_and_triplet("b", Triplet::X64_WINDOWS).value_or_exit(VCPKG_LINE_INFO); + PackageSpec a_spec("a", Triplet::X64_WINDOWS); + PackageSpec b_spec("b", Triplet::X64_WINDOWS); auto fspecs = FullPackageSpec{a_spec, {"0", "1"}}.to_feature_specs({}, {}); auto fspecs2 = FullPackageSpec{b_spec, {"2", "3"}}.to_feature_specs({}, {}); @@ -36,67 +36,59 @@ TEST_CASE ("specifier parsing", "[specifier]") { SECTION ("parsed specifier from string") { - auto maybe_spec = vcpkg::ParsedSpecifier::from_string("zlib"); - REQUIRE(maybe_spec.error() == vcpkg::PackageSpecParseResult::SUCCESS); + auto maybe_spec = vcpkg::parse_qualified_specifier("zlib"); + REQUIRE(maybe_spec.has_value()); auto& spec = *maybe_spec.get(); REQUIRE(spec.name == "zlib"); - REQUIRE(spec.features.size() == 0); - REQUIRE(spec.triplet == ""); + REQUIRE(!spec.features); + REQUIRE(!spec.triplet); } SECTION ("parsed specifier from string with triplet") { - auto maybe_spec = vcpkg::ParsedSpecifier::from_string("zlib:x64-uwp"); - REQUIRE(maybe_spec.error() == vcpkg::PackageSpecParseResult::SUCCESS); + auto maybe_spec = vcpkg::parse_qualified_specifier("zlib:x64-uwp"); + REQUIRE(maybe_spec); auto& spec = *maybe_spec.get(); REQUIRE(spec.name == "zlib"); - REQUIRE(spec.triplet == "x64-uwp"); + REQUIRE(spec.triplet.value_or("") == "x64-uwp"); } SECTION ("parsed specifier from string with colons") { - auto ec = vcpkg::ParsedSpecifier::from_string("zlib:x86-uwp:").error(); - REQUIRE(ec == vcpkg::PackageSpecParseResult::TOO_MANY_COLONS); + auto s = vcpkg::parse_qualified_specifier("zlib:x86-uwp:"); + REQUIRE(!s); } SECTION ("parsed specifier from string with feature") { - auto maybe_spec = vcpkg::ParsedSpecifier::from_string("zlib[feature]:x64-uwp"); - REQUIRE(maybe_spec.error() == vcpkg::PackageSpecParseResult::SUCCESS); + auto maybe_spec = vcpkg::parse_qualified_specifier("zlib[feature]:x64-uwp"); + REQUIRE(maybe_spec); auto& spec = *maybe_spec.get(); REQUIRE(spec.name == "zlib"); - REQUIRE(spec.features.size() == 1); - REQUIRE(spec.features.at(0) == "feature"); - REQUIRE(spec.triplet == "x64-uwp"); + REQUIRE(spec.features.value_or(std::vector<std::string>{}) == std::vector<std::string>{"feature"}); + REQUIRE(spec.triplet.value_or("") == "x64-uwp"); } SECTION ("parsed specifier from string with many features") { - auto maybe_spec = vcpkg::ParsedSpecifier::from_string("zlib[0, 1,2]"); - REQUIRE(maybe_spec.error() == vcpkg::PackageSpecParseResult::SUCCESS); + auto maybe_spec = vcpkg::parse_qualified_specifier("zlib[0, 1,2]"); + REQUIRE(maybe_spec); auto& spec = *maybe_spec.get(); - REQUIRE(spec.name == "zlib"); - REQUIRE(spec.features.size() == 3); - REQUIRE(spec.features.at(0) == "0"); - REQUIRE(spec.features.at(1) == "1"); - REQUIRE(spec.features.at(2) == "2"); - REQUIRE(spec.triplet == ""); + REQUIRE(spec.features.value_or(std::vector<std::string>{}) == std::vector<std::string>{"0", "1", "2"}); } SECTION ("parsed specifier wildcard feature") { - auto maybe_spec = vcpkg::ParsedSpecifier::from_string("zlib[*]"); - REQUIRE(maybe_spec.error() == vcpkg::PackageSpecParseResult::SUCCESS); + auto maybe_spec = vcpkg::parse_qualified_specifier("zlib[*]"); + System::print2(maybe_spec.error()); + REQUIRE(maybe_spec); auto& spec = *maybe_spec.get(); - REQUIRE(spec.name == "zlib"); - REQUIRE(spec.features.size() == 1); - REQUIRE(spec.features.at(0) == "*"); - REQUIRE(spec.triplet == ""); + REQUIRE(spec.features.value_or(std::vector<std::string>{}) == std::vector<std::string>{"*"}); } SECTION ("expand wildcards") @@ -109,17 +101,15 @@ TEST_CASE ("specifier parsing", "[specifier]") Util::Vectors::append(&specs, specs2); Util::sort(specs); - auto spectargets = FeatureSpec::from_strings_and_triplet( - { - "openssl", - "zlib", - "zlib[0]", - "zlib[1]", - }, - Triplet::X86_UWP); + std::vector<FeatureSpec> spectargets{ + {{"openssl", Triplet::X86_UWP}, "core"}, + {{"zlib", Triplet::X86_UWP}, "core"}, + {{"zlib", Triplet::X86_UWP}, "0"}, + {{"zlib", Triplet::X86_UWP}, "1"}, + }; Util::sort(spectargets); REQUIRE(specs.size() == spectargets.size()); - REQUIRE(Util::all_equal(specs, spectargets)); + REQUIRE(specs == spectargets); } #if defined(_WIN32) |
