Autotools richiamo automatico del lcov dopo il 'make check'
Domanda
I aver messo in funzione un autotools progetto in cui le prove compilazioni con strumentazione modo da poter ottenere un rapporto di copertura di test.
posso ottenere il report eseguendo lcov nella directory di origine dopo un successo 'make check'.
I ora ad affrontare il problema che voglio automatizzare questo passo. Vorrei aggiungere che questo 'make check' o per fare un obiettivo 'make check-copertura' separata. Idealmente vorrei analizzare il risultato e non riuscire se la copertura scende al di sotto di una certa percentuale. Il problema è che io non riesco a capire come aggiungere un target personalizzato a tutti.
Il più vicino ho avuto era trovare questo esempio autotools config, ma non riesco a vedere dove in quel progetto si aggiunge la meta 'make lcov'. Posso solo vedere alcune bandiere di configurazione in m4 / auxdevel.m4.
Qualche consiglio?
Soluzione
È possibile aggiungere a quanto pare solo misure supplementari per obiettivi nella vostra Makefile.am, questo è quello che ho finito con (ispirato #http: //www.enlightenment.org/svn/e/trunk/ewl/Makefile.am ):
#http://www.enlightenment.org/svn/e/trunk/ewl/Makefile.am
if ENABLE_COV
cov-reset:
@rm -fr coverage
@find . -name "*.gcda" -exec rm {} \;
@lcov --directory . --zerocounters
cov-report:
@mkdir -p coverage
@lcov --compat-libtool --directory . --capture --output-file coverage/app.info
@genhtml -o coverage/ coverage/app.info
cov:
@make cov-report
clean-local:
@make cov-reset
check:
@make cov
endif
Il '@make COV' sotto controllo aggiungerà il bersaglio 'COV' al default 'make check' di destinazione.