Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitd0f060a

Browse files
committed
Add TAP test for raftable.
1 parent6980df9 commitd0f060a

File tree

2 files changed

+89
-0
lines changed

2 files changed

+89
-0
lines changed

‎contrib/raftable/Makefile‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ OBJS = raftable.o worker.o state.o blockmem.o
33
EXTENSION = raftable
44
DATA = raftable--1.0.sql
55

6+
EXTRA_INSTALL = contrib/raftable
7+
68
RAFT_PREFIX =$(HOME)/raft
79
overrideLDFLAGS += -L$(RAFT_PREFIX)/lib -Wl,-whole-archive -lraft -Wl,-no-whole-archive
810
overrideCFLAGS += -Wfatal-errors
@@ -18,3 +20,6 @@ top_builddir = ../..
1820
include$(top_builddir)/src/Makefile.global
1921
include$(top_srcdir)/contrib/contrib-global.mk
2022
endif
23+
24+
check:
25+
$(prove_check)

‎contrib/raftable/t/000_basic.pl‎

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
use strict;
2+
use warnings;
3+
4+
use PostgresNode;
5+
use TestLib;
6+
use Test::Moretests=> 4;
7+
8+
subgenstr
9+
{
10+
my$len =shift;
11+
my@chars = ("A".."Z","a".."z");
12+
my$string;
13+
$string .=$chars[rand@chars]for 1..$len;
14+
return$string;
15+
}
16+
17+
subcreate_nodes
18+
{
19+
my$nodenum =shift;
20+
my$nodesref = {};
21+
my@cfg = ();
22+
for (my$i = 0;$i <$nodenum;$i++)
23+
{
24+
$nodesref->{$i} = get_new_node();
25+
my$extranode = get_new_node();# just to find an extra port for raft
26+
push@cfg,"$i:127.0.0.1:${\$extranode->port}"
27+
}
28+
return$nodesref,join(',',@cfg);
29+
}
30+
31+
subinit_nodes
32+
{
33+
my ($nodesref,$cfg) =@_;
34+
print("cfg =$cfg\n");
35+
while (my ($id,$node) =each(%$nodesref))
36+
{
37+
$node->init;
38+
$node->append_conf("postgresql.conf",qq(
39+
shared_preload_libraries = raftable
40+
raftable.id =$id
41+
raftable.peers = '$cfg'
42+
));
43+
}
44+
}
45+
46+
substart_nodes
47+
{
48+
my$nodesref =shift;
49+
while (my ($id,$node) =each(%$nodesref))
50+
{
51+
$node->start;
52+
$node->psql('postgres',"create extension raftable;");
53+
}
54+
}
55+
56+
my ($nodesref,$cfg) = create_nodes(3);
57+
init_nodes($nodesref,$cfg);
58+
start_nodes($nodesref);
59+
60+
my$able =$nodesref->{0};
61+
my$baker =$nodesref->{1};
62+
my$charlie =$nodesref->{2};
63+
64+
my%tests = (
65+
hello=> genstr(1),
66+
and=> genstr(100),
67+
goodbye=> genstr(1000),
68+
world=> genstr(3000),
69+
);
70+
71+
$able->psql('postgres',"select raftable('hello', '$tests{hello}');");
72+
$baker->psql('postgres',"select raftable('and', '$tests{and}');");
73+
$charlie->psql('postgres',"select raftable('goodbye', '$tests{goodbye}');");
74+
#$baker->stop;
75+
$able->psql('postgres',"select raftable('world', '$tests{world}');");
76+
77+
#$baker->start;
78+
while (my ($key,$value) =each(%tests))
79+
{
80+
my$o =$baker->psql('postgres',"select raftable('$key');");
81+
is($o,$value,"Check that baker has all the state replicated");
82+
}
83+
84+
exit(0);

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp