test/gizzmo_spec.rb in gizzmo-0.11.4 vs test/gizzmo_spec.rb in gizzmo-0.12.0
- old
+ new
@@ -438,10 +438,42 @@
link(id("localhost", "s_0_001_replicating"), id("localhost", "s_0_001_a"), 1),
link(id("localhost", "s_0_002_replicating"), id("127.0.0.1", "s_0_0002"), 1),
link(id("localhost", "s_0_002_replicating"), id("localhost", "s_0_002_a"), 1)]
end
+ it "properly re-weights shards" do
+ 1.upto(2) do |i|
+ gizzmo "create TestShard -s Int -d Int localhost/s_0_00#{i}_a"
+ gizzmo "create ReplicatingShard localhost/s_0_00#{i}_replicating"
+ gizzmo "addlink localhost/s_0_00#{i}_replicating localhost/s_0_00#{i}_a 1"
+ gizzmo "addforwarding 0 #{i} localhost/s_0_00#{i}_replicating"
+ end
+ gizzmo "-f reload"
+
+ gizzmo('-f -T0 transform --no-progress --poll-interval=1 --max-copies=1 \
+"ReplicatingShard -> TestShard(localhost,1,Int,Int)" \
+"ReplicatingShard -> TestShard(localhost,3,Int,Int)"').should == <<-EOF
+ReplicatingShard(1) -> TestShard(localhost,1,Int,Int) => ReplicatingShard(1) -> TestShard(localhost,3,Int,Int) :
+ PREPARE
+ add_link(ReplicatingShard -> TestShard/localhost)
+ remove_link(ReplicatingShard -> TestShard/localhost)
+Applied to 2 shards:
+ [0] 1 = localhost/s_0_001_replicating
+ [0] 2 = localhost/s_0_002_replicating
+
+STARTING:
+ [0] 2 = localhost/s_0_002_replicating: ReplicatingShard(1) -> TestShard(localhost,1,Int,Int) => ReplicatingShard(1) -> TestShard(localhost,3,Int,Int)
+FINISHING:
+ [0] 2 = localhost/s_0_002_replicating: ReplicatingShard(1) -> TestShard(localhost,1,Int,Int) => ReplicatingShard(1) -> TestShard(localhost,3,Int,Int)
+STARTING:
+ [0] 1 = localhost/s_0_001_replicating: ReplicatingShard(1) -> TestShard(localhost,1,Int,Int) => ReplicatingShard(1) -> TestShard(localhost,3,Int,Int)
+FINISHING:
+ [0] 1 = localhost/s_0_001_replicating: ReplicatingShard(1) -> TestShard(localhost,1,Int,Int) => ReplicatingShard(1) -> TestShard(localhost,3,Int,Int)
+2 transformations applied. Total time elapsed: 2 seconds
+EOF
+ end
+
it "works with multiple pages" do
1.upto(2) do |i|
gizzmo "create TestShard -s Int -d Int localhost/s_0_00#{i}_a"
gizzmo "create ReplicatingShard localhost/s_0_00#{i}_replicating"
gizzmo "addlink localhost/s_0_00#{i}_replicating localhost/s_0_00#{i}_a 1"
@@ -621,8 +653,95 @@
[0] X = localhost/s_0_00X_replicating: ReplicatingShard(1) -> TestShard(localhost,1) => ReplicatingShard(1) -> TestShard(127.0.0.1,1)
[0] X = localhost/s_0_00X_replicating: ReplicatingShard(1) -> TestShard(localhost,1) => ReplicatingShard(1) -> TestShard(127.0.0.1,1)
[0] X = localhost/s_0_00X_replicating: ReplicatingShard(1) -> TestShard(localhost,1) => ReplicatingShard(1) -> TestShard(127.0.0.1,1)
4 transformations applied. Total time elapsed: 1 second
EOF
+ end
+ end
+
+ describe "create-table" do
+ it "works" do
+ gizzmo('-f -T0,1 create-table --shards=4 --base-name=s \
+1 "ReplicatingShard -> TestShard(127.0.0.1,1)" \
+1 "ReplicatingShard -> TestShard(localhost,1)"').should match(Regexp.new(Regexp.escape(<<-EOF).gsub("X", "\\d")))
+Create tables 0, 1:
+ ReplicatingShard(1) -> TestShard(127.0.0.1,1)
+ for 2 base ids:
+ 288230376151711744
+ 576460752303423488
+ ReplicatingShard(1) -> TestShard(localhost,1)
+ for 2 base ids:
+ 864691128455135232
+ 0
+
+create_shard(ReplicatingShard): s_0_0003
+create_shard(TestShard/127.0.0.1): s_0_0003
+add_link(ReplicatingShard -> TestShard/127.0.0.1): s_0_0003
+set_forwarding(ReplicatingShard): s_0_0003
+create_shard(ReplicatingShard): s_0_0002
+create_shard(TestShard/127.0.0.1): s_0_0002
+add_link(ReplicatingShard -> TestShard/127.0.0.1): s_0_0002
+set_forwarding(ReplicatingShard): s_0_0002
+create_shard(ReplicatingShard): s_0_0001
+create_shard(TestShard/localhost): s_0_0001
+add_link(ReplicatingShard -> TestShard/localhost): s_0_0001
+set_forwarding(ReplicatingShard): s_0_0001
+create_shard(ReplicatingShard): s_0_0000
+create_shard(TestShard/localhost): s_0_0000
+add_link(ReplicatingShard -> TestShard/localhost): s_0_0000
+set_forwarding(ReplicatingShard): s_0_0000
+create_shard(ReplicatingShard): s_1_0003
+create_shard(TestShard/127.0.0.1): s_1_0003
+add_link(ReplicatingShard -> TestShard/127.0.0.1): s_1_0003
+set_forwarding(ReplicatingShard): s_1_0003
+create_shard(ReplicatingShard): s_1_0002
+create_shard(TestShard/127.0.0.1): s_1_0002
+add_link(ReplicatingShard -> TestShard/127.0.0.1): s_1_0002
+set_forwarding(ReplicatingShard): s_1_0002
+create_shard(ReplicatingShard): s_1_0001
+create_shard(TestShard/localhost): s_1_0001
+add_link(ReplicatingShard -> TestShard/localhost): s_1_0001
+set_forwarding(ReplicatingShard): s_1_0001
+create_shard(ReplicatingShard): s_1_0000
+create_shard(TestShard/localhost): s_1_0000
+add_link(ReplicatingShard -> TestShard/localhost): s_1_0000
+set_forwarding(ReplicatingShard): s_1_0000
+ EOF
+
+ nameserver_db[:shards].should == [info("127.0.0.1", "s_0_0002", "TestShard"),
+ info("127.0.0.1", "s_0_0003", "TestShard"),
+ info("127.0.0.1", "s_1_0002", "TestShard"),
+ info("127.0.0.1", "s_1_0003", "TestShard"),
+ info("localhost", "s_0_0000", "TestShard"),
+ info("localhost", "s_0_0000_replicating", "ReplicatingShard"),
+ info("localhost", "s_0_0001", "TestShard"),
+ info("localhost", "s_0_0001_replicating", "ReplicatingShard"),
+ info("localhost", "s_0_0002_replicating", "ReplicatingShard"),
+ info("localhost", "s_0_0003_replicating", "ReplicatingShard"),
+ info("localhost", "s_1_0000", "TestShard"),
+ info("localhost", "s_1_0000_replicating", "ReplicatingShard"),
+ info("localhost", "s_1_0001", "TestShard"),
+ info("localhost", "s_1_0001_replicating", "ReplicatingShard"),
+ info("localhost", "s_1_0002_replicating", "ReplicatingShard"),
+ info("localhost", "s_1_0003_replicating", "ReplicatingShard")]
+
+ nameserver_db[:links].should == [link(id("localhost", "s_0_0000_replicating"), id("localhost", "s_0_0000"), 1),
+ link(id("localhost", "s_0_0001_replicating"), id("localhost", "s_0_0001"), 1),
+ link(id("localhost", "s_0_0002_replicating"), id("127.0.0.1", "s_0_0002"), 1),
+ link(id("localhost", "s_0_0003_replicating"), id("127.0.0.1", "s_0_0003"), 1),
+ link(id("localhost", "s_1_0000_replicating"), id("localhost", "s_1_0000"), 1),
+ link(id("localhost", "s_1_0001_replicating"), id("localhost", "s_1_0001"), 1),
+ link(id("localhost", "s_1_0002_replicating"), id("127.0.0.1", "s_1_0002"), 1),
+ link(id("localhost", "s_1_0003_replicating"), id("127.0.0.1", "s_1_0003"), 1)]
+
+ nameserver_db[:forwardings].should == [forwarding(0, 0, id("localhost", "s_0_0000_replicating")),
+ forwarding(1, 0, id("localhost", "s_1_0000_replicating")),
+ forwarding(0, 288230376151711744, id("localhost", "s_0_0003_replicating")),
+ forwarding(1, 288230376151711744, id("localhost", "s_1_0003_replicating")),
+ forwarding(0, 576460752303423488, id("localhost", "s_0_0002_replicating")),
+ forwarding(1, 576460752303423488, id("localhost", "s_1_0002_replicating")),
+ forwarding(0, 864691128455135232, id("localhost", "s_0_0001_replicating")),
+ forwarding(1, 864691128455135232, id("localhost", "s_1_0001_replicating"))]
+
end
end
end