diff options
| author | ras0219 <533828+ras0219@users.noreply.github.com> | 2020-12-15 10:26:00 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-12-15 10:26:00 -0800 |
| commit | 815396fa4e9e99da7af7d8454859f6247af1ef81 (patch) | |
| tree | 44bf8846dbc971bf758e58e146349c1f9ee11cd4 /toolsrc/src | |
| parent | 2aaa67573085c24bcb4e224b87605d708d9a6377 (diff) | |
| download | vcpkg-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.cpp | 4 | ||||
| -rw-r--r-- | toolsrc/src/vcpkg-test/commands.create.cpp | 27 | ||||
| -rw-r--r-- | toolsrc/src/vcpkg/commands.create.cpp | 6 | ||||
| -rw-r--r-- | toolsrc/src/vcpkg/vcpkgcmdarguments.cpp | 2 | ||||
| -rw-r--r-- | toolsrc/src/vcpkg/vcpkgpaths.cpp | 2 |
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) |
