Re: make installcheck-world in a clean environment - Mailing list pgsql-hackers

From Alexander Lakhin
Subject Re: make installcheck-world in a clean environment
Date
Msg-id 13311de0-456c-fe1e-3e61-9bdf916ef1a2@gmail.com
Whole thread Raw
In response to Re: make installcheck-world in a clean environment  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
Hello Tom,

11.07.2018 23:15, Tom Lane wrote:

/make clean/
# Also you can just install binary packages to get the same state.
make installcheck-world
# This check fails.
I do not think that should be expected to work.  It would require that
"make installcheck" first invoke "make all" (to rebuild the stuff you
threw away with "make clean"), which is rather antithetical to its
purpose.  Specifically, installcheck is supposed to be checking something
you already built; so having it do a fresh build seems to introduce
version-skew hazards that we don't need.
If I understand correctly, the installcheck target should not use the stuff in the build directory (that is thrown away with 'make clean'), but instead should use/check the installed assets.
In fact with REL_10_STABLE you can run "make clean && make installcheck" and it works just fine (without calling 'make all'). It's sufficient to have a working instance running. And I think, this behavior is correct — "installcheck" supposed to check not something we built ("check" is supposed to do that), but something we installed.
And only if I run "make installcheck-world" with REL_10_STABLE I get an error related to ECPG, I've referred to in the first message in this thread.
In the master branch there was some changes that prevent "make clean && make installcheck" scenario to run, but I think it can (and should) be fixed too.
(When I prepared the patches, there were no differences between these branches in this aspect.)
So for me the question is what assets should the installcheck target be checking? Installed or built ones? For example, if psql/pg_dump/ecpg/... is installed in /usr/local/pgsql/bin/, should it be checked by the installcheck? And if we target the installed stuff then why do we need to build something (or have something built) for installcheck?

Best regards,
------

Alexander Lakhin
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company

pgsql-hackers by date:

Previous
From: Masahiko Sawada
Date:
Subject: Re: Copy function for logical replication slots
Next
From: Michael Paquier
Date:
Subject: Re: Temporary WAL segments files not cleaned up after an instancecrash