Я несколько новичок в TDD, хотя я использовал C в течение некоторого времени. В результате я использую ceedling для тестирования моего встроенного проекта.Ceedling как передать определяет CMock
Я могу rake test:all
в gcc, но теперь я пытаюсь переместить его во встроенный целевой симулятор. Я указываю свой кросс-компилятор, компоновщик и т. Д. Через файл project.yml.
Когда я rake test:all
, я получаю сообщение об ошибке при компиляции «cmock.c» (несколько других файлов, компилировать без проблем):
< path_to_cmock >/cmock.c:17:31: error: size of array 'CMock_Guts_Buffer' is too large
Есть другие ошибки после этого, но это тот, который бьет их выкл.
Когда я иду в cmock.c
, я вижу это в верхней части файла:
#ifdef CMOCK_MEM_DYNAMIC
static unsigned char* CMock_Guts_Buffer = NULL;
static CMOCK_MEM_INDEX_TYPE CMock_Guts_BufferSize = CMOCK_MEM_ALIGN_SIZE;
static CMOCK_MEM_INDEX_TYPE CMock_Guts_FreePtr;
#else
static unsigned char CMock_Guts_Buffer[CMOCK_MEM_SIZE + CMOCK_MEM_ALIGN_SIZE];
static CMOCK_MEM_INDEX_TYPE CMock_Guts_BufferSize = CMOCK_MEM_SIZE + CMOCK_MEM_ALIGN_SIZE;
static CMOCK_MEM_INDEX_TYPE CMock_Guts_FreePtr;
#endif
Совершенная, поэтому мне просто нужно найти, где они объявлены. Я выполняю текстовый поиск только для того, чтобы найти, что они не объявлены нигде ... поэтому я подозреваю, что они исходят из значений по умолчанию в ceedling.
Я нашел документацию для CMOCK и, в разделе «Опции» Составитель,
A number of #defines also exist for customizing the cmock experience...
Он выходит на список #defines, что я нашел в исходном коде, но не указывает, где найти их. Я попытался сделать файл include с соответствующими определениями и передать файл include через «project.yml» без везения.
Я подозреваю, что ответ невероятно прост, он просто не очерчен нигде, что я искал. Спасибо за ваше время,