Fix pg_basebackup test to original intent
authorPeter Eisentraut <peter_e@gmx.net>
Sun, 24 Sep 2017 02:59:26 +0000 (22:59 -0400)
committerPeter Eisentraut <peter_e@gmx.net>
Sun, 24 Sep 2017 02:59:26 +0000 (22:59 -0400)
One test case was meant to check that pg_basebackup does not succeed
when a slot is specified with -S but WAL streaming is not selected,
which used to require specifying -X stream.  Since -X stream is the
default in PostgreSQL 10, this test case no longer covers that meaning,
but the pg_basebackup invocation happened to fail anyway for the
unrelated reason that the specified replication slot does not exist.  To
fix, move the test case to later in the file where the slot does exist,
and add -X none to the invocation so that it covers the originally meant
behavior.

extracted from a patch by Michael Banck <michael.banck@credativ.de>

src/bin/pg_basebackup/t/010_pg_basebackup.pl

index a00f7b0e1a2e2229fce41039b6996cb840dfcaa8..cce14b83e10697f66c173e9ac6a6b1723f4fa707 100644 (file)
@@ -255,9 +255,6 @@ $node->command_ok(
        'stream',                '--no-slot' ],
    'pg_basebackup -X stream runs with --no-slot');
 
-$node->command_fails(
-   [ 'pg_basebackup', '-D', "$tempdir/fail", '-S', 'slot1' ],
-   'pg_basebackup with replication slot fails without -X stream');
 $node->command_fails(
    [   'pg_basebackup',             '-D',
        "$tempdir/backupxs_sl_fail", '-X',
@@ -271,6 +268,9 @@ my $lsn = $node->safe_psql('postgres',
    q{SELECT restart_lsn FROM pg_replication_slots WHERE slot_name = 'slot1'}
 );
 is($lsn, '', 'restart LSN of new slot is null');
+$node->command_fails(
+   [ 'pg_basebackup', '-D', "$tempdir/fail", '-S', 'slot1', '-X', 'none' ],
+   'pg_basebackup with replication slot fails without WAL streaming');
 $node->command_ok(
    [   'pg_basebackup', '-D', "$tempdir/backupxs_sl", '-X',
        'stream',        '-S', 'slot1' ],