diff options
| author | Robert Schumacher <roschuma@microsoft.com> | 2020-02-04 15:50:10 -0800 |
|---|---|---|
| committer | Robert Schumacher <roschuma@microsoft.com> | 2020-02-04 15:50:10 -0800 |
| commit | 6f66ad14fe9da11d4bf50f5b25b4da86ed971c53 (patch) | |
| tree | 0f5dbcd1719cd6a8e486c4058cfefd607d58aa6c /toolsrc/include/vcpkg-test | |
| parent | d502f061bb3ee0258d6453acbf258b9e5d93d564 (diff) | |
| parent | d808514c9df44bb97d6eccff952bfe8ec4e156f7 (diff) | |
| download | vcpkg-6f66ad14fe9da11d4bf50f5b25b4da86ed971c53.tar.gz vcpkg-6f66ad14fe9da11d4bf50f5b25b4da86ed971c53.zip | |
Merge remote-tracking branch 'origin/master' into HEAD
Diffstat (limited to 'toolsrc/include/vcpkg-test')
| -rw-r--r-- | toolsrc/include/vcpkg-test/mockcmakevarprovider.h | 38 | ||||
| -rw-r--r-- | toolsrc/include/vcpkg-test/util.h | 23 |
2 files changed, 61 insertions, 0 deletions
diff --git a/toolsrc/include/vcpkg-test/mockcmakevarprovider.h b/toolsrc/include/vcpkg-test/mockcmakevarprovider.h new file mode 100644 index 000000000..03defdcdd --- /dev/null +++ b/toolsrc/include/vcpkg-test/mockcmakevarprovider.h @@ -0,0 +1,38 @@ +#pragma once
+
+#include <vcpkg/cmakevars.h>
+
+namespace vcpkg::Test
+{
+ struct MockCMakeVarProvider : CMakeVars::CMakeVarProvider
+ {
+ void load_generic_triplet_vars(const Triplet& triplet) const override { generic_triplet_vars[triplet] = {}; }
+
+ void load_dep_info_vars(Span<const PackageSpec> specs) const override
+ {
+ for (auto&& spec : specs)
+ dep_info_vars[spec] = {};
+ }
+
+ void load_tag_vars(Span<const FullPackageSpec> specs,
+ const PortFileProvider::PortFileProvider& port_provider) const override
+ {
+ for (auto&& spec : specs)
+ tag_vars[spec.package_spec] = {};
+ Util::unused(port_provider);
+ }
+
+ Optional<const std::unordered_map<std::string, std::string>&> get_generic_triplet_vars(
+ const Triplet& triplet) const override;
+
+ Optional<const std::unordered_map<std::string, std::string>&> get_dep_info_vars(
+ const PackageSpec& spec) const override;
+
+ Optional<const std::unordered_map<std::string, std::string>&> get_tag_vars(
+ const PackageSpec& spec) const override;
+
+ mutable std::unordered_map<PackageSpec, std::unordered_map<std::string, std::string>> dep_info_vars;
+ mutable std::unordered_map<PackageSpec, std::unordered_map<std::string, std::string>> tag_vars;
+ mutable std::unordered_map<Triplet, std::unordered_map<std::string, std::string>> generic_triplet_vars;
+ };
+}
diff --git a/toolsrc/include/vcpkg-test/util.h b/toolsrc/include/vcpkg-test/util.h index 259b0ba7e..088a39b7d 100644 --- a/toolsrc/include/vcpkg-test/util.h +++ b/toolsrc/include/vcpkg-test/util.h @@ -17,6 +17,12 @@ 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 = {}); + std::unique_ptr<vcpkg::StatusParagraph> make_status_pgh(const char* name, const char* depends = "", const char* default_features = "", @@ -27,6 +33,23 @@ namespace vcpkg::Test const char* depends = "", const char* triplet = "x86-windows"); + /// <summary> + /// Map of source control files by their package name. + /// </summary> + struct PackageSpecMap + { + std::unordered_map<std::string, SourceControlFileLocation> map; + Triplet triplet; + PackageSpecMap(const Triplet& t = Triplet::X86_WINDOWS) noexcept : triplet(t) {} + + PackageSpec emplace(const char* name, + const char* depends = "", + const std::vector<std::pair<const char*, const char*>>& features = {}, + const std::vector<const char*>& default_features = {}); + + PackageSpec emplace(vcpkg::SourceControlFileLocation&& scfl); + }; + vcpkg::PackageSpec unsafe_pspec(std::string name, vcpkg::Triplet t = vcpkg::Triplet::X86_WINDOWS); template<class T, class S> |
