Re: pgsql: Fix pg_isolation_regress to work outside its build directory.

Поиск
Список
Период
Сортировка
От Andres Freund
Тема Re: pgsql: Fix pg_isolation_regress to work outside its build directory.
Дата
Msg-id 20131112120538.GA23777@awork2.anarazel.de
обсуждение исходный текст
Ответ на Re: pgsql: Fix pg_isolation_regress to work outside its build directory.  (Andres Freund <andres@2ndquadrant.com>)
Список pgsql-committers
On 2013-11-09 15:13:14 +0100, Andres Freund wrote:
> Hi,
>
> On 2013-11-08 20:02:30 +0000, Robert Haas wrote:
> > Fix pg_isolation_regress to work outside its build directory.
>
> > This makes it possible to, for example, use the isolation tester to
> > test a contrib module.
>
> Unfortunately this isn't working all that well on anole and currawong :/.
> Looking at the output on the former the reason becomes clear:
> ./pg_isolation_regress --temp-install=./tmp_check --inputdir=. --top-builddir=../../..
--schedule=./isolation_schedule
> /usr/lib/hpux64/dld.so: Unable to find library 'libpq.so.5'.
> sh: 15000 Killed
>
> isolationtester doesn't find libpq during find_other_exec(). I think that is because it normally
> only gets run when pg_regress.c has done:
>         /*
>          * Set up shared library paths to include the temp install.
>          *
>          * LD_LIBRARY_PATH covers many platforms.  DYLD_LIBRARY_PATH works on
>          * Darwin, and maybe other Mach-based systems.    LIBPATH is for AIX.
>          * Windows needs shared libraries in PATH (only those linked into
>          * executables, not dlopen'ed ones). Feel free to account for others
>          * as well.
>          */
>         add_to_path("LD_LIBRARY_PATH", ':', libdir);
>         add_to_path("DYLD_LIBRARY_PATH", ':', libdir);
>         add_to_path("LIBPATH", ':', libdir);
> #if defined(WIN32)
>         add_to_path("PATH", ';', libdir);
> #elif defined(__CYGWIN__)
>         add_to_path("PATH", ':', libdir);
> #endif
>
> but the initialization functions are run earlier:
>     /*
>      * We call the initialization function here because that way we can set
>      * default parameters and let them be overwritten by the commandline.
>      */
>     ifunc(argc, argv);
>
> The only hack I currently can think of is to store argv[0] in a global
> variable and to run the find_other_exec() in the first run through
> isolation_start_test() :/.

A patch to that end attached.

Alternatively we could add a "startup_function startup" argument to
regression_main() that's called later, when the environment is setup.

Greetings,

Andres Freund

--
 Andres Freund                       http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training & Services

Вложения

В списке pgsql-committers по дате отправления:

Предыдущее
От: Magnus Hagander
Дата:
Сообщение: pgsql: Fix doc links in README file to work with new website layout
Следующее
От: Robert Haas
Дата:
Сообщение: pgsql: doc: Fix typo.