Test unitairesLorsque l'on programme en langage C vient inévitablement la question de la mise en place des tests unitaires. Bien qu'il existe de nombreux frameworks permettant de les gérer convenablement, le plus simple de mon point de vue consiste à utiliser la macro assert prédéfinie dans le fichier d'entête <assert.h> et de la forcer à utiliser le mode déboggage.

Pour rappel, cette macro prend en argument un test à réaliser et sort du programme avec un code d'erreur si le test est infructueux. Si la macro NDEBUG est définie, la macro assert est remplacée par une opération vide.

L'astuce consiste donc à écrire les programmes de tests en utilisant le squelette suivant:

#include <stdlib.h>

// Suppress the NDEBUG macro if defined and include <assert.h> after that
#ifdef NDEBUG
#undef NDEBUG
#endif
#include <assert.h>

int main()
{
    assert(/* some test */);
    return EXIT_SUCCESS;
}