diff options
Diffstat (limited to 'toolsrc/src/vcpkg-test/system.cpp')
| -rw-r--r-- | toolsrc/src/vcpkg-test/system.cpp | 149 |
1 files changed, 0 insertions, 149 deletions
diff --git a/toolsrc/src/vcpkg-test/system.cpp b/toolsrc/src/vcpkg-test/system.cpp deleted file mode 100644 index 4c8b533bc..000000000 --- a/toolsrc/src/vcpkg-test/system.cpp +++ /dev/null @@ -1,149 +0,0 @@ -#include <vcpkg/base/system_headers.h> - -#include <catch2/catch.hpp> - -#include <vcpkg/base/optional.h> -#include <vcpkg/base/strings.h> -#include <vcpkg/base/stringview.h> -#include <vcpkg/base/system.h> -#include <vcpkg/base/system.process.h> -#include <vcpkg/base/zstringview.h> - -#include <string> - -#if defined(_MSC_VER) -#pragma warning(disable : 6237) -#endif - -using vcpkg::nullopt; -using vcpkg::Optional; -using vcpkg::StringView; -using vcpkg::ZStringView; -using vcpkg::Checks::check_exit; -using vcpkg::System::CPUArchitecture; -using vcpkg::System::get_environment_variable; -using vcpkg::System::guess_visual_studio_prompt_target_architecture; -using vcpkg::System::set_environment_variable; -using vcpkg::System::to_cpu_architecture; - -namespace -{ - struct environment_variable_resetter - { - explicit environment_variable_resetter(ZStringView varname_) - : varname(varname_), old_value(get_environment_variable(varname)) - { - } - - ~environment_variable_resetter() { set_environment_variable(varname, old_value); } - - environment_variable_resetter(const environment_variable_resetter&) = delete; - environment_variable_resetter& operator=(const environment_variable_resetter&) = delete; - - private: - ZStringView varname; - Optional<std::string> old_value; - }; -} - -TEST_CASE ("[to_cpu_architecture]", "system") -{ - struct test_case - { - Optional<CPUArchitecture> expected; - StringView input; - }; - - const test_case test_cases[] = { - {CPUArchitecture::X86, "x86"}, - {CPUArchitecture::X86, "X86"}, - {CPUArchitecture::X64, "x64"}, - {CPUArchitecture::X64, "X64"}, - {CPUArchitecture::X64, "AmD64"}, - {CPUArchitecture::ARM, "ARM"}, - {CPUArchitecture::ARM64, "ARM64"}, - {nullopt, "ARM6"}, - {nullopt, "AR"}, - {nullopt, "Intel"}, - }; - - for (auto&& instance : test_cases) - { - CHECK(to_cpu_architecture(instance.input) == instance.expected); - } -} - -TEST_CASE ("from_cpu_architecture", "[system]") -{ - struct test_case - { - CPUArchitecture input; - ZStringView expected; - }; - - const test_case test_cases[] = { - {CPUArchitecture::X86, "x86"}, - {CPUArchitecture::X64, "x64"}, - {CPUArchitecture::ARM, "arm"}, - {CPUArchitecture::ARM64, "arm64"}, - }; - - for (auto&& instance : test_cases) - { - CHECK(to_zstring_view(instance.input) == instance.expected); - } -} - -TEST_CASE ("guess_visual_studio_prompt", "[system]") -{ - environment_variable_resetter reset_VSCMD_ARG_TGT_ARCH{"VSCMD_ARG_TGT_ARCH"}; - environment_variable_resetter reset_VCINSTALLDIR{"VCINSTALLDIR"}; - environment_variable_resetter reset_Platform{"Platform"}; - - set_environment_variable("Platform", "x86"); // ignored if VCINSTALLDIR unset - set_environment_variable("VCINSTALLDIR", nullopt); - set_environment_variable("VSCMD_ARG_TGT_ARCH", nullopt); - CHECK(!guess_visual_studio_prompt_target_architecture().has_value()); - set_environment_variable("VSCMD_ARG_TGT_ARCH", "x86"); - CHECK(guess_visual_studio_prompt_target_architecture().value_or_exit(VCPKG_LINE_INFO) == CPUArchitecture::X86); - set_environment_variable("VSCMD_ARG_TGT_ARCH", "x64"); - CHECK(guess_visual_studio_prompt_target_architecture().value_or_exit(VCPKG_LINE_INFO) == CPUArchitecture::X64); - set_environment_variable("VSCMD_ARG_TGT_ARCH", "arm"); - CHECK(guess_visual_studio_prompt_target_architecture().value_or_exit(VCPKG_LINE_INFO) == CPUArchitecture::ARM); - set_environment_variable("VSCMD_ARG_TGT_ARCH", "arm64"); - CHECK(guess_visual_studio_prompt_target_architecture().value_or_exit(VCPKG_LINE_INFO) == CPUArchitecture::ARM64); - - // check that apparent "nested" prompts defer to "vsdevcmd" - set_environment_variable("VCINSTALLDIR", "anything"); - CHECK(guess_visual_studio_prompt_target_architecture().value_or_exit(VCPKG_LINE_INFO) == CPUArchitecture::ARM64); - set_environment_variable("VSCMD_ARG_TGT_ARCH", nullopt); - set_environment_variable("Platform", nullopt); - CHECK(guess_visual_studio_prompt_target_architecture().value_or_exit(VCPKG_LINE_INFO) == CPUArchitecture::X86); - set_environment_variable("Platform", "x86"); - CHECK(guess_visual_studio_prompt_target_architecture().value_or_exit(VCPKG_LINE_INFO) == CPUArchitecture::X86); - set_environment_variable("Platform", "x64"); - CHECK(guess_visual_studio_prompt_target_architecture().value_or_exit(VCPKG_LINE_INFO) == CPUArchitecture::X64); -} - -TEST_CASE ("cmdlinebuilder", "[system]") -{ - using vcpkg::System::Command; - - Command cmd; - cmd.path_arg(fs::u8path("relative/path.exe")); - cmd.string_arg("abc"); - cmd.string_arg("hello world!"); - cmd.string_arg("|"); - cmd.string_arg(";"); - REQUIRE(cmd.command_line() == "relative/path.exe abc \"hello world!\" \"|\" \";\""); - - cmd.clear(); - - cmd.path_arg(fs::u8path("trailing\\slash\\")); - cmd.string_arg("inner\"quotes"); -#ifdef _WIN32 - REQUIRE(cmd.command_line() == "\"trailing\\slash\\\\\" \"inner\\\"quotes\""); -#else - REQUIRE(cmd.command_line() == "\"trailing\\\\slash\\\\\" \"inner\\\"quotes\""); -#endif -} |
