aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/src/vcpkg-test/util.cpp
diff options
context:
space:
mode:
authorMikhaylov Anton <anion155@gmail.com>2020-02-04 13:40:15 +0500
committerMikhaylov Anton <anion155@gmail.com>2020-02-04 13:40:15 +0500
commitd56ed7ee7613e969a3f304b3377438cc5a9064d4 (patch)
treed352eee837443f070bbf5d6c5fdd9a6f22f4f8c2 /toolsrc/src/vcpkg-test/util.cpp
parentab5b74c797f5a2bd6b28915908355e2b32876dfa (diff)
parent85bf9d9d792e379e973d66c8af9f39d65d1d6d42 (diff)
downloadvcpkg-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.cpp42
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);