diff --git a/test/libsinsp_e2e/suppress_events.cpp b/test/libsinsp_e2e/suppress_events.cpp index 749282715d..3fc80d2acf 100644 --- a/test/libsinsp_e2e/suppress_events.cpp +++ b/test/libsinsp_e2e/suppress_events.cpp @@ -129,6 +129,8 @@ static void test_helper_quotactl(test_helper_args& hargs) ASSERT_GT(st.n_suppressed, 0u); ASSERT_EQ(0u, st.n_tids_suppressed); + + inspector->clear_suppress_events_comm(); }; ASSERT_NO_FATAL_FAILURE({ diff --git a/test/libsinsp_e2e/sys_call_test.cpp b/test/libsinsp_e2e/sys_call_test.cpp index fe829933a4..20a46aff3e 100644 --- a/test/libsinsp_e2e/sys_call_test.cpp +++ b/test/libsinsp_e2e/sys_call_test.cpp @@ -1007,6 +1007,11 @@ TEST_F(sys_call_test, getsetuid_and_gid) static const uint32_t test_gid = 6566; int callnum = 0; + uint32_t orig_uid = getuid(); + uint32_t orig_euid = geteuid(); + uint32_t orig_gid = getgid(); + uint32_t orig_egid = getegid(); + event_filter_t filter = [&](sinsp_evt* evt) { return m_tid_filter(evt); }; run_callback_t test = [&](concurrent_object_handle inspector_handle) @@ -1073,7 +1078,22 @@ TEST_F(sys_call_test, getsetuid_and_gid) break; } }; + ASSERT_NO_FATAL_FAILURE({ event_capture::run(test, callback, filter); }); + + // This has to be done without a callback otherwise the test will not + // work. + int result = 0; + result += setuid(orig_uid); + result += seteuid(orig_euid); + result += setgid(orig_gid); + result += setegid(orig_egid); + + if(result != 0) + { + FAIL() << "Cannot restore initial id state."; + } + EXPECT_EQ(12, callnum); } @@ -1416,7 +1436,7 @@ TEST_F(sys_call_test, poll_timeout) EXPECT_EQ(res, 1); - string fds = e->get_param_value_str("fds"); + std::string fds = e->get_param_value_str("fds"); EXPECT_TRUE(fds == "0:f0 1:f4" || fds == "0:p0 1:f4" || fds == "0:f0 1:p4" || fds == "0:p0 1:p4"); @@ -1488,6 +1508,12 @@ TEST_F(sys_call_test, getsetresuid_and_gid) uint32_t uids[3]; uint32_t gids[3]; + uint32_t orig_uids[3]; + uint32_t orig_gids[3]; + + //getresuid(&orig_uids[0], &orig_uids[1], &orig_uids[2]); + //getresgid(&orig_gids[0], &orig_gids[1], &orig_gids[2]); + // Clean environment int ret = system("userdel testsetresuid"); ret = system("groupdel testsetresgid"); @@ -1580,6 +1606,21 @@ TEST_F(sys_call_test, getsetresuid_and_gid) EXPECT_EQ("root", e->get_param_value_str("sgid")); } }; + + before_close_t cleanup = [&](sinsp* inspector) + { + int result = 0; + + result += setresuid(orig_uids[0], orig_uids[1], orig_uids[2]); + result += setresgid(orig_gids[0], orig_gids[1], orig_gids[2]); + + if(result != 0) + { + FAIL() << "Cannot restore initial id state."; + } + }; + + //ASSERT_NO_FATAL_FAILURE({ event_capture::run(test, callback, filter, event_capture::do_nothing, cleanup); }); ASSERT_NO_FATAL_FAILURE({ event_capture::run(test, callback, filter); }); EXPECT_EQ(8, callnum); }