aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/src/tests.plan.cpp
diff options
context:
space:
mode:
authorRobert Schumacher <roschuma@microsoft.com>2017-11-06 14:29:57 -0800
committerRobert Schumacher <roschuma@microsoft.com>2017-11-06 14:29:57 -0800
commite2575e8c961e90b5dd35ef37c0b241b6cdb2914a (patch)
treef64e4f3f3efabf3592fa2e2823ac99a6d2a95e5b /toolsrc/src/tests.plan.cpp
parenteb99b0c705b78e6c278e0a3782a8324e9d304e69 (diff)
downloadvcpkg-e2575e8c961e90b5dd35ef37c0b241b6cdb2914a.tar.gz
vcpkg-e2575e8c961e90b5dd35ef37c0b241b6cdb2914a.zip
[vcpkg] Reformat tests.plan.cpp and add :x64 version of test
Diffstat (limited to 'toolsrc/src/tests.plan.cpp')
-rw-r--r--toolsrc/src/tests.plan.cpp97
1 files changed, 58 insertions, 39 deletions
diff --git a/toolsrc/src/tests.plan.cpp b/toolsrc/src/tests.plan.cpp
index d62178bdf..9cf3cfd8e 100644
--- a/toolsrc/src/tests.plan.cpp
+++ b/toolsrc/src/tests.plan.cpp
@@ -39,23 +39,21 @@ namespace Microsoft::VisualStudio::CppUnitTestFramework
namespace UnitTest1
{
static std::unique_ptr<SourceControlFile> make_control_file(
- const char* name,
- const char* depends,
- const std::vector<std::pair<const char*, const char*>>& features = {})
+ const char* name, const char* depends, const std::vector<std::pair<const char*, const char*>>& features = {})
{
using Pgh = std::unordered_map<std::string, std::string>;
std::vector<Pgh> scf_pghs;
scf_pghs.push_back(Pgh{
- { "Source", name },
- { "Version", "0" },
- { "Build-Depends", depends },
+ {"Source", name},
+ {"Version", "0"},
+ {"Build-Depends", depends},
});
for (auto&& feature : features)
{
scf_pghs.push_back(Pgh{
- { "Feature", feature.first },
- { "Description", "feature" },
- { "Build-Depends", feature.second },
+ {"Feature", feature.first},
+ {"Description", "feature"},
+ {"Build-Depends", feature.second},
});
}
auto m_pgh = vcpkg::SourceControlFile::parse_control_file(std::move(scf_pghs));
@@ -64,9 +62,9 @@ namespace UnitTest1
}
static void features_check(Dependencies::AnyAction* install_action,
- std::string pkg_name,
- std::vector<std::string> vec,
- const Triplet& triplet = Triplet::X86_WINDOWS)
+ std::string pkg_name,
+ std::vector<std::string> vec,
+ const Triplet& triplet = Triplet::X86_WINDOWS)
{
const auto& plan = install_action->install_plan.value_or_exit(VCPKG_LINE_INFO);
const auto& feature_list = plan.feature_list;
@@ -74,7 +72,7 @@ namespace UnitTest1
Assert::AreEqual(plan.spec.triplet().to_string().c_str(), triplet.to_string().c_str());
Assert::AreEqual(pkg_name.c_str(),
- (*plan.any_paragraph.source_control_file.get())->core_paragraph->name.c_str());
+ (*plan.any_paragraph.source_control_file.get())->core_paragraph->name.c_str());
Assert::AreEqual(size_t(vec.size()), feature_list.size());
for (auto&& feature_name : vec)
@@ -82,7 +80,7 @@ namespace UnitTest1
if (feature_name == "core" || feature_name == "")
{
Assert::IsTrue(Util::find(feature_list, "core") != feature_list.end() ||
- Util::find(feature_list, "") != feature_list.end());
+ Util::find(feature_list, "") != feature_list.end());
continue;
}
Assert::IsTrue(Util::find(feature_list, feature_name) != feature_list.end());
@@ -90,36 +88,39 @@ namespace UnitTest1
}
static void remove_plan_check(Dependencies::AnyAction* remove_action,
- std::string pkg_name,
- const Triplet& triplet = Triplet::X86_WINDOWS)
+ std::string pkg_name,
+ const Triplet& triplet = Triplet::X86_WINDOWS)
{
const auto& plan = remove_action->remove_plan.value_or_exit(VCPKG_LINE_INFO);
Assert::AreEqual(plan.spec.triplet().to_string().c_str(), triplet.to_string().c_str());
Assert::AreEqual(pkg_name.c_str(), plan.spec.name().c_str());
}
- static std::unique_ptr<StatusParagraph> make_status_pgh(const char* name, const char* depends = "")
+ static std::unique_ptr<StatusParagraph> make_status_pgh(const char* name,
+ const char* depends = "",
+ const char* triplet = "x86-windows")
{
using Pgh = std::unordered_map<std::string, std::string>;
- return std::make_unique<StatusParagraph>(Pgh{ { "Package", name },
- { "Version", "1" },
- { "Architecture", "x86-windows" },
- { "Multi-Arch", "same" },
- { "Depends", depends },
- { "Status", "install ok installed" } });
+ return std::make_unique<StatusParagraph>(Pgh{{"Package", name},
+ {"Version", "1"},
+ {"Architecture", triplet},
+ {"Multi-Arch", "same"},
+ {"Depends", depends},
+ {"Status", "install ok installed"}});
}
static std::unique_ptr<StatusParagraph> make_status_feature_pgh(const char* name,
- const char* feature,
- const char* depends = "")
+ const char* feature,
+ const char* depends = "",
+ const char* triplet = "x86-windows")
{
using Pgh = std::unordered_map<std::string, std::string>;
- return std::make_unique<StatusParagraph>(Pgh{ { "Package", name },
- { "Version", "1" },
- { "Feature", feature },
- { "Architecture", "x86-windows" },
- { "Multi-Arch", "same" },
- { "Depends", depends },
- { "Status", "install ok installed" } });
+ return std::make_unique<StatusParagraph>(Pgh{{"Package", name},
+ {"Version", "1"},
+ {"Feature", feature},
+ {"Architecture", triplet},
+ {"Multi-Arch", "same"},
+ {"Depends", depends},
+ {"Status", "install ok installed"}});
}
struct PackageSpecMap
{
@@ -128,8 +129,8 @@ namespace UnitTest1
PackageSpecMap(const Triplet& t) { triplet = t; }
PackageSpec emplace(const char* name,
- const char* depends = "",
- const std::vector<std::pair<const char*, const char*>>& features = {})
+ const char* depends = "",
+ const std::vector<std::pair<const char*, const char*>>& features = {})
{
return emplace(std::move(*make_control_file(name, depends, features)));
}
@@ -138,7 +139,7 @@ namespace UnitTest1
auto spec = PackageSpec::from_name_and_triplet(scf.core_paragraph->name, triplet);
Assert::IsTrue(spec.has_value());
map.emplace(scf.core_paragraph->name, std::move(scf));
- return PackageSpec{ *spec.get() };
+ return PackageSpec{*spec.get()};
}
};
@@ -506,7 +507,7 @@ namespace UnitTest1
pghs.push_back(make_status_pgh("a"));
StatusParagraphs status_db(std::move(pghs));
- auto remove_plan = Dependencies::create_remove_plan({ unsafe_pspec("a") }, status_db);
+ auto remove_plan = Dependencies::create_remove_plan({unsafe_pspec("a")}, status_db);
Assert::AreEqual(size_t(1), remove_plan.size());
Assert::AreEqual("a", remove_plan[0].spec.name().c_str());
@@ -519,7 +520,7 @@ namespace UnitTest1
pghs.push_back(make_status_pgh("b", "a"));
StatusParagraphs status_db(std::move(pghs));
- auto remove_plan = Dependencies::create_remove_plan({ unsafe_pspec("a") }, status_db);
+ auto remove_plan = Dependencies::create_remove_plan({unsafe_pspec("a")}, status_db);
Assert::AreEqual(size_t(2), remove_plan.size());
Assert::AreEqual("b", remove_plan[0].spec.name().c_str());
@@ -534,7 +535,7 @@ namespace UnitTest1
pghs.push_back(make_status_feature_pgh("b", "0", "a"));
StatusParagraphs status_db(std::move(pghs));
- auto remove_plan = Dependencies::create_remove_plan({ unsafe_pspec("a") }, status_db);
+ auto remove_plan = Dependencies::create_remove_plan({unsafe_pspec("a")}, status_db);
Assert::AreEqual(size_t(2), remove_plan.size());
Assert::AreEqual("b", remove_plan[0].spec.name().c_str());
@@ -550,7 +551,25 @@ namespace UnitTest1
pghs.push_back(make_status_feature_pgh("opencv", "vtk", "vtk"));
StatusParagraphs status_db(std::move(pghs));
- auto remove_plan = Dependencies::create_remove_plan({ unsafe_pspec("expat") }, status_db);
+ auto remove_plan = Dependencies::create_remove_plan({unsafe_pspec("expat")}, status_db);
+
+ Assert::AreEqual(size_t(3), remove_plan.size());
+ Assert::AreEqual("opencv", remove_plan[0].spec.name().c_str());
+ Assert::AreEqual("vtk", remove_plan[1].spec.name().c_str());
+ Assert::AreEqual("expat", remove_plan[2].spec.name().c_str());
+ }
+
+ TEST_METHOD(features_depend_remove_scheme_once_removed_x64)
+ {
+ std::vector<std::unique_ptr<StatusParagraph>> pghs;
+ pghs.push_back(make_status_pgh("expat", "", "x64"));
+ pghs.push_back(make_status_pgh("vtk", "expat", "x64"));
+ pghs.push_back(make_status_pgh("opencv", "", "x64"));
+ pghs.push_back(make_status_feature_pgh("opencv", "vtk", "vtk", "x64"));
+ StatusParagraphs status_db(std::move(pghs));
+
+ auto remove_plan = Dependencies::create_remove_plan(
+ {unsafe_pspec("expat", Triplet::from_canonical_name("x64"))}, status_db);
Assert::AreEqual(size_t(3), remove_plan.size());
Assert::AreEqual("opencv", remove_plan[0].spec.name().c_str());