pg_rewind TAP tests won't run in 'remote' mode

Started by Kingter Wangabout 11 years ago2 messagesbugs
Jump to latest
#1Kingter Wang
tew@vmware.com

Logged by: Kingter Wang
Email address: kingter(at)gmail(dot)com
PostgreSQL version: 9.5
Operating system: RHEL 6.4 64bit
Description:

pg_rewind TAP tests always run in 'local' mode, even when specify test mode to 'remote'.

Symptom
========
See pg_rewind test output on console:
The pg_rewind test still run in local mode, when pass test mode as 'remote':

$cd src/bin/pg_rewind/
$make check
...
... prove -I ../../../src/test/perl/ --verbose t/*.pl :: local
t/001_basic.pl .......
1..4
ok 1 - pg_rewind local
...
...
All tests successful.
...
...prove -I ../../../src/test/perl/ --verbose t/*.pl :: remote
t/001_basic.pl .......
1..4
ok 1 - pg_rewind local
...

Analysis:
=======
The issue should be due to wrongly compare string for equality with '==' operator in perl script below.
In perl, to compare string for equality, should use 'eq' operator rather than '==' which used for
compare equality of number. See details in perl document:http://perlmeme.org/howtos/syntax/comparing_values.html

src/bin/pg_rewind/RewindTest.pm:
sub run_pg_rewind
{
...
if ($test_mode == "local")
{
...
}
elsif ($test_mode == "remote")
{
...
}
}

attached a simple patch for fix the bug.

Note that, the pg_rewind tests will fail against 'remote' mode.
Current 'make check' can pass is because the pg_rewind tests run the 'local' mode twice,
and the 'remote' mode was not touched actually.

With the fix, the 'make check' will fail against 'remote' mode.
$make check
...
...prove -I ../../../src/test/perl/ --verbose t/*.pl :: remote
t/001_basic.pl .......
1..4
not ok 1 - pg_rewind remote

# Failed test 'pg_rewind remote'
# at RewindTest.pm line 236.
not ok 2 - table content: query result matches
...
not ok 3 - truncation: query result matches
....

Best Regards,
Kingter

Attachments:

fix_compare_testmode.patchapplication/octet-stream; name=fix_compare_testmode.patchDownload+2-2
#2Peter Eisentraut
peter_e@gmx.net
In reply to: Kingter Wang (#1)
Re: pg_rewind TAP tests won't run in 'remote' mode

On 4/7/15 3:22 AM, Kingter Wang wrote:

Logged by: Kingter Wang
Email address: kingter(at)gmail(dot)com
PostgreSQL version: 9.5
Operating system: RHEL 6.4 64bit
Description:

pg_rewind TAP tests always run in 'local' mode, even when specify test
mode to 'remote�.

Yes, we already discovered that and are discussing a fix (on -hackers).

--
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs