From 010626219cb977da08583a5bf8cc235bbc1bb3a9 Mon Sep 17 00:00:00 2001 From: Justin Pryzby Date: Sat, 25 Jun 2022 01:07:56 -0500 Subject: [PATCH 2/2] WIP: old versions --- src/bin/pg_upgrade/t/002_pg_upgrade.pl | 18 ++++++++++++------ src/test/perl/PostgreSQL/Test/Cluster.pm | 8 ++++---- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/src/bin/pg_upgrade/t/002_pg_upgrade.pl b/src/bin/pg_upgrade/t/002_pg_upgrade.pl index 4a79a9e13d9..0f6b7afd78e 100644 --- a/src/bin/pg_upgrade/t/002_pg_upgrade.pl +++ b/src/bin/pg_upgrade/t/002_pg_upgrade.pl @@ -63,8 +63,8 @@ sub filter_dump return $dump_file_filtered; } -# The test of pg_upgrade requires two clusters, an old one and a new one -# that gets upgraded. Before running the upgrade, a logical dump of the +# The test of pg_upgrade requires two clusters, an old one and a new one. +# Before running the upgrade, a logical dump of the # old cluster is taken, and a second logical dump of the new one is taken # after the upgrade. The upgrade test passes if there are no differences # in these two dumps. @@ -99,7 +99,7 @@ $node_params{extra} = [ '--wal-segsize', '1', '--allow-group-access' ] $oldnode->init(%node_params); $oldnode->start; -# The default location of the source code is the root of this directory. +# The location of the source code is the root of this directory. my $srcdir = abs_path("../../.."); # Set up the data of the old instance with a dump or pg_regress. @@ -165,6 +165,12 @@ else is($rc, 0, 'regression tests pass'); } +# Initialize a new node for the upgrade. +my $newnode = PostgreSQL::Test::Cluster->new('new_node'); +$newnode->init(xextra => [ '--wal-segsize', '1', '--allow-group-access' ]); +my $newbindir = $newnode->config_data('--bindir'); +my $oldbindir = $oldnode->config_data('--bindir'); + # Before dumping, get rid of objects not existing or not supported in later # versions. This depends on the version of the old server used, and matters # only if different major versions are used for the dump. @@ -172,11 +178,11 @@ if (defined($ENV{oldinstall})) { # Note that upgrade_adapt.sql from the new version is used, to # cope with an upgrade to this version. - $oldnode->command_ok( + $newnode->command_ok( [ - 'psql', '-X', + "$newbindir/psql", '-X', '-f', "$srcdir/src/bin/pg_upgrade/upgrade_adapt.sql", - 'regression' + '-d', $oldnode->connstr('regression'), ], 'ran adapt script'); } diff --git a/src/test/perl/PostgreSQL/Test/Cluster.pm b/src/test/perl/PostgreSQL/Test/Cluster.pm index c8c7bc5045a..45cc4d74779 100644 --- a/src/test/perl/PostgreSQL/Test/Cluster.pm +++ b/src/test/perl/PostgreSQL/Test/Cluster.pm @@ -476,7 +476,7 @@ sub init mkdir $self->archive_dir; PostgreSQL::Test::Utils::system_or_bail('initdb', '-D', $pgdata, '-A', - 'trust', '-N', @{ $params{extra} }); + 'trust', @{ $params{extra} }); PostgreSQL::Test::Utils::system_or_bail($ENV{PG_REGRESS}, '--config-auth', $pgdata, @{ $params{auth_extra} }); @@ -486,8 +486,8 @@ sub init print $conf "restart_after_crash = off\n"; print $conf "log_line_prefix = '%m [%p] %q%a '\n"; print $conf "log_statement = all\n"; - print $conf "log_replication_commands = on\n"; - print $conf "wal_retrieve_retry_interval = '500ms'\n"; + #print $conf "log_replication_commands = on\n"; + #print $conf "wal_retrieve_retry_interval = '500ms'\n"; # If a setting tends to affect whether tests pass or fail, print it after # TEMP_CONFIG. Otherwise, print it before TEMP_CONFIG, thereby permitting @@ -827,7 +827,7 @@ sub start # compatibility with older versions. $ret = PostgreSQL::Test::Utils::system_log( 'pg_ctl', '-w', '-D', $self->data_dir, - '-l', $self->logfile, '-o', "--cluster-name=$name", + '-l', $self->logfile, # '-o', "--cluster-name=$name", 'start'); if ($ret != 0) -- 2.17.1