我正在使用谷歌测试框架拧紧单元测试用例以验证一个C库函数。 示例代码:
TEST_P(xyzTestCase, xyzfunc)
{
int a = xyz(2);
.....
......
EXPECT_GT(a, 1);
}
库函数xyz有一些print语句,我无法删除。无论何时,我正在运行此测试,它将按预期打印这些语句。
我在函数调用xyz()之后添加了以下代码:
char buff[100000];
memset( buff, '\0', sizeof(buff));
setvbuf(stdout, buff, _IOFBF, sizeof(buff)-1);
fflush(stdout);
添加这些代码后,除第一次运行外,输出被抑制。这是参数化测试并且多次运行。第一次,输出被抑制后显示输出。
任何人都可以建议我这是什么原因?为什么第一次不抑制输出?请建议。