我刚刚开始使用Cmocka,我一直在这个问题上停留了一段时间。我有一个我正在尝试构建的cmocka项目。我在尝试使用'make'时看到错误。Cmocka - 错误:符号没有条目
[ ERROR ] --- No entries for symbol __wrap_i2c_read.
而且我看到在mock_i2c.c文件中的错误,在这里我呼吁mock()
Could not get value to mock function __wrap_i2c_read.
现在我只是想嘲笑真/假值获得行它工作。所以我假装貌似
bool __wrap_i2c_read(void)
{
return (mock());
}
我检查了在我的测试我打电话will_return(__wrap_i2c_read, true);
在我的Makefile我有LDFLAGS += -Wl,--wrap=i2c_read
我cmocka.h
列入mock_i2c.c文件。
这似乎不是一个专门针对这个模拟函数的问题,因为如果我不使用它,我会得到该文件中其他模拟函数的相同错误。 我不确定需要其他信息,请让我知道。任何人都知道这意味着什么/看到这之前?
谢谢。
编辑:所以我想我已经找出了为什么我得到这个错误。我正在测试的函数中有一个for
循环。模拟函数从这个函数中被调用。一旦我删除循环,错误消失。这可能与will_return
如何排队模拟值有关?并且for
循环正在妨碍?
编辑2:好的,所以看起来我只是没有足够的模拟值排队。