Re: Fixing make lcov with TESTS variable
| From: | Nuno Lopes | Date: | Sun, 06 Jun 2010 21:31:25 +0000 |
| Subject: | Re: Fixing make lcov with TESTS variable | ||
| References: | 1 2 | Groups: | php.qa |
| Request: | Send a blank email to php-qa+get-65572@lists.php.net to get a copy of this message | ||
Hi,
I haven't been much active lately, but I will still try to reply :)
This change doesn't look right to me. The directory tests is hardcoded since that code path is targeted for running the tests of PECL extensions, and not for the core extensions. That said, the 'lcov-test:' part is just a rip from 'test:'. However, it seems to be a bit outdated. Maybe you can try to port the new 'test:' rule from Makefile.global and check if problems go away.
Nuno
----- Original Message -----
Felix, Since Jani (the build expert) isn't active, check with Nuno on this. It would be good to have a fix so I don't have to keep editing the Makefile! It seems inherently wrong to ignore the variable: perhaps the intent was for it to be set in the parent shell like you set PHP_EXECUTABLE. I notice phpize installs from PECL will set the variable in the Makefile (though there is no Makefile.gcov). Chris On 06/05/2010 07:07 AM, Felix De Vliegher wrote:Hi all During our testfest, Patrick Allaert was looking at fixing the issue when you want to get code coverage for only a specific part of the testsuite, eg: $ make lcov TESTS=ext/date/ This wasn't working anymore for quite some time, with the cause being an error in the generated makefile. I've created a diff for Makefile.gcov, which is used to generate the Makefile when configuring PHP. The issue here is that $(PHP_MODULES) is always empty, and sourcing it doesn't work. Also, the tests/ directory was hardcoded instead of using the $(TESTS) variable. ~/svn/php-5.3$ svn diff Makefile.gcov Index: Makefile.gcov ===================================================================--- Makefile.gcov (revision 300180) +++ Makefile.gcov (working copy)@@ -13,7 +13,7 @@TEST_PHP_EXECUTABLE=$(PHP_EXECUTABLE) \ TEST_PHP_SRCDIR=$(top_srcdir) \ CC="$(CC)" \ - $(PHP_EXECUTABLE) -d 'open_basedir=' -d 'safe_mode=0' -d 'output_buffering=0' -d 'memory_limit=-1' $(top_srcdir)/run-tests.php -d 'extension_dir=modules/' -d `( . $(PHP_MODULES) ; echo extension=$$dlname)` tests/; \ + $(PHP_EXECUTABLE) -d 'open_basedir=' -d 'safe_mode=0' -d 'output_buffering=0' -d 'memory_limit=-1' $(top_srcdir)/run-tests.php -d 'extension_dir=modules/' $(TESTS); \ elif test ! -z "$(SAPI_CLI_PATH)"&& test -x "$(SAPI_CLI_PATH)"; then \ NO_INTERACTION=1 \ TEST_PHP_EXECUTABLE=$(top_builddir)/$(SAPI_CLI_PATH) \Is there an issue if I'd commit this? Regards, Felix