Pregunta

Me han establecido con éxito un proyecto en el que autotools las pruebas compila con instrumentación para que pueda obtener un informe cobertura de la prueba.

Me puede obtener el informe mediante la ejecución de lcov en el directorio de fuentes después de una exitosa 'make check'.

Ahora se enfrentan al problema de que yo quiero para automatizar este paso. Me gustaría añadir esto a 'make check' o para que sea una meta separada 'make check-cobertura'. Idealmente me gustaría analizar el resultado y fallar si la cobertura cae por debajo de un determinado porcentaje. El problema es que no puedo encontrar la manera de añadir un objetivo de encargo en absoluto.

Lo más cerca que llegué fue encontrar en este ejemplo autotools de configuración, pero no puedo ver donde en ese proyecto se añade el objetivo 'make lcov'. Sólo puedo ver algunas banderas de configure en m4 / auxdevel.m4.

¿Algún consejo?

¿Fue útil?

Solución

Puede parecer sólo tiene que añadir pasos adicionales a los objetivos en su Makefile.am, esto es lo que terminó con (inspirado en #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    

El '@make cov' bajo control va a añadir el destino 'cov' en el valor predeterminado 'make check' objetivo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top