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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top