在谷歌测试框架中禁止库文件的输出

时间:2015-09-23 10:50:25

标签: c unit-testing googletest

我正在使用谷歌测试框架拧紧单元测试用例以验证一个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);  

添加这些代码后,除第一次运行外,输出被抑制。这是参数化测试并且多次运行。第一次,输出被抑制后显示输出。

任何人都可以建议我这是什么原因?为什么第一次不抑制输出?请建议。

0 个答案:

没有答案