Allow for installation-aware instances of PostgresNode
authorAndrew Dunstan <andrew@dunslane.net>
Wed, 24 Mar 2021 22:52:25 +0000 (18:52 -0400)
committerAndrew Dunstan <andrew@dunslane.net>
Wed, 24 Mar 2021 22:52:25 +0000 (18:52 -0400)
commitb34ca595abd697e716ce369ec1b58624bdd1c431
treef42d9d09088f2110783470ba6e21f70e65dd7e57
parent65c2ec6f30d9c0878a9ef83e0ec9a53e6b82d9d8
Allow for installation-aware instances of PostgresNode

Currently instances of PostgresNode find their Postgres executables in
the PATH of the caller. This modification allows for instances that know
the installation path they are supposed to use, and the module adjusts
the environment of methods that call Postgres executables appropriately.

This facility is activated by passing the installation path to the
constructor:

  my $node = PostgresNode->get_new_node('mynode',
     installation_path => '/path/to/installation');

This makes a number of things substantially easier, including

. testing third party modules
. testing different versions of postgres together
. testing different builds of postgres together

Discussion: https://postgr.es/m/a94c74f9-6b71-1957-7973-a734ea3cbef1@dunslane.net

Reviewed-By: Alvaro Herrera, Michael Paquier, Dagfinn Ilmari Mannsåker
src/test/perl/PostgresNode.pm