Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit ce044b4

Browse files
kvapkelvich
authored andcommitted
Make polls in tap-test 001 time out eventually.
1 parent f11c34e commit ce044b4

File tree

2 files changed

+24
-5
lines changed

2 files changed

+24
-5
lines changed

Cluster.pm

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,4 +155,22 @@ sub psql
155155
return $node->psql(@args);
156156
}
157157

158+
sub poll
159+
{
160+
my ($self, $poller, $dbname, $pollee, $tries, $delay) = @_;
161+
my $node = $self->{nodes}->[$poller];
162+
for (my $i = 0; $i < $tries; $i++) {
163+
my $psql_out;
164+
my $pollee_plus_1 = $pollee + 1;
165+
$self->psql($poller, $dbname, "select mtm.poll_node($pollee_plus_1, true);", stdout => \$psql_out);
166+
if ($psql_out eq "t") {
167+
return 1;
168+
}
169+
my $tries_left = $tries - $i - 1;
170+
diag("$poller poll for $pollee failed [$tries_left tries left]");
171+
sleep($delay);
172+
}
173+
return 0;
174+
}
175+
158176
1;

t/001_basic_recovery.pl

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
use warnings;
33
use Cluster;
44
use TestLib;
5-
use Test::More tests => 4;
5+
use Test::More tests => 7;
66

77
my $cluster = new Cluster(3);
88
$cluster->init();
@@ -78,10 +78,11 @@
7878
diag("inserting 7 on node 2 (can fail)");
7979
$cluster->psql(1, 'postgres', "insert into t values(7, 70);");
8080

81-
diag("polling node");
82-
$cluster->psql(0, 'postgres', "select mtm.poll_node(3);");
83-
$cluster->psql(1, 'postgres', "select mtm.poll_node(3);");
84-
$cluster->psql(2, 'postgres', "select mtm.poll_node(3);");
81+
diag("polling node 2");
82+
for (my $poller = 0; $poller < 3; $poller++) {
83+
my $pollee = 2;
84+
ok($cluster->poll($poller, 'postgres', $pollee, 10, 1), "node $pollee is online according to node $poller");
85+
}
8586

8687
diag("getting cluster state");
8788
$cluster->psql(0, 'postgres', "select * from mtm.get_cluster_state();", stdout => \$psql_out);

0 commit comments

Comments
 (0)