Fix path of regress shared library in pg_upgrade test
authorMichael Paquier <[email protected]>
Fri, 8 Dec 2023 01:36:23 +0000 (10:36 +0900)
committerMichael Paquier <[email protected]>
Fri, 8 Dec 2023 01:36:23 +0000 (10:36 +0900)
During a pg_upgrade test using an old dump, all references to the old
regress shared library path (so, dylib or dll) are updated to point to
the library path used by the new build, to ensure a consistent
comparison between the old and new dumps.

The test previously relied on a hardcoded value of "src/test/regress/"
to build the new path value, which would point to an incorrect location
for the meson and vpath builds.  This is replaced by REGRESS_SHLIB, able
to point to the correct location of the regress shared library.

Author: Alexander Lakhin
Discussion: https://postgr.es/m/a628d8ad-a08a-2eab-4ca9-641bc82d3193@gmail.com
Backpatch-through: 15

src/bin/pg_upgrade/t/002_pg_upgrade.pl

index 997963082bdb7ee323bc9bc68ffaf4608db8c80a..e5f57e550afdb2db7230625d2a3379bfa93fdab3 100644 (file)
@@ -284,7 +284,7 @@ if (defined($ENV{oldinstall}))
 
    my $dump_data = slurp_file($dump1_file);
 
-   my $newregresssrc = "$srcdir/src/test/regress";
+   my $newregresssrc = dirname($ENV{REGRESS_SHLIB});
    foreach (@libpaths)
    {
        my $libpath = $_;