Recentemente, ho bisogno di aggiungere test di unità a un programma legacy.Test di unità sul programma che ha un sacco di macro
Ma in esso, ci sono un sacco di macro, come
#ifdef CONFIG_XXX
do xxx
#endif
#ifdef CONFIG_YYY
do yyy
#endif
Attualmente, il percorso del programma generico sono coperti da unit test. Quindi, voglio aggiungere test per coprire le parti macro interne (percorso del programma diverso).
Sembra che ho bisogno di compilare ed eseguire il mio programma con determinati macro ogni volta, e come progettare la composizione di macro per coprire il percorso del programma e ridurre i tempi di compilazione non è davvero facile.
Quindi, ho intenzione di spostare tutto il codice relativo all'hardware nella cartella arch, ora i macro sono stati spostati da file c a makefile, ma devono comunque essere compilati con determinati macro ogni volta per far funzionare UT.
Qualcuno ha esperienze su questo problema prima?
Grazie per i vostri commenti.
Potresti prendere in considerazione la sostituzione di ogni macro con un 'if (config.XXX)'? In questo modo, elimini la necessità di ricompilare. –
Non posso, dal momento che la differenza di macro e se la dichiarazione. –
Ciò che intendo è, refactoring del codice per prendere una struttura 'config' come input. Questa struct potrebbe avere un set di variabili flag, ognuna corrispondente a una delle tue macro. –