Ich bin etwas neu zu TDD, obwohl ich C für einige Zeit verwendet habe. Als Ergebnis verwende ich Ceedling, um mein eingebettetes Projekt zu testen.Ceedling, wie man definiert, zu CMock
Ich kann rake test:all
in gcc, aber ich versuche jetzt, das zu einem eingebetteten Zielsimulator zu bewegen. Ich spezifiziere meinen Cross-Compiler, Linker usw. durch die Datei 'project.yml'.
Als ich rake test:all
, erhalte ich einen Fehler, wenn „Kompilieren cmock.c“ (mehrere andere Dateien problemlos kompilieren):
< path_to_cmock >/cmock.c:17:31: error: size of array 'CMock_Guts_Buffer' is too large
Es gibt andere Fehler nach diesem, aber das ist derjenige, der sie schlägt aus.
Wenn ich auf cmock.c
, sehe ich am Anfang der Datei:
#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
Perfect, so brauche ich nur, wenn erklärt zu finden. Ich mache nur eine Textsuche, um festzustellen, dass sie nirgends deklariert sind ... also vermute ich, dass sie von den Standardwerten innerhalb von ceedling kommen.
fand ich die Dokumentation für CMOCK und unter „Compiled Optionen“,
A number of #defines also exist for customizing the cmock experience...
es auf die #defines zur Liste geht, die ich im Quellcode gefunden habe, aber es gibt nicht an, wo zu finden Sie. Ich habe versucht, eine Include-Datei mit den entsprechenden Definitionen zu erstellen und die Include-Datei ohne Erfolg durch 'project.yml' zu übergeben.
Ich vermute, dass die Antwort unglaublich einfach ist, es ist einfach nirgendwo umrissen, dass ich gesucht habe. Vielen Dank für Ihre Zeit,