From cf14d543437e56a8dd426583d61ea15b9df74ca4 Mon Sep 17 00:00:00 2001 From: Klemens Morgenstern Date: Tue, 12 Sep 2023 21:21:14 +0800 Subject: [PATCH] pid no-access workarounds. --- test/v2/pid.cpp | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/test/v2/pid.cpp b/test/v2/pid.cpp index 5cc53e9d..b49ae142 100644 --- a/test/v2/pid.cpp +++ b/test/v2/pid.cpp @@ -39,13 +39,18 @@ BOOST_AUTO_TEST_CASE(child_pid) bp2::process proc(ctx, pth, {"loop"}); std::this_thread::sleep_for(std::chrono::milliseconds(100)); auto c2 = bp2::child_pids(bp2::current_pid()); - BOOST_CHECK_LT(cs.size(), c2.size()); + BOOST_CHECK_LE(cs.size(), c2.size()); BOOST_CHECK(std::find(cs.begin(), cs.end(), proc.id()) == cs.end()); - BOOST_CHECK(std::find(c2.begin(), c2.end(), proc.id()) != c2.end()); - proc.terminate(); - proc.wait(); + if (!c2.empty()) + BOOST_CHECK(std::find(c2.begin(), c2.end(), proc.id()) != c2.end()); + boost::system::error_code ec; + proc.terminate(ec); + if (ec) + BOOST_CHECK(ec == boost::system::errc::permission_denied); + else + proc.wait(); auto c3 = bp2::child_pids(bp2::current_pid()); BOOST_CHECK(std::find(c3.begin(), c3.end(), proc.id()) == c3.end()); - BOOST_CHECK_LT(c3.size(), c2.size()); + BOOST_CHECK_LE(c3.size(), c2.size()); } \ No newline at end of file