aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/src
diff options
context:
space:
mode:
authorras0219 <533828+ras0219@users.noreply.github.com>2020-12-15 10:26:00 -0800
committerGitHub <noreply@github.com>2020-12-15 10:26:00 -0800
commit815396fa4e9e99da7af7d8454859f6247af1ef81 (patch)
tree44bf8846dbc971bf758e58e146349c1f9ee11cd4 /toolsrc/src
parent2aaa67573085c24bcb4e224b87605d708d9a6377 (diff)
downloadvcpkg-815396fa4e9e99da7af7d8454859f6247af1ef81.tar.gz
vcpkg-815396fa4e9e99da7af7d8454859f6247af1ef81.zip
[vcpkg] Refactor end-to-end tests (#15081)
* [vcpkg] Refactor end-to-end tests * [vcpkg] Cherry-pick x-builtin-ports-root from #14999 * [vcpkg] Move create test from unit tests to e2e Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
Diffstat (limited to 'toolsrc/src')
-rw-r--r--toolsrc/src/vcpkg-test/arguments.cpp4
-rw-r--r--toolsrc/src/vcpkg-test/commands.create.cpp27
-rw-r--r--toolsrc/src/vcpkg/commands.create.cpp6
-rw-r--r--toolsrc/src/vcpkg/vcpkgcmdarguments.cpp2
-rw-r--r--toolsrc/src/vcpkg/vcpkgpaths.cpp2
5 files changed, 13 insertions, 28 deletions
diff --git a/toolsrc/src/vcpkg-test/arguments.cpp b/toolsrc/src/vcpkg-test/arguments.cpp
index 00a1beb81..f5cbf7b15 100644
--- a/toolsrc/src/vcpkg-test/arguments.cpp
+++ b/toolsrc/src/vcpkg-test/arguments.cpp
@@ -14,6 +14,7 @@ TEST_CASE ("VcpkgCmdArguments from lowercase argument sequence", "[arguments]")
std::vector<std::string> t = {"--vcpkg-root",
"C:\\vcpkg",
"--x-scripts-root=C:\\scripts",
+ "--x-builtin-ports-root=C:\\ports",
"--debug",
"--sendmetrics",
"--printmetrics",
@@ -25,6 +26,7 @@ TEST_CASE ("VcpkgCmdArguments from lowercase argument sequence", "[arguments]")
REQUIRE(*v.vcpkg_root_dir == "C:\\vcpkg");
REQUIRE(*v.scripts_root_dir == "C:\\scripts");
+ REQUIRE(*v.builtin_ports_root_dir == "C:\\ports");
REQUIRE(v.debug);
REQUIRE(*v.debug.get());
REQUIRE(v.send_metrics);
@@ -46,6 +48,7 @@ TEST_CASE ("VcpkgCmdArguments from uppercase argument sequence", "[arguments]")
std::vector<std::string> t = {"--VCPKG-ROOT",
"C:\\vcpkg",
"--X-SCRIPTS-ROOT=C:\\scripts",
+ "--X-BUILTIN-PORTS-ROOT=C:\\ports",
"--DEBUG",
"--SENDMETRICS",
"--PRINTMETRICS",
@@ -57,6 +60,7 @@ TEST_CASE ("VcpkgCmdArguments from uppercase argument sequence", "[arguments]")
REQUIRE(*v.vcpkg_root_dir == "C:\\vcpkg");
REQUIRE(*v.scripts_root_dir == "C:\\scripts");
+ REQUIRE(*v.builtin_ports_root_dir == "C:\\ports");
REQUIRE(v.debug);
REQUIRE(*v.debug.get());
REQUIRE(v.send_metrics);
diff --git a/toolsrc/src/vcpkg-test/commands.create.cpp b/toolsrc/src/vcpkg-test/commands.create.cpp
deleted file mode 100644
index 8b8dfa230..000000000
--- a/toolsrc/src/vcpkg-test/commands.create.cpp
+++ /dev/null
@@ -1,27 +0,0 @@
-#include <catch2/catch.hpp>
-
-#include <vcpkg/base/files.h>
-
-#include <vcpkg/commands.create.h>
-#include <vcpkg/vcpkgcmdarguments.h>
-#include <vcpkg/vcpkgpaths.h>
-
-#include <iterator>
-#include <string>
-
-TEST_CASE ("create smoke test", "[commands-create]")
-{
- using namespace vcpkg;
- static const std::string argsRaw[] = {"create", "zlib2", "http://zlib.net/zlib-1.2.11.tar.gz", "zlib-1.2.11.zip"};
-
- auto& fsWrapper = Files::get_real_filesystem();
- VcpkgCmdArguments args = VcpkgCmdArguments::create_from_arg_sequence(std::begin(argsRaw), std::end(argsRaw));
- VcpkgPaths paths(fsWrapper, args);
- const auto exit_code = Commands::Create::perform(args, paths);
- REQUIRE(exit_code == 0);
- const auto expected_port = paths.builtin_ports_directory() / fs::u8path("zlib2");
- const auto expected_portfile_cmake = expected_port / fs::u8path("portfile.cmake");
- const auto lines = fsWrapper.read_lines(expected_portfile_cmake);
- REQUIRE(lines.has_value());
- fsWrapper.remove_all(expected_port, ignore_errors);
-}
diff --git a/toolsrc/src/vcpkg/commands.create.cpp b/toolsrc/src/vcpkg/commands.create.cpp
index c3268bd5e..28f0377c5 100644
--- a/toolsrc/src/vcpkg/commands.create.cpp
+++ b/toolsrc/src/vcpkg/commands.create.cpp
@@ -34,7 +34,11 @@ namespace vcpkg::Commands::Create
const std::string port_name = args.command_arguments.at(0);
const std::string url = remove_trailing_slashes(args.command_arguments.at(1));
- std::vector<System::CMakeVariable> cmake_args{{"CMD", "CREATE"}, {"PORT", port_name}, {"URL", url}};
+ std::vector<System::CMakeVariable> cmake_args{
+ {"CMD", "CREATE"},
+ {"PORT", port_name},
+ {"URL", url},
+ {"PORT_PATH", fs::generic_u8string(paths.builtin_ports_directory() / fs::u8path(port_name))}};
if (args.command_arguments.size() >= 3)
{
diff --git a/toolsrc/src/vcpkg/vcpkgcmdarguments.cpp b/toolsrc/src/vcpkg/vcpkgcmdarguments.cpp
index c311d28e9..5b25b32d8 100644
--- a/toolsrc/src/vcpkg/vcpkgcmdarguments.cpp
+++ b/toolsrc/src/vcpkg/vcpkgcmdarguments.cpp
@@ -276,6 +276,7 @@ namespace vcpkg
{INSTALL_ROOT_DIR_ARG, &VcpkgCmdArguments::install_root_dir},
{PACKAGES_ROOT_DIR_ARG, &VcpkgCmdArguments::packages_root_dir},
{SCRIPTS_ROOT_DIR_ARG, &VcpkgCmdArguments::scripts_root_dir},
+ {BUILTIN_PORTS_ROOT_DIR_ARG, &VcpkgCmdArguments::builtin_ports_root_dir},
};
constexpr static std::pair<StringView, std::vector<std::string> VcpkgCmdArguments::*>
@@ -913,6 +914,7 @@ namespace vcpkg
constexpr StringLiteral VcpkgCmdArguments::INSTALL_ROOT_DIR_ARG;
constexpr StringLiteral VcpkgCmdArguments::PACKAGES_ROOT_DIR_ARG;
constexpr StringLiteral VcpkgCmdArguments::SCRIPTS_ROOT_DIR_ARG;
+ constexpr StringLiteral VcpkgCmdArguments::BUILTIN_PORTS_ROOT_DIR_ARG;
constexpr StringLiteral VcpkgCmdArguments::DEFAULT_VISUAL_STUDIO_PATH_ENV;
diff --git a/toolsrc/src/vcpkg/vcpkgpaths.cpp b/toolsrc/src/vcpkg/vcpkgpaths.cpp
index 869605ed5..5c7e6a77e 100644
--- a/toolsrc/src/vcpkg/vcpkgpaths.cpp
+++ b/toolsrc/src/vcpkg/vcpkgpaths.cpp
@@ -340,6 +340,8 @@ If you wish to silence this error and use classic mode, you can:
packages =
process_output_directory(filesystem, root, args.packages_root_dir.get(), "packages", VCPKG_LINE_INFO);
scripts = process_input_directory(filesystem, root, args.scripts_root_dir.get(), "scripts", VCPKG_LINE_INFO);
+ builtin_ports =
+ process_output_directory(filesystem, root, args.builtin_ports_root_dir.get(), "ports", VCPKG_LINE_INFO);
prefab = root / fs::u8path("prefab");
if (args.default_visual_studio_path)