我正在使用谷歌测试,我希望代码会失败。作为此失败的一部分,代码调用自定义断言宏,其中包含std::abort()
.
不幸的是,谷歌测试的EXPECT_EXIT()
并没有"抓住"std::abort()
。
这是一个自包含的示例,用于模拟我想要实现的目标:
// A placeholder for my assert macro
void MyFunction()
{
std::abort();
}
TEST(TestGroup1, TestName)
{
EXPECT_EXIT(MyFunction(), ::testing::ExitedWithCode(SIGABRT), ".*");
}
我得到这个失败输出:
Death test: MyFunction()
Result: died but not with expected exit code:
Terminated by signal 6 (core dumped)
Actual msg:
[ DEATH ]
这有可能实现吗?
我需要使用::testing::KilledBySignal(SIGABRT)