diff options
| author | Billy O'Neal <bion@microsoft.com> | 2021-02-04 10:15:44 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-02-04 10:15:44 -0800 |
| commit | aa60b7efa56a83ead743718941d8b320ef4a05af (patch) | |
| tree | db9f9ebd6fa37598b2f5f2ad564eb858cdeddcb0 /toolsrc/include/vcpkg-test | |
| parent | f226416d2eafc495dd03572cb61542fb1670ffdc (diff) | |
| download | vcpkg-aa60b7efa56a83ead743718941d8b320ef4a05af.tar.gz vcpkg-aa60b7efa56a83ead743718941d8b320ef4a05af.zip | |
[vcpkg] Download vcpkg.exe rather than building it in bootstrap on Windows. (#15474)
This reduces bootstrap cost for Windows customers, resolving the issue initially submitted as #12502 .
The `toolsrc` tree was extracted to https://github.com/microsoft/vcpkg-tool. `bootstrap.sh` was changed to download the right source tarball, extract, and build it. This was chosen over the previous attempt, a submodule, over concerns of accidentally destroying people's local modifications.
Diffstat (limited to 'toolsrc/include/vcpkg-test')
| -rw-r--r-- | toolsrc/include/vcpkg-test/mockcmakevarprovider.h | 42 | ||||
| -rw-r--r-- | toolsrc/include/vcpkg-test/util.h | 132 |
2 files changed, 0 insertions, 174 deletions
diff --git a/toolsrc/include/vcpkg-test/mockcmakevarprovider.h b/toolsrc/include/vcpkg-test/mockcmakevarprovider.h deleted file mode 100644 index 6017457b6..000000000 --- a/toolsrc/include/vcpkg-test/mockcmakevarprovider.h +++ /dev/null @@ -1,42 +0,0 @@ -#pragma once - -#include <vcpkg/cmakevars.h> - -namespace vcpkg::Test -{ - struct MockCMakeVarProvider : CMakeVars::CMakeVarProvider - { - using SMap = std::unordered_map<std::string, std::string>; - void load_generic_triplet_vars(Triplet triplet) const override - { - generic_triplet_vars.emplace(triplet, SMap{}); - } - - void load_dep_info_vars(Span<const PackageSpec> specs) const override - { - for (auto&& spec : specs) - dep_info_vars.emplace(spec, SMap{}); - } - - void load_tag_vars(Span<const FullPackageSpec> specs, - const PortFileProvider::PortFileProvider& port_provider) const override - { - for (auto&& spec : specs) - tag_vars.emplace(spec.package_spec, SMap{}); - (void)(port_provider); - } - - Optional<const std::unordered_map<std::string, std::string>&> get_generic_triplet_vars( - 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 deleted file mode 100644 index 1e20531fc..000000000 --- a/toolsrc/include/vcpkg-test/util.h +++ /dev/null @@ -1,132 +0,0 @@ -#include <vcpkg/base/system_headers.h> - -#include <catch2/catch.hpp> - -#include <vcpkg/base/files.h> -#include <vcpkg/base/pragmas.h> - -#include <vcpkg/statusparagraph.h> - -#include <memory> - -#define CHECK_EC(ec) \ - do \ - { \ - if (ec) \ - { \ - FAIL(ec.message()); \ - } \ - } while (0) - -namespace Catch -{ - template<> - struct StringMaker<vcpkg::FullPackageSpec> - { - static std::string convert(vcpkg::FullPackageSpec const& value) - { - return vcpkg::Strings::concat(value.package_spec.name(), - '[', - vcpkg::Strings::join(",", value.features), - "]:", - value.package_spec.triplet()); - } - }; - - template<> - struct StringMaker<vcpkg::Triplet> - { - static const std::string& convert(const vcpkg::Triplet& triplet) { return triplet.canonical_name(); } - }; -} - -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 = {}); - - inline auto test_parse_control_file(const std::vector<std::unordered_map<std::string, std::string>>& v) - { - std::vector<vcpkg::Parse::Paragraph> pghs; - for (auto&& p : v) - { - pghs.emplace_back(); - for (auto&& kv : p) - pghs.back().emplace(kv.first, std::make_pair(kv.second, vcpkg::Parse::TextRowCol{})); - } - return vcpkg::SourceControlFile::parse_control_file("", std::move(pghs)); - } - - std::unique_ptr<vcpkg::StatusParagraph> make_status_pgh(const char* name, - const char* depends = "", - const char* default_features = "", - const char* triplet = "x86-windows"); - - std::unique_ptr<vcpkg::StatusParagraph> make_status_feature_pgh(const char* name, - const char* feature, - const char* depends = "", - const char* triplet = "x86-windows"); - - extern const Triplet X86_WINDOWS; - extern const Triplet X64_WINDOWS; - extern const Triplet X86_UWP; - extern const Triplet ARM_UWP; - extern const Triplet X64_ANDROID; - - /// <summary> - /// Map of source control files by their package name. - /// </summary> - struct PackageSpecMap - { - std::unordered_map<std::string, SourceControlFileLocation> map; - Triplet triplet; - PackageSpecMap(Triplet t = 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); - }; - - template<class T, class S> - T&& unwrap(vcpkg::ExpectedT<T, S>&& p) - { - REQUIRE(p.has_value()); - return std::move(*p.get()); - } - - template<class T> - T&& unwrap(vcpkg::Optional<T>&& opt) - { - REQUIRE(opt.has_value()); - return std::move(*opt.get()); - } - - struct AllowSymlinks - { - enum Tag : bool - { - No = false, - Yes = true, - } tag; - - constexpr AllowSymlinks(Tag tag) noexcept : tag(tag) { } - - constexpr explicit AllowSymlinks(bool b) noexcept : tag(b ? Yes : No) { } - - constexpr operator bool() const noexcept { return tag == Yes; } - }; - - AllowSymlinks can_create_symlinks() noexcept; - - const fs::path& base_temporary_directory() noexcept; - - void create_symlink(const fs::path& file, const fs::path& target, std::error_code& ec); - - void create_directory_symlink(const fs::path& file, const fs::path& target, std::error_code& ec); -} |
