]> granicus.if.org Git - php/commitdiff
- Fixed --enable-gcov to work with VPATH builds too
authorfoobar <sniper@php.net>
Tue, 8 Nov 2005 16:43:09 +0000 (16:43 +0000)
committerfoobar <sniper@php.net>
Tue, 8 Nov 2005 16:43:09 +0000 (16:43 +0000)
Makefile.gcov
NEWS

index 80ce36da3fdab81891e8bcb569b8d6ae1dac508d..640049565545bd65f86f616461ee7e39432f307c 100644 (file)
@@ -1,18 +1,41 @@
 
-.php_cov_info.ltpdata:
-       @mkdir -p .cov/; \
-       find . -name \*.gcda -o -name \*.gcno | sed -e 's/^\.\/\.cov\/.*//' | xargs --replace cp {} .cov/; \
-       find . -name \*.gcda -o -name \*.gcno | sed -e 's/^\.\/\.cov\/.*//' | sed -e 's/^\.\///' | xargs --max-args=1 dirname | sed -e 's/\/.*//' | xargs --replace ln -s `pwd`/{} `pwd`/.cov > /dev/null 2>&1; \
-       $(LTP) --directory .cov --output-file=.php_cov_info.ltpdata --capture; \
+#
+# LCOV
+#
 
-cov: .php_cov_info.ltpdata
+lcov: php_lcov.info 
 
-cov-html: cov 
-       @$(LTP_GENHTML) -o cov_html/ .php_cov_info.ltpdata -t "PHP Code Coverage" -s;
+php_lcov.info: 
+       @echo "Generating data for $@"
+       @rm -rf lcov_data/
+       @$(mkinstalldirs) lcov_data/
+       @echo
+       -@find . -name \*.gcda -o -name \*.gcno | sed -e 's/^\.\///' | sed -e 's/\.gcda//g' -e 's/\.gcno//g' | uniq | while read x; do \
+               echo -n . ;\
+               dir=lcov_data/`dirname $$x`; \
+               test -d "$$dir" || $(mkinstalldirs) "$$dir"; \
+               if test -f "$(top_srcdir)/$$x.c"; then \
+                       ln -f -s $(top_srcdir)/$$x.c lcov_data/$$x.c; \
+               fi; \
+               if test -f "$(top_srcdir)/$$x.re"; then \
+                       ln -f -s $(top_srcdir)/$$x.re lcov_data/$$x.re; \
+               fi; \
+               if test -f "$(top_builddir)/$$x.c"; then \
+                       ln -f -s $(top_builddir)/$$x.c lcov_data/$$x.c; \
+               fi; \
+               test -f "$$x.gcno" && cp $$x.gcno lcov_data/ ; \
+               test -f "$$x.gcda" && cp $$x.gcda lcov_data/ ; \
+       done
+       @echo 
+       @echo "Generating $@"
+       @$(LTP) --directory lcov_data/ --capture --output-file $@ --test-name PHP_LCOV
+
+lcov-html: php_lcov.info
+       @echo "Generating lcov HTML"
+       @$(LTP_GENHTML) --no-prefix --output-directory lcov_html/ --title "PHP Code Coverage" --show-details php_lcov.info
+
+lcov-clean:
+       rm -f php_lcov.info
+       rm -rf lcov_data/
+       rm -rf lcov_html/
 
-cov-clean:
-       find . -name \*.gcda -o -name \*.gcno -exec rm -f {} \;
-       rm -f .cov/*      # This is done first, since we are symlinked inside..
-       rm -Rf .cov       # Now remove the directory
-       rm -f .php_cov_info.ltpdata
-       rm -Rf cov_html
diff --git a/NEWS b/NEWS
index d207eeae887ba60ea35ec0201b45299ac4c928f6..3520812f29876c5849e520df84fd2214c8d868b5 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -8,7 +8,8 @@ PHP                                                                        NEWS
   (Marcus, Dmitry)
 - Changed "instanceof" and "catch" operators, is_a() and is_subclass_of()
   functions to not call __autoload(). (Dmitry)
-- Added configure option to enable C-level Code Coverage Instrumenting. (John)
+- Added --enable-gcov configure option to enable C-level code coverage.
+  (John, Jani)
 - Added to cURL extension: (Ilia)
   . curl_setopt_array() which allows setting of multiple cURL options.
   . CURLINFO_HEADER_OUT constant to facilitate request retrieval.