diff options
Diffstat (limited to 'toolsrc/src/vcpkg-test')
| -rw-r--r-- | toolsrc/src/vcpkg-test/manifests.cpp | 52 | ||||
| -rw-r--r-- | toolsrc/src/vcpkg-test/plan.cpp | 6 | ||||
| -rw-r--r-- | toolsrc/src/vcpkg-test/util.cpp | 6 |
3 files changed, 59 insertions, 5 deletions
diff --git a/toolsrc/src/vcpkg-test/manifests.cpp b/toolsrc/src/vcpkg-test/manifests.cpp index 77f4eb440..be087584e 100644 --- a/toolsrc/src/vcpkg-test/manifests.cpp +++ b/toolsrc/src/vcpkg-test/manifests.cpp @@ -39,6 +39,7 @@ static Parse::ParseExpected<SourceControlFile> test_parse_manifest(StringView sv { print_error_message(res.error()); } + REQUIRE(res.has_value() == !expect_fail); return res; } @@ -59,6 +60,57 @@ TEST_CASE ("manifest construct minimum", "[manifests]") REQUIRE(pgh.core_paragraph->dependencies.empty()); } +TEST_CASE ("manifest versioning", "[manifests]") +{ + std::tuple<StringLiteral, Versions::Scheme, StringLiteral> data[] = { + {R"json({ + "name": "zlib", + "version-string": "abcd" +} +)json", + Versions::Scheme::String, + "abcd"}, + {R"json({ + "name": "zlib", + "version-date": "2020-01-01" +} +)json", + Versions::Scheme::Date, + "2020-01-01"}, + {R"json({ + "name": "zlib", + "version": "1.2.3.4.5" +} +)json", + Versions::Scheme::Relaxed, + "1.2.3.4.5"}, + {R"json({ + "name": "zlib", + "version-semver": "1.2.3-rc3" +} +)json", + Versions::Scheme::Semver, + "1.2.3-rc3"}, + }; + for (auto v : data) + { + auto m_pgh = test_parse_manifest(std::get<0>(v)); + + REQUIRE(m_pgh.has_value()); + auto& pgh = **m_pgh.get(); + REQUIRE(Json::stringify(serialize_manifest(pgh), Json::JsonStyle::with_spaces(4)) == std::get<0>(v)); + REQUIRE(pgh.core_paragraph->version_scheme == std::get<1>(v)); + REQUIRE(pgh.core_paragraph->version == std::get<2>(v)); + } + + test_parse_manifest(R"json({ + "name": "zlib", + "version-string": "abcd", + "version-semver": "1.2.3-rc3" + })json", + true); +} + TEST_CASE ("manifest construct maximum", "[manifests]") { auto m_pgh = test_parse_manifest(R"json({ diff --git a/toolsrc/src/vcpkg-test/plan.cpp b/toolsrc/src/vcpkg-test/plan.cpp index 55c6740da..363a2d9b4 100644 --- a/toolsrc/src/vcpkg-test/plan.cpp +++ b/toolsrc/src/vcpkg-test/plan.cpp @@ -389,9 +389,9 @@ TEST_CASE ("basic feature test 8", "[plan]") auto spec_c_64 = FullPackageSpec{spec_map.emplace("c", "a[a1]"), {"core"}}; spec_map.triplet = Test::X86_WINDOWS; - auto spec_a_86 = FullPackageSpec{spec_map.emplace("a", "b", {{"a1", ""}}), {"core"}}; - auto spec_b_86 = FullPackageSpec{spec_map.emplace("b")}; - auto spec_c_86 = FullPackageSpec{spec_map.emplace("c", "a[a1]"), {"core"}}; + auto spec_a_86 = FullPackageSpec{PackageSpec{"a", Test::X86_WINDOWS}}; + auto spec_b_86 = FullPackageSpec{PackageSpec{"b", Test::X86_WINDOWS}}; + auto spec_c_86 = FullPackageSpec{PackageSpec{"c", Test::X86_WINDOWS}}; PortFileProvider::MapPortFileProvider map_port{spec_map.map}; MockCMakeVarProvider var_provider; diff --git a/toolsrc/src/vcpkg-test/util.cpp b/toolsrc/src/vcpkg-test/util.cpp index 083861bc2..73ff9db5c 100644 --- a/toolsrc/src/vcpkg-test/util.cpp +++ b/toolsrc/src/vcpkg-test/util.cpp @@ -108,8 +108,10 @@ namespace vcpkg::Test PackageSpec PackageSpecMap::emplace(vcpkg::SourceControlFileLocation&& scfl) { - map.emplace(scfl.source_control_file->core_paragraph->name, std::move(scfl)); - return {scfl.source_control_file->core_paragraph->name, triplet}; + const auto& name = scfl.source_control_file->core_paragraph->name; + REQUIRE(map.find(name) == map.end()); + map.emplace(name, std::move(scfl)); + return {name, triplet}; } static AllowSymlinks internal_can_create_symlinks() noexcept |
