Autotools автоматический вызов lcov после 'make check' - PullRequest
4 голосов
/ 20 мая 2010

Я успешно настроил проект автоинструментов, в котором тесты компилируются с инструментарием, поэтому я могу получить отчет о покрытии тестов.

Я могу получить отчет, запустив lcov в исходном каталоге после успешной проверки make.

Теперь я столкнулся с проблемой, которую я хочу автоматизировать на этом этапе. Я хотел бы добавить это для «проверки» или для отдельной цели «сделать проверку». В идеале я хотел бы проанализировать результат и потерпеть неудачу, если охват падает ниже определенного процента. Проблема в том, что я вообще не могу понять, как добавить свою цель.

Самое близкое, что я получил, - это этот пример конфигурации автоинструментов, но я не вижу, где в этом проекте добавлена ​​цель make lcov. Я вижу только некоторые конфигурационные флаги в m4 / auxdevel.m4.

Какие-нибудь советы?

1 Ответ

6 голосов
/ 20 мая 2010

Вы, очевидно, можете просто добавить дополнительные шаги к целям в вашем Makefile.am, это то, чем я закончил (вдохновлено # 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    

Под проверкой '@make cov' добавится цель 'cov' к цели по умолчанию 'make check'.

...