pgsql: Improve speed of make check-world
Improve speed of make check-world
Before, make check-world would create a new temporary installation for
each test suite, which is slow and wasteful. Instead, we now create one
test installation that is used by all test suites that are part of a
make run.
The management of the temporary installation is removed from pg_regress
and handled in the makefiles. This allows for better control, and
unifies the code with that of test suites not run through pg_regress.
review and msvc support by Michael Paquier <michael.paquier@gmail.com>
more review by Fabien Coelho <coelho@cri.ensmp.fr>
Branch
------
master
Details
-------
http://git.postgresql.org/pg/commitdiff/dcae5faccab64776376d354decda0017c648bb53
Modified Files
--------------
.gitignore | 1 +
GNUmakefile.in | 1 +
contrib/earthdistance/Makefile | 2 +-
contrib/test_decoding/Makefile | 16 ++-
src/Makefile.global.in | 30 +++--
src/bin/pg_upgrade/test.sh | 2 +-
src/interfaces/ecpg/test/Makefile | 10 +-
src/makefiles/pgxs.mk | 7 +-
src/pl/plperl/GNUmakefile | 2 -
src/pl/plpython/Makefile | 3 -
src/pl/tcl/Makefile | 2 -
src/test/isolation/Makefile | 15 +--
src/test/regress/GNUmakefile | 4 -
src/test/regress/pg_regress.c | 234 +++++++++---------------------------
src/test/regress/pg_regress.h | 6 -
src/test/regress/pg_regress_main.c | 4 +-
src/tools/msvc/vcregress.pl | 67 +++++++----
17 files changed, 145 insertions(+), 261 deletions(-)
--
Sent via pgsql-committers mailing list (pgsql-committers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-committers
On 04/23/2015 10:11 AM, Peter Eisentraut wrote:
Improve speed of make check-world
Before, make check-world would create a new temporary installation for
each test suite, which is slow and wasteful. Instead, we now create one
test installation that is used by all test suites that are part of a
make run.The management of the temporary installation is removed from pg_regress
and handled in the makefiles. This allows for better control, and
unifies the code with that of test suites not run through pg_regress.review and msvc support by Michael Paquier <michael.paquier@gmail.com>
more review by Fabien Coelho <coelho@cri.ensmp.fr>
This has caused some buildfarm breakage, in the module that runs the
collate.linux.utf8 test.
Currently it is coded to run like this:
my @checklog;
my $cmd ="./pg_regress --psqldir=$installdir/bin --dlpath=. "
."$inputdir --port=$buildport collate.linux.utf8";
@checklog = `cd $pgsql/src/test/regress && $cmd 2>&1`;
and the error it now gets is:
./pg_regress: unrecognized option '--psqldir=/home/bf/bfr/root/HEAD/inst/bin'
TBH I'm not 100% convinced that removing the ability to have pg_regress
handle temprary installation management is a good thing.
cheers
andrew
--
Sent via pgsql-committers mailing list (pgsql-committers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-committers
Peter Eisentraut wrote:
Improve speed of make check-world
Before, make check-world would create a new temporary installation for
each test suite, which is slow and wasteful. Instead, we now create one
test installation that is used by all test suites that are part of a
make run.
Maybe I'm confused, but now "make -C doc/src/sgml check" seems to build
the whole backend; it didn't do so before, and I think that's quite
pointless. I take it that's unintended? Can we get the old behavior
back?
--
�lvaro Herrera http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
--
Sent via pgsql-committers mailing list (pgsql-committers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-committers
On Tue, May 5, 2015 at 03:02:50PM -0300, Alvaro Herrera wrote:
Peter Eisentraut wrote:
Improve speed of make check-world
Before, make check-world would create a new temporary installation for
each test suite, which is slow and wasteful. Instead, we now create one
test installation that is used by all test suites that are part of a
make run.Maybe I'm confused, but now "make -C doc/src/sgml check" seems to build
the whole backend; it didn't do so before, and I think that's quite
pointless. I take it that's unintended? Can we get the old behavior
back?
Yes, I found this odd too. It is caused by this commit:
commit dcae5faccab64776376d354decda0017c648bb53
Author: Peter Eisentraut <peter_e@gmx.net>
Date: Thu Apr 23 08:59:52 2015 -0400
Improve speed of make check-world
It basically added a'check' target dependency of 'temp-install' to
Makefile.global.in, which added it to every Makefile containing a
'check' target.
While you can't easily add rule action to an existing target, you can
easily add dependencies by just mentioning the target multiple times,
e.g.
check: dep1
check: dep2
dep1:
echo 1
dep2:
echo 2
Running 'make check' will output '1 2'.
Now, of course many check's need temp-install, but the SGML build does
not. The attached diff uses a symbol defined in doc/src/sgml/Makefile
(GENERATED_SGML) to supress the temp-install target rule action.
--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://enterprisedb.com
+ Everyone has their own god. +
Attachments:
Makefile.difftext/x-diff; charset=us-asciiDownload+2-0
On Sat, May 9, 2015 at 02:02:15PM -0400, Bruce Momjian wrote:
Yes, I found this odd too. It is caused by this commit:
commit dcae5faccab64776376d354decda0017c648bb53
Author: Peter Eisentraut <peter_e@gmx.net>
Date: Thu Apr 23 08:59:52 2015 -0400Improve speed of make check-world
It basically added a'check' target dependency of 'temp-install' to
Makefile.global.in, which added it to every Makefile containing a
'check' target.While you can't easily add rule action to an existing target, you can
easily add dependencies by just mentioning the target multiple times,
e.g.check: dep1
check: dep2
dep1:
echo 1dep2:
echo 2Running 'make check' will output '1 2'.
Now, of course many check's need temp-install, but the SGML build does
not. The attached diff uses a symbol defined in doc/src/sgml/Makefile
(GENERATED_SGML) to supress the temp-install target rule action.
Patch applied, with added Makefile comment.
--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://enterprisedb.com
+ Everyone has their own god. +
--
Sent via pgsql-committers mailing list (pgsql-committers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-committers
On Tue, May 12, 2015 at 11:01:49AM -0400, Bruce Momjian wrote:
While you can't easily add rule action to an existing target, you can
easily add dependencies by just mentioning the target multiple times,
e.g.check: dep1
check: dep2
dep1:
echo 1dep2:
echo 2Running 'make check' will output '1 2'.
Now, of course many check's need temp-install, but the SGML build does
not. The attached diff uses a symbol defined in doc/src/sgml/Makefile
(GENERATED_SGML) to supress the temp-install target rule action.Patch applied, with added Makefile comment.
This patch has broken the build farm, and I am fixing it now.
--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://enterprisedb.com
+ Everyone has their own god. +
--
Sent via pgsql-committers mailing list (pgsql-committers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-committers
On Tue, May 12, 2015 at 12:24:17PM -0400, Bruce Momjian wrote:
Running 'make check' will output '1 2'.
Now, of course many check's need temp-install, but the SGML build does
not. The attached diff uses a symbol defined in doc/src/sgml/Makefile
(GENERATED_SGML) to supress the temp-install target rule action.Patch applied, with added Makefile comment.
This patch has broken the build farm, and I am fixing it now.
Fixed.
--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://enterprisedb.com
+ Everyone has their own god. +
--
Sent via pgsql-committers mailing list (pgsql-committers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-committers