Run most pg_dump and pg_dumpall tests with --no-sync
authorAndrew Dunstan <andrew@dunslane.net>
Mon, 10 Apr 2017 23:53:47 +0000 (19:53 -0400)
committerAndrew Dunstan <andrew@dunslane.net>
Mon, 10 Apr 2017 23:53:47 +0000 (19:53 -0400)
Commit 96a7128b made pg_dump and pg_dumpall sync their output by
default. However, there's no great need for that in testing, and it
could impose a performance penalty, so we add the --no-sync flag to most
of the test cases.

Michael Paquier

src/bin/pg_dump/t/002_pg_dump.pl
src/bin/pg_dump/t/010_dump_connstr.pl
src/bin/pg_upgrade/test.sh
src/test/modules/test_pg_dump/t/001_base.pl

index 5030bc204c7330e8f968659654be77509284c558..cccad04ab622b7a6dbbb65c3ef81ca28f39296fb 100644 (file)
@@ -39,6 +39,7 @@ my %pgdump_runs = (
    binary_upgrade => {
        dump_cmd => [
            'pg_dump',
+           '--no-sync',
            '--format=custom',
            "--file=$tempdir/binary_upgrade.dump",
            '-w',
@@ -55,6 +56,7 @@ my %pgdump_runs = (
    clean => {
        dump_cmd => [
            'pg_dump',
+           '--no-sync',
            "--file=$tempdir/clean.sql",
            '--include-subscriptions',
            '-c',
@@ -63,6 +65,7 @@ my %pgdump_runs = (
    clean_if_exists => {
        dump_cmd => [
            'pg_dump',
+           '--no-sync',
            "--file=$tempdir/clean_if_exists.sql",
            '--include-subscriptions',
            '-c',
@@ -71,12 +74,16 @@ my %pgdump_runs = (
            'postgres', ], },
    column_inserts => {
        dump_cmd => [
-           'pg_dump', "--file=$tempdir/column_inserts.sql",
-           '-a',      '--column-inserts',
+           'pg_dump',
+           '--no-sync',
+           "--file=$tempdir/column_inserts.sql",
+           '-a',
+           '--column-inserts',
            'postgres', ], },
    createdb => {
        dump_cmd => [
            'pg_dump',
+           '--no-sync',
            "--file=$tempdir/createdb.sql",
            '--include-subscriptions',
            '-C',
@@ -86,6 +93,7 @@ my %pgdump_runs = (
    data_only => {
        dump_cmd => [
            'pg_dump',
+           '--no-sync',
            "--file=$tempdir/data_only.sql",
            '--include-subscriptions',
            '-a',
@@ -94,8 +102,13 @@ my %pgdump_runs = (
            '-v',                 # no-op, just make sure it works
            'postgres', ], },
    defaults => {
-       dump_cmd => [ 'pg_dump', '-f', "$tempdir/defaults.sql", 'postgres', ],
-   },
+       dump_cmd => [
+           'pg_dump',
+           '--no-sync',
+           '-f',
+           "$tempdir/defaults.sql",
+           'postgres', ], },
+   # Do not use --no-sync to give test coverage for data sync.
    defaults_custom_format => {
        test_key => 'defaults',
        dump_cmd => [
@@ -105,6 +118,7 @@ my %pgdump_runs = (
            'pg_restore', '-Fc',
            "--file=$tempdir/defaults_custom_format.sql",
            "$tempdir/defaults_custom_format.dump", ], },
+   # Do not use --no-sync to give test coverage for data sync.
    defaults_dir_format => {
        test_key => 'defaults',
        dump_cmd => [
@@ -114,6 +128,7 @@ my %pgdump_runs = (
            'pg_restore', '-Fd',
            "--file=$tempdir/defaults_dir_format.sql",
            "$tempdir/defaults_dir_format", ], },
+   # Do not use --no-sync to give test coverage for data sync.
    defaults_parallel => {
        test_key => 'defaults',
        dump_cmd => [
@@ -123,6 +138,7 @@ my %pgdump_runs = (
            'pg_restore',
            "--file=$tempdir/defaults_parallel.sql",
            "$tempdir/defaults_parallel", ], },
+   # Do not use --no-sync to give test coverage for data sync.
    defaults_tar_format => {
        test_key => 'defaults',
        dump_cmd => [
@@ -135,17 +151,22 @@ my %pgdump_runs = (
            "$tempdir/defaults_tar_format.tar", ], },
    exclude_dump_test_schema => {
        dump_cmd => [
-           'pg_dump', "--file=$tempdir/exclude_dump_test_schema.sql",
-           '--exclude-schema=dump_test', 'postgres', ], },
+           'pg_dump',
+           '--no-sync',
+           "--file=$tempdir/exclude_dump_test_schema.sql",
+           '--exclude-schema=dump_test',
+           'postgres', ], },
    exclude_test_table => {
        dump_cmd => [
            'pg_dump',
+           '--no-sync',
            "--file=$tempdir/exclude_test_table.sql",
            '--exclude-table=dump_test.test_table',
            'postgres', ], },
    exclude_test_table_data => {
        dump_cmd => [
            'pg_dump',
+           '--no-sync',
            "--file=$tempdir/exclude_test_table_data.sql",
            '--exclude-table-data=dump_test.test_table',
            '--no-unlogged-table-data',
@@ -153,30 +174,52 @@ my %pgdump_runs = (
    pg_dumpall_globals => {
        dump_cmd => [
            'pg_dumpall',                             '-v',
-           "--file=$tempdir/pg_dumpall_globals.sql", '-g', ], },
+           "--file=$tempdir/pg_dumpall_globals.sql", '-g',
+           '--no-sync', ], },
    pg_dumpall_globals_clean => {
        dump_cmd => [
-           'pg_dumpall', "--file=$tempdir/pg_dumpall_globals_clean.sql",
-           '-g',         '-c', ], },
+           'pg_dumpall',
+           "--file=$tempdir/pg_dumpall_globals_clean.sql",
+           '-g',
+           '-c',
+           '--no-sync', ], },
    pg_dumpall_dbprivs => {
-       dump_cmd =>
-         [ 'pg_dumpall', "--file=$tempdir/pg_dumpall_dbprivs.sql", ], },
+       dump_cmd => [
+           'pg_dumpall',
+           '--no-sync',
+           "--file=$tempdir/pg_dumpall_dbprivs.sql", ], },
    no_blobs => {
-       dump_cmd =>
-         [ 'pg_dump', "--file=$tempdir/no_blobs.sql", '-B', 'postgres', ], },
+       dump_cmd => [
+           'pg_dump',
+           '--no-sync',
+           "--file=$tempdir/no_blobs.sql",
+           '-B',
+           'postgres', ], },
    no_privs => {
-       dump_cmd =>
-         [ 'pg_dump', "--file=$tempdir/no_privs.sql", '-x', 'postgres', ], },
+       dump_cmd => [
+           'pg_dump',
+           '--no-sync',
+           "--file=$tempdir/no_privs.sql",
+           '-x',
+           'postgres', ], },
    no_owner => {
-       dump_cmd =>
-         [ 'pg_dump', "--file=$tempdir/no_owner.sql", '-O', 'postgres', ], },
+       dump_cmd => [
+           'pg_dump',
+           '--no-sync',
+           "--file=$tempdir/no_owner.sql",
+           '-O',
+           'postgres', ], },
    only_dump_test_schema => {
        dump_cmd => [
-           'pg_dump', "--file=$tempdir/only_dump_test_schema.sql",
-           '--schema=dump_test', 'postgres', ], },
+           'pg_dump',
+           '--no-sync',
+           "--file=$tempdir/only_dump_test_schema.sql",
+           '--schema=dump_test',
+           'postgres', ], },
    only_dump_test_table => {
        dump_cmd => [
            'pg_dump',
+           '--no-sync',
            "--file=$tempdir/only_dump_test_table.sql",
            '--table=dump_test.test_table',
            '--lock-wait-timeout=1000000',
@@ -184,6 +227,7 @@ my %pgdump_runs = (
    role => {
        dump_cmd => [
            'pg_dump',
+           '--no-sync',
            "--file=$tempdir/role.sql",
            '--role=regress_dump_test_role',
            '--schema=dump_test_second_schema',
@@ -192,6 +236,7 @@ my %pgdump_runs = (
        test_key => 'role',
        dump_cmd => [
            'pg_dump',
+           '--no-sync',
            '--format=directory',
            '--jobs=2',
            "--file=$tempdir/role_parallel",
@@ -204,28 +249,29 @@ my %pgdump_runs = (
    schema_only => {
        dump_cmd => [
            'pg_dump', '--format=plain', "--file=$tempdir/schema_only.sql",
-           '-s', 'postgres', ], },
+           '--no-sync', '-s', 'postgres', ], },
    section_pre_data => {
        dump_cmd => [
            'pg_dump',            "--file=$tempdir/section_pre_data.sql",
            '--include-subscriptions',
-           '--section=pre-data', 'postgres', ], },
+           '--section=pre-data', '--no-sync', 'postgres', ], },
    section_data => {
        dump_cmd => [
            'pg_dump',        "--file=$tempdir/section_data.sql",
-           '--section=data', 'postgres', ], },
+           '--section=data', '--no-sync', 'postgres', ], },
    section_post_data => {
        dump_cmd => [
            'pg_dump',             "--file=$tempdir/section_post_data.sql",
-           '--section=post-data', 'postgres', ], },
+           '--section=post-data', '--no-sync', 'postgres', ], },
    test_schema_plus_blobs => {
        dump_cmd => [
            'pg_dump', "--file=$tempdir/test_schema_plus_blobs.sql",
-           '--schema=dump_test', '-b', '-B', 'postgres', ], },
+
+           '--schema=dump_test', '-b', '-B', '--no-sync', 'postgres', ], },
    with_oids => {
        dump_cmd => [
            'pg_dump',                       '--oids',
-           '--include-subscriptions',
+           '--include-subscriptions',       '--no-sync',
            "--file=$tempdir/with_oids.sql", 'postgres', ], },);
 
 ###############################################################
index 81b5779248590a60f91acb118e008a3f15d32054..55944d10fad71515f2da925ba44dd5f20e651adb 100644 (file)
@@ -59,29 +59,29 @@ $node->command_ok(
        '-U', $dbname4 ],
    'pg_dumpall with long ASCII name 1');
 $node->command_ok(
-   [   'pg_dumpall', '-r', '-f', $discard, '--dbname',
+   [   'pg_dumpall', '--no-sync', '-r', '-f', $discard, '--dbname',
        $node->connstr($dbname2),
        '-U', $dbname3 ],
    'pg_dumpall with long ASCII name 2');
 $node->command_ok(
-   [   'pg_dumpall', '-r', '-f', $discard, '--dbname',
+   [   'pg_dumpall', '--no-sync', '-r', '-f', $discard, '--dbname',
        $node->connstr($dbname3),
        '-U', $dbname2 ],
    'pg_dumpall with long ASCII name 3');
 $node->command_ok(
-   [   'pg_dumpall', '-r', '-f', $discard, '--dbname',
+   [   'pg_dumpall', '--no-sync', '-r', '-f', $discard, '--dbname',
        $node->connstr($dbname4),
        '-U', $dbname1 ],
    'pg_dumpall with long ASCII name 4');
 $node->command_ok(
-   [ 'pg_dumpall', '-r', '-l', 'dbname=template1' ],
+   [ 'pg_dumpall', '--no-sync', '-r', '-l', 'dbname=template1' ],
    'pg_dumpall -l accepts connection string');
 
 $node->run_log([ 'createdb', "foo\n\rbar" ]);
 
 # not sufficient to use -r here
 $node->command_fails(
-   [ 'pg_dumpall', '-f', $discard ],
+   [ 'pg_dumpall', '--no-sync', '-f', $discard ],
    'pg_dumpall with \n\r in database name');
 $node->run_log([ 'dropdb', "foo\n\rbar" ]);
 
@@ -91,7 +91,7 @@ $node->safe_psql($dbname1, 'CREATE TABLE t0()');
 
 # XXX no printed message when this fails, just SIGPIPE termination
 $node->command_ok(
-   [   'pg_dump', '-Fd', '-j2', '-f', $dirfmt,
+   [   'pg_dump', '-Fd', '--no-sync', '-j2', '-f', $dirfmt,
        '-U', $dbname1, $node->connstr($dbname1) ],
    'parallel dump');
 
@@ -112,7 +112,7 @@ $node->command_ok(
    'parallel restore with create');
 
 
-$node->command_ok([ 'pg_dumpall', '-f', $plain, '-U', $dbname1 ],
+$node->command_ok([ 'pg_dumpall', '--no-sync', '-f', $plain, '-U', $dbname1 ],
    'take full dump');
 system_log('cat', $plain);
 my ($stderr, $result);
index cbc525955029b461ba2592fcdb05cbf265157c03..841da034b09766615f7023906c9b4e561ed3a2ca 100644 (file)
@@ -170,7 +170,7 @@ createdb "$dbname2" || createdb_status=$?
 createdb "$dbname3" || createdb_status=$?
 
 if "$MAKE" -C "$oldsrc" installcheck; then
-   pg_dumpall -f "$temp_root"/dump1.sql || pg_dumpall1_status=$?
+   pg_dumpall --no-sync -f "$temp_root"/dump1.sql || pg_dumpall1_status=$?
    if [ "$newsrc" != "$oldsrc" ]; then
        oldpgversion=`psql -X -A -t -d regression -c "SHOW server_version_num"`
        fix_sql=""
@@ -221,7 +221,7 @@ case $testhost in
    *)      sh ./analyze_new_cluster.sh ;;
 esac
 
-pg_dumpall -f "$temp_root"/dump2.sql || pg_dumpall2_status=$?
+pg_dumpall --no-sync -f "$temp_root"/dump2.sql || pg_dumpall2_status=$?
 pg_ctl -m fast stop
 
 # no need to echo commands anymore
index 7b3955aac997ecfcc5e19f0200556aaeeff0894d..3e45ccb005f445d7a68eae57e68193689ea9f231 100644 (file)
@@ -41,16 +41,21 @@ my $tempdir_short = TestLib::tempdir_short;
 my %pgdump_runs = (
    binary_upgrade => {
        dump_cmd => [
-           'pg_dump',       "--file=$tempdir/binary_upgrade.sql",
-           '--schema-only', '--binary-upgrade',
+           'pg_dump',
+           '--no-sync',
+           "--file=$tempdir/binary_upgrade.sql",
+           '--schema-only',
+           '--binary-upgrade',
            '--dbname=postgres', ], },
    clean => {
        dump_cmd => [
            'pg_dump', "--file=$tempdir/clean.sql",
-           '-c',      '--dbname=postgres', ], },
+           '-c',      '--no-sync',
+           '--dbname=postgres', ], },
    clean_if_exists => {
        dump_cmd => [
            'pg_dump',
+           '--no-sync',
            "--file=$tempdir/clean_if_exists.sql",
            '-c',
            '--if-exists',
@@ -58,12 +63,16 @@ my %pgdump_runs = (
            'postgres', ], },
    column_inserts => {
        dump_cmd => [
-           'pg_dump', "--file=$tempdir/column_inserts.sql",
-           '-a',      '--column-inserts',
+           'pg_dump',
+           '--no-sync',
+           "--file=$tempdir/column_inserts.sql",
+           '-a',
+           '--column-inserts',
            'postgres', ], },
    createdb => {
        dump_cmd => [
            'pg_dump',
+           '--no-sync',
            "--file=$tempdir/createdb.sql",
            '-C',
            '-R',                 # no-op, just for testing
@@ -71,6 +80,7 @@ my %pgdump_runs = (
    data_only => {
        dump_cmd => [
            'pg_dump',
+           '--no-sync',
            "--file=$tempdir/data_only.sql",
            '-a',
            '-v',                 # no-op, just make sure it works
@@ -81,7 +91,7 @@ my %pgdump_runs = (
    defaults_custom_format => {
        test_key => 'defaults',
        dump_cmd => [
-           'pg_dump', '-Fc', '-Z6',
+           'pg_dump', '--no-sync', '-Fc', '-Z6',
            "--file=$tempdir/defaults_custom_format.dump", 'postgres', ],
        restore_cmd => [
            'pg_restore',
@@ -90,7 +100,7 @@ my %pgdump_runs = (
    defaults_dir_format => {
        test_key => 'defaults',
        dump_cmd => [
-           'pg_dump',                             '-Fd',
+           'pg_dump', '--no-sync', '-Fd',
            "--file=$tempdir/defaults_dir_format", 'postgres', ],
        restore_cmd => [
            'pg_restore',
@@ -99,8 +109,8 @@ my %pgdump_runs = (
    defaults_parallel => {
        test_key => 'defaults',
        dump_cmd => [
-           'pg_dump', '-Fd', '-j2', "--file=$tempdir/defaults_parallel",
-           'postgres', ],
+           'pg_dump', '--no-sync', '-Fd', '-j2',
+           "--file=$tempdir/defaults_parallel", 'postgres', ],
        restore_cmd => [
            'pg_restore',
            "--file=$tempdir/defaults_parallel.sql",
@@ -108,37 +118,60 @@ my %pgdump_runs = (
    defaults_tar_format => {
        test_key => 'defaults',
        dump_cmd => [
-           'pg_dump',                                 '-Ft',
+           'pg_dump', '--no-sync', '-Ft',
            "--file=$tempdir/defaults_tar_format.tar", 'postgres', ],
        restore_cmd => [
            'pg_restore',
            "--file=$tempdir/defaults_tar_format.sql",
            "$tempdir/defaults_tar_format.tar", ], },
    pg_dumpall_globals => {
-       dump_cmd =>
-         [ 'pg_dumpall', "--file=$tempdir/pg_dumpall_globals.sql", '-g', ],
+       dump_cmd => [
+           'pg_dumpall',
+           '--no-sync',
+           "--file=$tempdir/pg_dumpall_globals.sql",
+           '-g', ],
    },
    no_privs => {
-       dump_cmd =>
-         [ 'pg_dump', "--file=$tempdir/no_privs.sql", '-x', 'postgres', ], },
+       dump_cmd => [
+           'pg_dump',
+           '--no-sync',
+           "--file=$tempdir/no_privs.sql",
+           '-x',
+           'postgres', ], },
    no_owner => {
-       dump_cmd =>
-         [ 'pg_dump', "--file=$tempdir/no_owner.sql", '-O', 'postgres', ], },
+       dump_cmd => [
+           'pg_dump',
+           '--no-sync',
+           "--file=$tempdir/no_owner.sql",
+           '-O',
+           'postgres', ], },
    schema_only => {
-       dump_cmd =>
-         [ 'pg_dump', "--file=$tempdir/schema_only.sql", '-s', 'postgres', ],
+       dump_cmd => [
+           'pg_dump',
+           '--no-sync',
+           "--file=$tempdir/schema_only.sql",
+           '-s',
+           'postgres', ],
    },
    section_pre_data => {
        dump_cmd => [
-           'pg_dump',            "--file=$tempdir/section_pre_data.sql",
-           '--section=pre-data', 'postgres', ], },
+           'pg_dump',
+           '--no-sync',
+            "--file=$tempdir/section_pre_data.sql",
+           '--section=pre-data',
+           'postgres', ], },
    section_data => {
        dump_cmd => [
-           'pg_dump',        "--file=$tempdir/section_data.sql",
-           '--section=data', 'postgres', ], },
+           'pg_dump',
+           '--no-sync',
+           "--file=$tempdir/section_data.sql",
+           '--section=data',
+           'postgres', ], },
    section_post_data => {
        dump_cmd => [
-           'pg_dump',             "--file=$tempdir/section_post_data.sql",
+           'pg_dump',
+           '--no-sync',
+             "--file=$tempdir/section_post_data.sql",
            '--section=post-data', 'postgres', ], },);
 
 ###############################################################