mirror of
https://github.com/php/php-src.git
synced 2024-09-22 02:17:32 +00:00
5164b81324
slightly hackish, but works. The idea is that we want to give priority to .gcda files in .libs dirs vs the files in the upper level dir
80 lines
2.4 KiB
Makefile
80 lines
2.4 KiB
Makefile
|
|
#
|
|
# LCOV
|
|
#
|
|
|
|
LCOV_INCLUDE="."
|
|
|
|
lcov: lcov-html
|
|
|
|
lcov-test: lcov-clean-data test
|
|
|
|
php_lcov.info: lcov-test
|
|
@echo "Generating data for $@"
|
|
@rm -rf lcov_data/
|
|
@$(mkinstalldirs) lcov_data/
|
|
@echo
|
|
-@files=`find . -name \*.gcda -o -name \*.gcno -o -name \*.da -o -name \*.c -o -name \*.h | sed -e 's/^\.\///' | sed -e 's/\.gcda//g' -e 's/\.gcno//g' -e 's/\.da//g' | $(EGREP) $(LCOV_INCLUDE) | sed -e 's/.libs/ZZZZ/g' | sort | sed -e 's/ZZZZ/.libs/g' | uniq` ;\
|
|
for x in $$files; do \
|
|
echo -n . ;\
|
|
y=`echo $$x | sed -e 's!\.libs/!!'`; \
|
|
dir=lcov_data/`dirname $$x`; \
|
|
test -d "$$dir" || $(mkinstalldirs) "$$dir"; \
|
|
if test -f "$(top_srcdir)/$$y.c"; then \
|
|
ln -f -s $(top_srcdir)/$$y.c lcov_data/$$y.c; \
|
|
fi; \
|
|
if test -f "$(top_srcdir)/$$y.h"; then \
|
|
ln -f -s $(top_srcdir)/$$y.h lcov_data/$$y.h; \
|
|
fi; \
|
|
if test -f "$(top_srcdir)/$$y.re"; then \
|
|
ln -f -s $(top_srcdir)/$$y.re lcov_data/$$y.re; \
|
|
fi; \
|
|
if test -f "$(top_srcdir)/$$y.y"; then \
|
|
ln -f -s $(top_srcdir)/$$y.y lcov_data/$$y.y; \
|
|
fi; \
|
|
if test -f "$(top_srcdir)/$$y.l"; then \
|
|
ln -f -s $(top_srcdir)/$$y.l lcov_data/$$y.l; \
|
|
fi; \
|
|
if test -f "$(top_srcdir)/$$y"; then \
|
|
ln -f -s $(top_srcdir)/$$y lcov_data/$$y; \
|
|
fi; \
|
|
if test -f "$(top_builddir)/$$y.c"; then \
|
|
ln -f -s $(top_builddir)/$$y.c lcov_data/$$y.c; \
|
|
fi; \
|
|
if test -f "$$x.gcno"; then \
|
|
cp $$x.gcno lcov_data/$$y.gcno ; \
|
|
fi; \
|
|
if test -f "$$x.gcda"; then \
|
|
cp $$x.gcda lcov_data/$$y.gcda ; \
|
|
fi; \
|
|
if test -f "$$x.da"; then \
|
|
cp $$x.da lcov_data/$$y.da ; \
|
|
fi; \
|
|
if test -f "$$x.bb"; then \
|
|
cp $$x.bb lcov_data/$$y.bb ; \
|
|
fi; \
|
|
if test -f "$$x.bbg"; then \
|
|
cp $$x.bbg lcov_data/$$y.bbg ; \
|
|
fi; \
|
|
done; \
|
|
for dir in ext/bcmath/libbcmath ext/fileinfo/libmagic ext/gd/libgd ext/mbstring/libmbfl ext/mbstring/oniguruma ext/pcre/pcrelib ext/pdo_sqlite/libsqlite ext/sqlite/libsqlite ext/sqlite3/libsqlite ext/xmlrpc/libxmlrpc ext/zip/lib; do \
|
|
if test -d lcov_data/$$dir; then \
|
|
rm -rf lcov_data/$$dir ; \
|
|
fi; \
|
|
done
|
|
@echo
|
|
@echo "Generating $@"
|
|
@$(LTP) --directory lcov_data/ --capture --base-directory=lcov_data --output-file $@
|
|
|
|
lcov-html: php_lcov.info
|
|
@echo "Generating lcov HTML"
|
|
@$(LTP_GENHTML) --legend --output-directory lcov_html/ --title "PHP Code Coverage" php_lcov.info
|
|
|
|
lcov-clean:
|
|
rm -f php_lcov.info
|
|
rm -rf lcov_data/
|
|
rm -rf lcov_html/
|
|
|
|
lcov-clean-data:
|
|
@find . -name \*.gcda -o -name \*.da -o -name \*.bbg? | xargs rm -f
|