/********************************************************************************** * * * NOME PROGRAMMA: auto_test.c * * AUTORE: Buttolo Marco * * SCOPO: effettuare un semplicissimo test di verifica sul minore tra * * due numeri, in versione automatica. * * * **********************************************************************************/ #include <stdio.h> //direttive al preprocessore #include <string.h> #include <stdlib.h> #include <CUnit/CUnit.h> #include <CUnit/Basic.h> #include <CUnit/Console.h> #include <CUnit/Automated.h> #include <CUnit/CUCurses.h> //prototipi di funzione int compara(int, int); void auto_test(void); void stampa_risultato(int); int inizializza_suite_successo(void); int inizializza_suite_fallimento(void); //entry point programma int main() { CU_pSuite pSuite = NULL; int numero1=2, numero2=4, risultato; //chiamata funzione somma risultato=compara(numero1, numero2); system("clear"); //inizializzazione registro di test if (CUE_SUCCESS != CU_initialize_registry()) return CU_get_error(); //ritorna errore in caso di fallimento //aggiunta suite a registro pSuite = CU_add_suite("Suite_success", inizializza_suite_successo, inizializza_suite_fallimento); if (NULL == pSuite) { CU_cleanup_registry(); return CU_get_error(); } //aggiunta test alla suite if (NULL == CU_add_test(pSuite, "auto_test_1", auto_test)) { CU_cleanup_registry(); return CU_get_error(); } //avvio dei test CU_basic_set_mode(CU_BRM_VERBOSE); CU_basic_run_tests(); printf("\n"); CU_basic_show_failures(CU_get_failure_list()); printf("\n\n"); //stampa risultato if(risultato==0) { stampa_risultato(risultato); CU_PASS("Attenzione: risultato nullo!!!"); } else { CU_FAIL("Stampa corretta risultato"); } //avvia test usando interfaccia automatica CU_automated_run_tests(); //CU_list_tests_to_file(); //pulizia registro CU_cleanup_registry(); return CU_get_error(); } /*************************************************************************** * * * NOME FUNZIONE: inizializza_suite_successo() * * SCOPO: funzione di inizializzazione suite in caso di successo. * * * ***************************************************************************/ int inizializza_suite_successo(void) { return 0; } /*************************************************************************** * * * NOME FUNZIONE: inizializza_suite_fallimento() * * SCOPO: funzione di inizializzazione suite in caso di fail. * * * ***************************************************************************/ int inizializza_suite_fallimento(void) { return -1; } /************************************************************************** * * * NOME FUNZIONE: compara(). * * SCOPO: funzione che effettua una semplice comparazione tra * * due numeri * * * **************************************************************************/ int compara(int num1, int num2) { return (num1 < num2) ? num1:num2; } /************************************************************************** * * * NOME FUNZIONE: stampa_risultato() * * SCOPO: funzione che stampa a video il risultato della comp. * * * **************************************************************************/ void stampa_risultato(int risultato) { printf("\n Risultato=%d", risultato); } /*************************************************************************** * * * NOME FUNZIONE: test_compara(). * * SCOPO: effettua una serie di asserzioni di test. * * * ***************************************************************************/ void auto_test(void) { CU_ASSERT(compara(1,2) == 1); CU_ASSERT(compara(3,-2) == -2); CU_ASSERT(compara(2,2) == 2); }