在Google Test

时间:2018-08-14 08:35:35

标签: c++ googletest

我需要检测程序终止。我有这样的(简化)代码:

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检测到退出进程?

0 个答案:

没有答案