Install pg_regress script to support PGXS?
While testing the recent pgxs patch, I noticed that you can build and
install contrib with PGXS:
cd contrib
gmake USE_PGXS=1 all
gmake USE_PGXS=1 install
It seems that it ought to work to run installcheck too:
gmake USE_PGXS=1 installcheck
but this does not quite work because the pg_regress script isn't
included in the installation tree. (If you copy it to where it'd
need to be, installcheck works.)
Is it worth including pg_regress in the installation to make this
work? Seems like it might be handy for external modules to be able
to run self-tests.
regards, tom lane
Dear Tom,
While testing the recent pgxs patch, I noticed that you can build and
install contrib with PGXS:
...
It seems that it ought to work to run installcheck too:
gmake USE_PGXS=1 installcheck
but this does not quite work because the pg_regress script isn't
included in the installation tree. (If you copy it to where it'd
need to be, installcheck works.)Is it worth including pg_regress in the installation to make this
work? Seems like it might be handy for external modules to be able
to run self-tests.
Indeed, I noticed this when I did pgxs;-) It is on my todo list for
postgresql, but I haven't had time much time this year to contribute
anything.
The reason it was not included at first is that it seemed to me that
selftests require a temporary installation which make sense easilly when
building from sources, but I was not sure about what would be really
needed for the feature out of the compilation tree (special conf files,
diff/comparison commands...). I was planning to investigate the details,
but if the pg_regress command is enough, that was a little bit stupid of
me not to do it directly. ISTM that the pg_regress command is not compiled
by default, only under "make test", so it should be added to the default
compilation?
--
Fabien.
On Thu, Sep 29, 2005 at 03:24:15PM +0200, Fabien COELHO wrote:
Dear Tom,
While testing the recent pgxs patch, I noticed that you can build and
install contrib with PGXS:
...
It seems that it ought to work to run installcheck too:
gmake USE_PGXS=1 installcheck
but this does not quite work because the pg_regress script isn't
included in the installation tree. (If you copy it to where it'd
need to be, installcheck works.)Is it worth including pg_regress in the installation to make this
work? Seems like it might be handy for external modules to be able
to run self-tests.The reason it was not included at first is that it seemed to me that
selftests require a temporary installation [...]
The temporary installation is required to run "make check", but not to
run "make installcheck" (which uses the regular installation instead.)
So just including pg_regress is enough, and since it's a small and
useful program, I'd say it's a reasonable thing to do.
(Maybe we should audit it for security problems, just in case the
distributors choose to include it in packages. The temp file usage for
$TMPFILE looks "predictable," thus maybe it _is_ insecure. Apparently
it can be made to clobber any existing file owned by whoever runs it.)
--
Alvaro Herrera http://www.PlanetPostgreSQL.org
"Entristecido, Wutra (canci�n de Las Barreras)
echa a Freyr a rodar
y a nosotros al mar"
Alvaro Herrera <alvherre@alvh.no-ip.org> writes:
(Maybe we should audit it for security problems, just in case the
distributors choose to include it in packages. The temp file usage for
$TMPFILE looks "predictable," thus maybe it _is_ insecure. Apparently
it can be made to clobber any existing file owned by whoever runs it.)
pg_regress already *is* shipped in packages (certainly the RPMs contain it)
so if you see any such problems, please do fix 'em.
regards, tom lane