From 7729d5f7dc580f8f78088d55af93a82c3d218a77 Mon Sep 17 00:00:00 2001 From: Greg Sabino Mullane Date: Thu, 8 Aug 2024 12:26:51 -0400 Subject: [PATCH 2/3] Allow tests to force checksums off when calling init() Adjust tests that need non-checksums clusters to work. --- src/bin/pg_amcheck/t/003_check.pl | 2 +- src/bin/pg_amcheck/t/004_verify_heapam.pl | 2 +- src/bin/pg_checksums/t/002_actions.pl | 2 +- src/test/perl/PostgreSQL/Test/Cluster.pm | 7 +++++++ 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/bin/pg_amcheck/t/003_check.pl b/src/bin/pg_amcheck/t/003_check.pl index 4b16bda6a4..a45b14662f 100644 --- a/src/bin/pg_amcheck/t/003_check.pl +++ b/src/bin/pg_amcheck/t/003_check.pl @@ -120,7 +120,7 @@ sub perform_all_corruptions() # Test set-up $node = PostgreSQL::Test::Cluster->new('test'); -$node->init; +$node->init(no_checksums => 1); $node->append_conf('postgresql.conf', 'autovacuum=off'); $node->start; $port = $node->port; diff --git a/src/bin/pg_amcheck/t/004_verify_heapam.pl b/src/bin/pg_amcheck/t/004_verify_heapam.pl index f6d2c5f787..2c17f7d068 100644 --- a/src/bin/pg_amcheck/t/004_verify_heapam.pl +++ b/src/bin/pg_amcheck/t/004_verify_heapam.pl @@ -181,7 +181,7 @@ my $aborted_xid; # autovacuum workers visiting the table could crash the backend. # Disable autovacuum so that won't happen. my $node = PostgreSQL::Test::Cluster->new('test'); -$node->init; +$node->init(no_checksums => 1); $node->append_conf('postgresql.conf', 'autovacuum=off'); $node->append_conf('postgresql.conf', 'max_prepared_transactions=10'); diff --git a/src/bin/pg_checksums/t/002_actions.pl b/src/bin/pg_checksums/t/002_actions.pl index 33e7fb53c5..c136febbbb 100644 --- a/src/bin/pg_checksums/t/002_actions.pl +++ b/src/bin/pg_checksums/t/002_actions.pl @@ -88,7 +88,7 @@ sub check_relation_corruption # Initialize node with checksums disabled. my $node = PostgreSQL::Test::Cluster->new('node_checksum'); -$node->init(); +$node->init(no_checksums => 1); my $pgdata = $node->data_dir; # Control file should know that checksums are disabled. diff --git a/src/test/perl/PostgreSQL/Test/Cluster.pm b/src/test/perl/PostgreSQL/Test/Cluster.pm index 32ee98aebc..632a2c9ebc 100644 --- a/src/test/perl/PostgreSQL/Test/Cluster.pm +++ b/src/test/perl/PostgreSQL/Test/Cluster.pm @@ -504,6 +504,8 @@ On Windows, we use SSPI authentication to ensure the same (by pg_regress WAL archiving can be enabled on this node by passing the keyword parameter has_archiving => 1. This is disabled by default. +Data checksums can be forced off by passing no_checksums => 1. + postgresql.conf can be set up for replication by passing the keyword parameter allows_streaming => 'logical' or 'physical' (passing 1 will also suffice for physical replication) depending on type of replication that @@ -530,6 +532,11 @@ sub init $params{force_initdb} = 0 unless defined $params{force_initdb}; $params{has_archiving} = 0 unless defined $params{has_archiving}; + if (defined $params{no_checksums}) + { + push @{ $params{extra} }, '--no-data-checksums'; + } + my $initdb_extra_opts_env = $ENV{PG_TEST_INITDB_EXTRA_OPTS}; if (defined $initdb_extra_opts_env) { -- 2.30.2