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 по дате отправления: