From: Noah Misch <noah@leadboat.com>
Date: Thu, 3 Sep 2015 04:29:11 +0000 (-0400)
Subject: Disable fsync throughout TAP test suites.
X-Git-Tag: REL9_6_BETA1~1415
X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7d7a103f41fbdc54e608c431ead866061289307d;p=postgresql

Disable fsync throughout TAP test suites.

Most suites already did so via start_test_server(), but the pg_rewind,
pg_ctl and pg_controldata suites ran a postmaster or initdb with fsync
enabled.  This halves the pg_rewind suite's runtime on buildfarm member
tern.  It makes tern and that machine's other buildfarm members less
vulnerable to noise failures from postmaster startup overrunning the 60s
pg_ctl timeout.  Back-patch to 9.5, where pg_rewind was introduced.
---

diff --git a/src/bin/pg_controldata/t/001_pg_controldata.pl b/src/bin/pg_controldata/t/001_pg_controldata.pl
index e36fa2d45d..e2b0d420a2 100644
--- a/src/bin/pg_controldata/t/001_pg_controldata.pl
+++ b/src/bin/pg_controldata/t/001_pg_controldata.pl
@@ -11,6 +11,6 @@ program_options_handling_ok('pg_controldata');
 command_fails(['pg_controldata'], 'pg_controldata without arguments fails');
 command_fails([ 'pg_controldata', 'nonexistent' ],
 	'pg_controldata with nonexistent directory fails');
-system_or_bail 'initdb', '-D', "$tempdir/data", '-A', 'trust';
+standard_initdb "$tempdir/data";
 command_like([ 'pg_controldata', "$tempdir/data" ],
 	qr/checkpoint/, 'pg_controldata produces output');
diff --git a/src/bin/pg_ctl/t/001_start_stop.pl b/src/bin/pg_ctl/t/001_start_stop.pl
index dae47a8013..177a16f7af 100644
--- a/src/bin/pg_ctl/t/001_start_stop.pl
+++ b/src/bin/pg_ctl/t/001_start_stop.pl
@@ -14,12 +14,14 @@ program_options_handling_ok('pg_ctl');
 command_exit_is([ 'pg_ctl', 'start', '-D', "$tempdir/nonexistent" ],
 	1, 'pg_ctl start with nonexistent directory');
 
-command_ok([ 'pg_ctl', 'initdb', '-D', "$tempdir/data" ], 'pg_ctl initdb');
+command_ok([ 'pg_ctl', 'initdb', '-D', "$tempdir/data", '-o', '-N' ],
+	'pg_ctl initdb');
 command_ok(
 	[ $ENV{PG_REGRESS}, '--config-auth',
 		"$tempdir/data" ],
 	'configure authentication');
 open CONF, ">>$tempdir/data/postgresql.conf";
+print CONF "fsync = off\n";
 if (! $windows_os)
 {
 	print CONF "listen_addresses = ''\n";
diff --git a/src/test/perl/TestLib.pm b/src/test/perl/TestLib.pm
index 4927d45d59..02533ebde5 100644
--- a/src/test/perl/TestLib.pm
+++ b/src/test/perl/TestLib.pm
@@ -143,6 +143,7 @@ sub standard_initdb
 
 	open CONF, ">>$pgdata/postgresql.conf";
 	print CONF "\n# Added by TestLib.pm)\n";
+	print CONF "fsync = off\n";
 	if ($windows_os)
 	{
 		print CONF "listen_addresses = '127.0.0.1'\n";
@@ -189,7 +190,7 @@ sub start_test_server
 	standard_initdb "$tempdir/pgdata";
 
 	$ret = system_log('pg_ctl', '-D', "$tempdir/pgdata", '-w', '-l',
-	  "$log_path/postmaster.log", '-o', "--fsync=off --log-statement=all",
+	  "$log_path/postmaster.log", '-o', "--log-statement=all",
 	  'start');
 
 	if ($ret != 0)