Je commence juste avec Cmocka, je suis bloqué sur ce problème depuis un moment maintenant. J'ai un projet cmocka que j'essaye de construire. Je vois l'erreur quand j'essaie d'utiliser 'make'.Cmocka - Erreur: Non Entrées pour le symbole
[ ERROR ] --- No entries for symbol __wrap_i2c_read.
Aussi je vois une erreur dans le fichier mock_i2c.c à la ligne où j'appelle mock()
Could not get value to mock function __wrap_i2c_read.
En ce moment je suis juste essayer de se moquer d'une valeur vrai/faux pour obtenir ça marche. Donc, mes regards simulacres comme
bool __wrap_i2c_read(void)
{
return (mock());
}
j'ai vérifié dans mon test, je vous appelle will_return(__wrap_i2c_read, true);
Dans mon Makefile je LDFLAGS += -Wl,--wrap=i2c_read
Je cmocka.h
inclus dans le fichier mock_i2c.c.
Cela ne semble pas être un problème spécifique pour cette fonction de simulation, car si je ne l'utilise pas, j'obtiens la même erreur pour les autres fonctions fictives de ce fichier. Je ne suis pas sûr de ce que d'autres informations sont nécessaires, s'il vous plaît faites le moi savoir. Quelqu'un sait ce que cela signifie/vu cela avant?
Merci.
Edit: Donc je pense avoir compris pourquoi je reçois cette erreur. J'ai une boucle for
dans la fonction que je suis en train de tester. Les fonctions simulées sont appelées depuis cette fonction. Une fois que j'ai supprimé la boucle, l'erreur disparaît. Est-ce que cela a quelque chose à voir avec comment/quand le will_return
met en file d'attente les valeurs fictives? Et la boucle for
est dans le chemin? Edit2: Ok, donc il semble que je ne faisais pas assez de files d'attente.