diff options
| author | Mikhaylov Anton <anion155@gmail.com> | 2020-02-04 13:40:15 +0500 |
|---|---|---|
| committer | Mikhaylov Anton <anion155@gmail.com> | 2020-02-04 13:40:15 +0500 |
| commit | d56ed7ee7613e969a3f304b3377438cc5a9064d4 (patch) | |
| tree | d352eee837443f070bbf5d6c5fdd9a6f22f4f8c2 /toolsrc/src/vcpkg-test/util.cpp | |
| parent | ab5b74c797f5a2bd6b28915908355e2b32876dfa (diff) | |
| parent | 85bf9d9d792e379e973d66c8af9f39d65d1d6d42 (diff) | |
| download | vcpkg-d56ed7ee7613e969a3f304b3377438cc5a9064d4.tar.gz vcpkg-d56ed7ee7613e969a3f304b3377438cc5a9064d4.zip | |
Merge branch 'master' into patch-1
Diffstat (limited to 'toolsrc/src/vcpkg-test/util.cpp')
| -rw-r--r-- | toolsrc/src/vcpkg-test/util.cpp | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/toolsrc/src/vcpkg-test/util.cpp b/toolsrc/src/vcpkg-test/util.cpp index daa21567d..db310f7a0 100644 --- a/toolsrc/src/vcpkg-test/util.cpp +++ b/toolsrc/src/vcpkg-test/util.cpp @@ -38,6 +38,31 @@ namespace vcpkg::Test { + std::unique_ptr<SourceControlFile> make_control_file( + const char* name, + const char* depends, + const std::vector<std::pair<const char*, const char*>>& features, + const std::vector<const char*>& default_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}, + {"Default-Features", Strings::join(", ", default_features)}}); + for (auto&& feature : features) + { + scf_pghs.push_back(Pgh{ + {"Feature", feature.first}, + {"Description", "feature"}, + {"Build-Depends", feature.second}, + }); + } + auto m_pgh = vcpkg::SourceControlFile::parse_control_file("", std::move(scf_pghs)); + REQUIRE(m_pgh.has_value()); + return std::move(*m_pgh.get()); + } + std::unique_ptr<vcpkg::StatusParagraph> make_status_pgh(const char* name, const char* depends, const char* default_features, @@ -68,6 +93,23 @@ namespace vcpkg::Test {"Status", "install ok installed"}}); } + PackageSpec PackageSpecMap::emplace(const char* name, + const char* depends, + const std::vector<std::pair<const char*, const char*>>& features, + const std::vector<const char*>& default_features) + { + auto scfl = SourceControlFileLocation{make_control_file(name, depends, features, default_features), ""}; + return emplace(std::move(scfl)); + } + + PackageSpec PackageSpecMap::emplace(vcpkg::SourceControlFileLocation&& scfl) + { + auto spec = PackageSpec::from_name_and_triplet(scfl.source_control_file->core_paragraph->name, triplet); + REQUIRE(spec.has_value()); + map.emplace(scfl.source_control_file->core_paragraph->name, std::move(scfl)); + return PackageSpec{*spec.get()}; + } + PackageSpec unsafe_pspec(std::string name, Triplet t) { auto m_ret = PackageSpec::from_name_and_triplet(name, t); |
