diff options
| author | Robert Schumacher <roschuma@microsoft.com> | 2017-11-06 14:29:57 -0800 |
|---|---|---|
| committer | Robert Schumacher <roschuma@microsoft.com> | 2017-11-06 14:29:57 -0800 |
| commit | e2575e8c961e90b5dd35ef37c0b241b6cdb2914a (patch) | |
| tree | f64e4f3f3efabf3592fa2e2823ac99a6d2a95e5b /toolsrc/src/tests.plan.cpp | |
| parent | eb99b0c705b78e6c278e0a3782a8324e9d304e69 (diff) | |
| download | vcpkg-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.cpp | 97 |
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()); |
