我剛剛開始使用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:好的,所以看起來我只是沒有足夠的模擬值排隊。