From 7fb0a311f3bfee5299a9bcd6297badc1ed8a2ed4 Mon Sep 17 00:00:00 2001 From: WangWeiLin-MV <156736127+WangWeiLin-MV@users.noreply.github.com> Date: Wed, 11 Sep 2024 19:26:36 +0800 Subject: [PATCH] Add test cases of system.process.cpp closes-exit-minus-one --- src/vcpkg-test/system.process.cpp | 32 +++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/src/vcpkg-test/system.process.cpp b/src/vcpkg-test/system.process.cpp index f2b031df36..b74b7b3f20 100644 --- a/src/vcpkg-test/system.process.cpp +++ b/src/vcpkg-test/system.process.cpp @@ -41,6 +41,38 @@ TEST_CASE ("captures-output", "[system.process]") REQUIRE(run.output == expected); } +TEST_CASE ("closes-exit-minus-one cmd_execute", "[system.process]") +{ + auto test_program = Path(get_exe_path_of_current_process().parent_path()) / "closes-exit-minus-one"; + ProcessLaunchSettings settings; + auto return_value = cmd_execute(Command{test_program}, settings).value_or_exit(VCPKG_LINE_INFO); +#ifdef _WIN32 + REQUIRE(return_value == 0xFFFFFFFFul); +#else // ^^^ _WIN32 / !_WIN32 vvv + if (WIFEXITED(return_value)) + { + REQUIRE(WEXITSTATUS(return_value) == 0x000000FFul); + } + else + { + FAIL(); + } +#endif // ^^^ _WIN32 +} + +TEST_CASE ("closes-exit-minus-one cmd_execute_and_capture_output", "[system.process]") +{ + auto test_program = Path(get_exe_path_of_current_process().parent_path()) / "closes-exit-minus-one"; + RedirectedProcessLaunchSettings settings; + settings.stdin_content = "this is some input that will be intentionally not read"; + auto run = cmd_execute_and_capture_output(Command{test_program}, settings).value_or_exit(VCPKG_LINE_INFO); +#ifdef _WIN32 + REQUIRE(run.exit_code == 0xFFFFFFFFul); +#else // ^^^ _WIN32 / !_WIN32 vvv + REQUIRE(run.exit_code == 0x000000FFul); +#endif // ^^^ _WIN32 +} + TEST_CASE ("no closes-stdin crash", "[system.process]") { auto test_program = Path(get_exe_path_of_current_process().parent_path()) / "closes-stdin";