From e51970e3bb38ced8a3209d93d0f4767b8d3c1042 Mon Sep 17 00:00:00 2001 From: Klemens Morgenstern Date: Tue, 3 Oct 2023 03:31:37 +0800 Subject: [PATCH] fixed windows interrupt & request_exit test. --- test/v2/process.cpp | 9 ++++++--- test/v2/target.cpp | 19 ++++++++----------- test/v2/windows.cpp | 13 ------------- 3 files changed, 14 insertions(+), 27 deletions(-) diff --git a/test/v2/process.cpp b/test/v2/process.cpp index 968edb35..c2e657e4 100644 --- a/test/v2/process.cpp +++ b/test/v2/process.cpp @@ -145,6 +145,7 @@ BOOST_AUTO_TEST_CASE(request_exit) bpv::process proc(ctx, pth, {"sigterm"} #if defined(BOOST_PROCESS_V2_WINDOWS) , bpv::windows::show_window_minimized_not_active + , bpv::windows::create_new_console #endif ); BOOST_CHECK(proc.running()); @@ -570,9 +571,10 @@ BOOST_AUTO_TEST_CASE(async_interrupt) using boost::unit_test::framework::master_test_suite; const auto pth = bpv::filesystem::absolute(master_test_suite().argv[1]); + bpv::process proc(ctx, pth, {"sigint"} #if defined(BOOST_PROCESS_V2_WINDOWS) - , bpv::windows::create_new_process_group + , bpv::windows::create_new_process_group #endif ); @@ -600,8 +602,9 @@ BOOST_AUTO_TEST_CASE(async_request_exit) const auto pth = bpv::filesystem::absolute(master_test_suite().argv[1]); bpv::process proc(ctx, pth, {"sigterm"} -#if defined(ASIO_WINDOWS) - , asio::windows::show_window_minimized_not_active +#if defined(BOOST_PROCESS_V2_WINDOWS) + , bpv::windows::show_window_minimized_not_active + , bpv::windows::create_new_console #endif ); diff --git a/test/v2/target.cpp b/test/v2/target.cpp index dc5479ff..db563363 100644 --- a/test/v2/target.cpp +++ b/test/v2/target.cpp @@ -72,12 +72,6 @@ int main(int argc, char * argv[]) GetStartupInfo(&si); return static_cast(si.wShowWindow); } - else if (mode == "creation-flags") - { - STARTUPINFO si; - GetStartupInfo(&si); - return static_cast(si.dwFlags); - } #endif else if (mode == "sigterm") { @@ -86,18 +80,20 @@ int main(int argc, char * argv[]) static boost::asio::steady_timer * tim_p = &tim; #if defined(BOOST_PROCESS_V2_WINDOWS) - BOOST_ASSERT(SetConsoleCtrlHandler( + SetConsoleCtrlHandler( [](DWORD kind) { if (kind == CTRL_CLOSE_EVENT) { + // windows doesn't like us doing antyhing else + ::exit(0); if (tim_p != nullptr) tim_p->cancel(); return TRUE; } else return FALSE; - }, TRUE) != 0); + }, TRUE); #else signal(SIGTERM, [](int) { if (tim_p != nullptr) tim_p->cancel();}); #endif @@ -115,8 +111,8 @@ int main(int argc, char * argv[]) static boost::asio::steady_timer * tim_p = &tim; #if defined(BOOST_PROCESS_V2_WINDOWS) - BOOST_ASSERT( - SetConsoleCtrlHandler( + SetConsoleCtrlHandler(NULL, FALSE); + auto res = SetConsoleCtrlHandler( [](DWORD kind) { if (kind == CTRL_C_EVENT) @@ -127,7 +123,8 @@ int main(int argc, char * argv[]) } else return FALSE; - }, TRUE) != 0); + }, TRUE); + BOOST_ASSERT(res != FALSE); #else signal(SIGINT, [](int) { if (tim_p != nullptr) tim_p->cancel();}); #endif diff --git a/test/v2/windows.cpp b/test/v2/windows.cpp index c61d649b..b58cb598 100644 --- a/test/v2/windows.cpp +++ b/test/v2/windows.cpp @@ -50,19 +50,6 @@ BOOST_AUTO_TEST_CASE(show_window) } -BOOST_AUTO_TEST_CASE(creation_flags) -{ - using boost::unit_test::framework::master_test_suite; - const auto pth = master_test_suite().argv[1]; - asio::io_context ctx; - bpv::process proc{ctx, pth, {"creation-flags"}}; - - BOOST_CHECK_EQUAL(proc.wait() & ~EXTENDED_STARTUPINFO_PRESENT, 0); - - proc = bpv::process{ctx, master_test_suite().argv[1], {"creation-flags"}, bpv::windows::process_creation_flags()}; - BOOST_CHECK(proc.running()); - BOOST_CHECK_EQUAL(proc.wait() & ~EXTENDED_STARTUPINFO_PRESENT, STARTF_TITLEISAPPID); -} BOOST_AUTO_TEST_CASE(as_user_launcher) {