aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/src/vcpkg-test
diff options
context:
space:
mode:
Diffstat (limited to 'toolsrc/src/vcpkg-test')
-rw-r--r--toolsrc/src/vcpkg-test/manifests.cpp52
-rw-r--r--toolsrc/src/vcpkg-test/plan.cpp6
-rw-r--r--toolsrc/src/vcpkg-test/util.cpp6
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