我需要检测程序终止。我有这样的(简化)代码:
void waitForSignal()
{
sigset_t set;
sigemptyset(&set);
sigaddset(&set, SIGTERM);
pthread_sigmask(SIG_BLOCK, &set, nullptr);
std::thread([=] {
int signum;
sigwait(&set, &signum);
exit(0);
}).detach();
}
int main()
{
waitForSignal();
/* Some looped code goes here */
}
我的测试用例如下:
TEST(mainTest, sigKill)
{
main();
kill(getpid(), SIGTERM);
}
我尝试使用Google测试中的Death断言(EXPECT_EXIT),但没有成功,在这种情况下,是否可以使用gtest检测到退出进程?