我有一个要求,我需要使用 GTest/GMock 模拟一个非虚拟函数。因此,我已经包装了该函数并将其链接到测试套件“tst_def”文件中。对于包装函数,一个整数通过引用传递,当我将包装函数内的任何值设置为该整数时,测试套件在执行期间“因内存损坏而崩溃”(分段错误)。
重要观察:
当我在包装函数中为该整数设置与创建期间分配的相同默认值时,不会发生此崩溃,但仅当我分配任何其他值时才会崩溃。
编辑:
考虑一下,传递给这个包装函数的 value1 的初始值为 0。
extern "C" {
int __wrap_function(int &value1)
{
value1 = 3; //crashes
value1 = 0; //didnt crash
return 0;
}
}