Question

J'ai mis en place un autotools avec succès le projet où les essais avec l'instrumentation compiles afin que je puisse obtenir un rapport de couverture de test.

Je peux obtenir le rapport en exécutant lcov dans la source dir après un 'make check' réussie.

Je face à maintenant le problème que je veux automatiser cette étape. Je voudrais ajouter à « faire chèque » ou pour en faire un objectif séparé « make check-couverture ». Idéalement, je voudrais analyser le résultat et l'échec si la couverture tombe en dessous d'un certain pourcentage. Le problème est que je ne peux pas comprendre comment ajouter une cible personnalisée du tout.

Le plus proche je suis arrivé était de trouver cet exemple config autotools, mais je ne peux pas voir où dans ce projet l'objectif « faire lcov » est ajouté. Je ne peux voir des drapeaux de configurer dans m4 / auxdevel.m4.

Des conseils?

Était-ce utile?

La solution

Vous pouvez apparemment simplement ajouter des mesures supplémentaires pour cibles dans votre Makefile.am, voilà ce que j'ai fini avec (inspiré par #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    

Le '@make cov' sous contrôle ajoutera la cible 'cov' par défaut 'make check' cible.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top