zookeeper 1.5.3-java → 1.5.4-java
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/build.yml +6 -0
- data/CHANGELOG +3 -0
- data/Gemfile +2 -2
- data/Rakefile +2 -2
- data/ext/Rakefile +2 -2
- data/ext/extconf.rb +2 -2
- data/lib/zookeeper/version.rb +1 -1
- data/spec/c_zookeeper_spec.rb +6 -6
- data/spec/chrooted_connection_spec.rb +8 -8
- data/spec/compatibilty_spec.rb +1 -1
- data/spec/default_watcher_spec.rb +6 -6
- data/spec/em_spec.rb +3 -3
- data/spec/ext/zookeeper_base_spec.rb +1 -1
- data/spec/forked_connection_spec.rb +4 -4
- data/spec/latch_spec.rb +1 -1
- data/spec/shared/all_success_return_values.rb +2 -2
- data/spec/shared/connection_examples.rb +186 -194
- data/spec/spec_helper.rb +2 -2
- data/zookeeper.gemspec +5 -5
- metadata +4 -4
@@ -10,14 +10,6 @@ shared_examples_for "connection" do
|
|
10
10
|
ensure_node(zk, path, data)
|
11
11
|
end
|
12
12
|
|
13
|
-
after :all do
|
14
|
-
logger.warn "running shared examples after :all"
|
15
|
-
|
16
|
-
with_open_zk(connection_string) do |z|
|
17
|
-
rm_rf(z, path)
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
13
|
# unfortunately, we can't test w/o exercising other parts of the driver, so
|
22
14
|
# if "set" is broken, this test will fail as well (but whaddyagonnado?)
|
23
15
|
describe :get do
|
@@ -29,12 +21,12 @@ shared_examples_for "connection" do
|
|
29
21
|
end
|
30
22
|
|
31
23
|
it %[should return the data] do
|
32
|
-
@rv[:data].
|
24
|
+
expect(@rv[:data]).to eq(data)
|
33
25
|
end
|
34
26
|
|
35
27
|
it %[should return a stat] do
|
36
|
-
@rv[:stat].
|
37
|
-
@rv[:stat].
|
28
|
+
expect(@rv[:stat]).not_to be_nil
|
29
|
+
expect(@rv[:stat]).to be_kind_of(Zookeeper::Stat)
|
38
30
|
end
|
39
31
|
end
|
40
32
|
|
@@ -45,23 +37,23 @@ shared_examples_for "connection" do
|
|
45
37
|
@event = nil
|
46
38
|
@watcher = Zookeeper::Callbacks::WatcherCallback.new
|
47
39
|
|
48
|
-
@rv = zk.get(:path => path, :watcher => @watcher, :watcher_context => path)
|
40
|
+
@rv = zk.get(:path => path, :watcher => @watcher, :watcher_context => path)
|
49
41
|
end
|
50
42
|
|
51
43
|
it %[should return the data] do
|
52
|
-
@rv[:data].
|
44
|
+
expect(@rv[:data]).to eq(data)
|
53
45
|
end
|
54
46
|
|
55
47
|
it %[should set a watcher on the node] do
|
56
48
|
# test the watcher by changing node data
|
57
|
-
zk.set(:path => path, :data => 'blah')[:rc].
|
49
|
+
expect(zk.set(:path => path, :data => 'blah')[:rc]).to be_zero
|
58
50
|
|
59
51
|
wait_until(1.0) { @watcher.completed? }
|
60
52
|
|
61
|
-
@watcher.path.
|
62
|
-
@watcher.context.
|
63
|
-
@watcher.
|
64
|
-
@watcher.type.
|
53
|
+
expect(@watcher.path).to eq(path)
|
54
|
+
expect(@watcher.context).to eq(path)
|
55
|
+
expect(@watcher).to be_completed
|
56
|
+
expect(@watcher.type).to eq(Zookeeper::ZOO_CHANGED_EVENT)
|
65
57
|
end
|
66
58
|
end
|
67
59
|
|
@@ -71,22 +63,22 @@ shared_examples_for "connection" do
|
|
71
63
|
|
72
64
|
@rv = zk.get(:path => path, :callback => @cb, :callback_context => path)
|
73
65
|
wait_until(1.0) { @cb.completed? }
|
74
|
-
@cb.
|
66
|
+
expect(@cb).to be_completed
|
75
67
|
end
|
76
68
|
|
77
69
|
it_should_behave_like "all success return values"
|
78
70
|
|
79
71
|
it %[should have a return code of ZOK] do
|
80
|
-
@cb.return_code.
|
72
|
+
expect(@cb.return_code).to eq(Zookeeper::ZOK)
|
81
73
|
end
|
82
74
|
|
83
75
|
it %[should have the stat object in the callback] do
|
84
|
-
@cb.stat.
|
85
|
-
@cb.stat.
|
76
|
+
expect(@cb.stat).not_to be_nil
|
77
|
+
expect(@cb.stat).to be_kind_of(Zookeeper::Stat)
|
86
78
|
end
|
87
79
|
|
88
80
|
it %[should have the data] do
|
89
|
-
@cb.data.
|
81
|
+
expect(@cb.data).to eq(data)
|
90
82
|
end
|
91
83
|
end
|
92
84
|
|
@@ -100,38 +92,38 @@ shared_examples_for "connection" do
|
|
100
92
|
|
101
93
|
@rv = zk.get(:path => path, :callback => @cb, :callback_context => path, :watcher => @watcher, :watcher_context => path)
|
102
94
|
wait_until(1.0) { @cb.completed? }
|
103
|
-
@cb.
|
95
|
+
expect(@cb).to be_completed
|
104
96
|
logger.debug { "-----------------> ASYNC GET REQUEST WITH WATCH COMPLETE <--------------------" }
|
105
97
|
end
|
106
98
|
|
107
99
|
it %[should have the stat object in the callback] do
|
108
|
-
@cb.stat.
|
109
|
-
@cb.stat.
|
100
|
+
expect(@cb.stat).not_to be_nil
|
101
|
+
expect(@cb.stat).to be_kind_of(Zookeeper::Stat)
|
110
102
|
end
|
111
103
|
|
112
104
|
it %[should have the data] do
|
113
|
-
@cb.data.
|
105
|
+
expect(@cb.data).to eq(data)
|
114
106
|
end
|
115
107
|
|
116
108
|
it %[should have a return code of ZOK] do
|
117
|
-
@cb.return_code.
|
109
|
+
expect(@cb.return_code).to eq(Zookeeper::ZOK)
|
118
110
|
end
|
119
111
|
|
120
112
|
it %[should set a watcher on the node] do
|
121
|
-
zk.set(:path => path, :data => 'blah')[:rc].
|
113
|
+
expect(zk.set(:path => path, :data => 'blah')[:rc]).to be_zero
|
122
114
|
|
123
115
|
wait_until(2) { @watcher.completed? }
|
124
116
|
|
125
|
-
@watcher.
|
117
|
+
expect(@watcher).to be_completed
|
126
118
|
|
127
|
-
@watcher.path.
|
128
|
-
@watcher.context.
|
119
|
+
expect(@watcher.path).to eq(path)
|
120
|
+
expect(@watcher.context).to eq(path)
|
129
121
|
end
|
130
122
|
end
|
131
123
|
|
132
124
|
describe 'bad arguments' do
|
133
125
|
it %[should barf with a BadArguments error] do
|
134
|
-
|
126
|
+
expect { zk.get(:bad_arg => 'what!?') }.to raise_error(Zookeeper::Exceptions::BadArguments)
|
135
127
|
end
|
136
128
|
end
|
137
129
|
end # get
|
@@ -151,9 +143,9 @@ shared_examples_for "connection" do
|
|
151
143
|
end
|
152
144
|
|
153
145
|
it %[should return the new stat] do
|
154
|
-
@rv[:stat].
|
155
|
-
@rv[:stat].
|
156
|
-
@rv[:stat].version.
|
146
|
+
expect(@rv[:stat]).not_to be_nil
|
147
|
+
expect(@rv[:stat]).to be_kind_of(Zookeeper::Stat)
|
148
|
+
expect(@rv[:stat].version).to be > @stat.version
|
157
149
|
end
|
158
150
|
end
|
159
151
|
|
@@ -165,9 +157,9 @@ shared_examples_for "connection" do
|
|
165
157
|
end
|
166
158
|
|
167
159
|
it %[should return the new stat] do
|
168
|
-
@rv[:stat].
|
169
|
-
@rv[:stat].
|
170
|
-
@rv[:stat].version.
|
160
|
+
expect(@rv[:stat]).not_to be_nil
|
161
|
+
expect(@rv[:stat]).to be_kind_of(Zookeeper::Stat)
|
162
|
+
expect(@rv[:stat].version).to be > @stat.version
|
171
163
|
end
|
172
164
|
end
|
173
165
|
|
@@ -180,11 +172,11 @@ shared_examples_for "connection" do
|
|
180
172
|
end
|
181
173
|
|
182
174
|
it %[should have a return code of ZBADVERSION] do
|
183
|
-
@rv[:rc].
|
175
|
+
expect(@rv[:rc]).to eq(Zookeeper::ZBADVERSION)
|
184
176
|
end
|
185
177
|
|
186
178
|
it %[should return a stat with !exists] do
|
187
|
-
@rv[:stat].exists.
|
179
|
+
expect(@rv[:stat].exists).to be_falsey
|
188
180
|
end
|
189
181
|
end
|
190
182
|
|
@@ -192,7 +184,7 @@ shared_examples_for "connection" do
|
|
192
184
|
it %[should barf if the data size is too large], :input_size => true do
|
193
185
|
large_data = '0' * (1024 ** 2)
|
194
186
|
|
195
|
-
|
187
|
+
expect { zk.set(:path => path, :data => large_data) }.to raise_error(Zookeeper::Exceptions::DataTooLargeException)
|
196
188
|
end
|
197
189
|
end
|
198
190
|
end # sync
|
@@ -209,16 +201,16 @@ shared_examples_for "connection" do
|
|
209
201
|
@rv = zk.set(:path => path, :data => @new_data, :callback => @cb, :callback_context => path)
|
210
202
|
|
211
203
|
wait_until(2) { @cb.completed? }
|
212
|
-
@cb.
|
204
|
+
expect(@cb).to be_completed
|
213
205
|
end
|
214
206
|
|
215
207
|
it %[should have the stat in the callback] do
|
216
|
-
@cb.stat.
|
217
|
-
@cb.stat.version.
|
208
|
+
expect(@cb.stat).not_to be_nil
|
209
|
+
expect(@cb.stat.version).to be > @stat.version
|
218
210
|
end
|
219
211
|
|
220
212
|
it %[should have a return code of ZOK] do
|
221
|
-
@cb.return_code.
|
213
|
+
expect(@cb.return_code).to eq(Zookeeper::ZOK)
|
222
214
|
end
|
223
215
|
end
|
224
216
|
|
@@ -229,16 +221,16 @@ shared_examples_for "connection" do
|
|
229
221
|
@rv = zk.set(:path => path, :data => @new_data, :callback => @cb, :callback_context => path, :version => @stat.version)
|
230
222
|
|
231
223
|
wait_until(2) { @cb.completed? }
|
232
|
-
@cb.
|
224
|
+
expect(@cb).to be_completed
|
233
225
|
end
|
234
226
|
|
235
227
|
it %[should have the stat in the callback] do
|
236
|
-
@cb.stat.
|
237
|
-
@cb.stat.version.
|
228
|
+
expect(@cb.stat).not_to be_nil
|
229
|
+
expect(@cb.stat.version).to be > @stat.version
|
238
230
|
end
|
239
231
|
|
240
232
|
it %[should have a return code of ZOK] do
|
241
|
-
@cb.return_code.
|
233
|
+
expect(@cb.return_code).to eq(Zookeeper::ZOK)
|
242
234
|
end
|
243
235
|
end
|
244
236
|
|
@@ -250,15 +242,15 @@ shared_examples_for "connection" do
|
|
250
242
|
@rv = zk.set(:path => path, :data => @new_data, :callback => @cb, :callback_context => path, :version => 0)
|
251
243
|
|
252
244
|
wait_until(2) { @cb.completed? }
|
253
|
-
@cb.
|
245
|
+
expect(@cb).to be_completed
|
254
246
|
end
|
255
247
|
|
256
248
|
it %[should have a return code of ZBADVERSION] do
|
257
|
-
@cb.return_code.
|
249
|
+
expect(@cb.return_code).to eq(Zookeeper::ZBADVERSION)
|
258
250
|
end
|
259
251
|
|
260
252
|
it %[should return a stat with !exists] do
|
261
|
-
@cb.stat.exists.
|
253
|
+
expect(@cb.stat.exists).to be_falsey
|
262
254
|
end
|
263
255
|
end
|
264
256
|
|
@@ -266,7 +258,7 @@ shared_examples_for "connection" do
|
|
266
258
|
it %[should barf if the data size is too large], :input_size => true do
|
267
259
|
large_data = '0' * (1024 ** 2)
|
268
260
|
|
269
|
-
|
261
|
+
expect { zk.set(:path => path, :data => large_data, :callback => @cb, :callback_context => path) }.to raise_error(Zookeeper::Exceptions::DataTooLargeException)
|
270
262
|
end
|
271
263
|
end
|
272
264
|
|
@@ -282,7 +274,7 @@ shared_examples_for "connection" do
|
|
282
274
|
# gahhh, this shouldn't be like this.... :P
|
283
275
|
rv = rv.respond_to?(:intValue) ? rv.intValue : rv
|
284
276
|
|
285
|
-
rv.
|
277
|
+
expect(rv).to eq(Zookeeper::ZOK)
|
286
278
|
end
|
287
279
|
end
|
288
280
|
|
@@ -309,17 +301,17 @@ shared_examples_for "connection" do
|
|
309
301
|
end
|
310
302
|
|
311
303
|
it %[should have an array of names of the children] do
|
312
|
-
@rv[:children].
|
313
|
-
@rv[:children].length.
|
314
|
-
@rv[:children].sort.
|
304
|
+
expect(@rv[:children]).to be_kind_of(Array)
|
305
|
+
expect(@rv[:children].length).to eq(3)
|
306
|
+
expect(@rv[:children].sort).to eq(@children.sort)
|
315
307
|
end
|
316
308
|
|
317
309
|
# "Three shall be the number of the counting, and the number of the counting shall be 3"
|
318
310
|
|
319
311
|
it %[should have a stat object whose num_children is 3] do
|
320
|
-
@rv[:stat].
|
321
|
-
@rv[:stat].
|
322
|
-
@rv[:stat].num_children.
|
312
|
+
expect(@rv[:stat]).not_to be_nil
|
313
|
+
expect(@rv[:stat]).to be_kind_of(Zookeeper::Stat)
|
314
|
+
expect(@rv[:stat].num_children).to eq(3)
|
323
315
|
end
|
324
316
|
end
|
325
317
|
|
@@ -339,28 +331,28 @@ shared_examples_for "connection" do
|
|
339
331
|
end
|
340
332
|
|
341
333
|
it %[should have an array of names of the children] do
|
342
|
-
@rv[:children].
|
343
|
-
@rv[:children].length.
|
344
|
-
@rv[:children].sort.
|
334
|
+
expect(@rv[:children]).to be_kind_of(Array)
|
335
|
+
expect(@rv[:children].length).to eq(3)
|
336
|
+
expect(@rv[:children].sort).to eq(@children.sort)
|
345
337
|
end
|
346
338
|
|
347
339
|
it %[should have a stat object whose num_children is 3] do
|
348
|
-
@rv[:stat].
|
349
|
-
@rv[:stat].
|
350
|
-
@rv[:stat].num_children.
|
340
|
+
expect(@rv[:stat]).not_to be_nil
|
341
|
+
expect(@rv[:stat]).to be_kind_of(Zookeeper::Stat)
|
342
|
+
expect(@rv[:stat].num_children).to eq(3)
|
351
343
|
end
|
352
344
|
|
353
345
|
it %[should set a watcher for children on the node] do
|
354
|
-
@watcher.
|
346
|
+
expect(@watcher).not_to be_completed
|
355
347
|
|
356
|
-
zk.create(:path => "#{path}/#{@addtl_child}", :data => '')[:rc].
|
348
|
+
expect(zk.create(:path => "#{path}/#{@addtl_child}", :data => '')[:rc]).to eq(Zookeeper::ZOK)
|
357
349
|
|
358
350
|
wait_until { @watcher.completed? }
|
359
|
-
@watcher.
|
351
|
+
expect(@watcher).to be_completed
|
360
352
|
|
361
|
-
@watcher.path.
|
362
|
-
@watcher.context.
|
363
|
-
@watcher.type.
|
353
|
+
expect(@watcher.path).to eq(path)
|
354
|
+
expect(@watcher.context).to eq(path)
|
355
|
+
expect(@watcher.type).to eq(Zookeeper::ZOO_CHILD_EVENT)
|
364
356
|
end
|
365
357
|
end
|
366
358
|
|
@@ -372,23 +364,23 @@ shared_examples_for "connection" do
|
|
372
364
|
@rv = zk.get_children(:path => path, :callback => @cb, :callback_context => path)
|
373
365
|
|
374
366
|
wait_until { @cb.completed? }
|
375
|
-
@cb.
|
367
|
+
expect(@cb).to be_completed
|
376
368
|
end
|
377
369
|
|
378
370
|
it %[should succeed] do
|
379
|
-
@cb.return_code.
|
371
|
+
expect(@cb.return_code).to eq(Zookeeper::ZOK)
|
380
372
|
end
|
381
373
|
|
382
374
|
it %[should return an array of children] do
|
383
|
-
@cb.children.
|
384
|
-
@cb.children.length.
|
385
|
-
@cb.children.sort.
|
375
|
+
expect(@cb.children).to be_kind_of(Array)
|
376
|
+
expect(@cb.children.length).to eq(3)
|
377
|
+
expect(@cb.children.sort).to eq(@children.sort)
|
386
378
|
end
|
387
379
|
|
388
380
|
it %[should have a stat object whose num_children is 3] do
|
389
|
-
@cb.stat.
|
390
|
-
@cb.stat.
|
391
|
-
@cb.stat.num_children.
|
381
|
+
expect(@cb.stat).not_to be_nil
|
382
|
+
expect(@cb.stat).to be_kind_of(Zookeeper::Stat)
|
383
|
+
expect(@cb.stat.num_children).to eq(3)
|
392
384
|
end
|
393
385
|
end
|
394
386
|
|
@@ -403,7 +395,7 @@ shared_examples_for "connection" do
|
|
403
395
|
|
404
396
|
@rv = zk.get_children(:path => path, :watcher => @watcher, :watcher_context => path, :callback => @cb, :callback_context => path)
|
405
397
|
wait_until { @cb.completed? }
|
406
|
-
@cb.
|
398
|
+
expect(@cb).to be_completed
|
407
399
|
end
|
408
400
|
|
409
401
|
after do
|
@@ -411,32 +403,32 @@ shared_examples_for "connection" do
|
|
411
403
|
end
|
412
404
|
|
413
405
|
it %[should succeed] do
|
414
|
-
@cb.return_code.
|
406
|
+
expect(@cb.return_code).to eq(Zookeeper::ZOK)
|
415
407
|
end
|
416
408
|
|
417
409
|
it %[should return an array of children] do
|
418
|
-
@cb.children.
|
419
|
-
@cb.children.length.
|
420
|
-
@cb.children.sort.
|
410
|
+
expect(@cb.children).to be_kind_of(Array)
|
411
|
+
expect(@cb.children.length).to eq(3)
|
412
|
+
expect(@cb.children.sort).to eq(@children.sort)
|
421
413
|
end
|
422
414
|
|
423
415
|
it %[should have a stat object whose num_children is 3] do
|
424
|
-
@cb.stat.
|
425
|
-
@cb.stat.
|
426
|
-
@cb.stat.num_children.
|
416
|
+
expect(@cb.stat).not_to be_nil
|
417
|
+
expect(@cb.stat).to be_kind_of(Zookeeper::Stat)
|
418
|
+
expect(@cb.stat.num_children).to eq(3)
|
427
419
|
end
|
428
420
|
|
429
421
|
it %[should set a watcher for children on the node] do
|
430
|
-
@watcher.
|
422
|
+
expect(@watcher).not_to be_completed
|
431
423
|
|
432
|
-
zk.create(:path => "#{path}/#{@addtl_child}", :data => '')[:rc].
|
424
|
+
expect(zk.create(:path => "#{path}/#{@addtl_child}", :data => '')[:rc]).to eq(Zookeeper::ZOK)
|
433
425
|
|
434
426
|
wait_until { @watcher.completed? }
|
435
|
-
@watcher.
|
427
|
+
expect(@watcher).to be_completed
|
436
428
|
|
437
|
-
@watcher.path.
|
438
|
-
@watcher.context.
|
439
|
-
@watcher.type.
|
429
|
+
expect(@watcher.path).to eq(path)
|
430
|
+
expect(@watcher.context).to eq(path)
|
431
|
+
expect(@watcher.type).to eq(Zookeeper::ZOO_CHILD_EVENT)
|
440
432
|
end
|
441
433
|
end
|
442
434
|
end
|
@@ -451,20 +443,20 @@ shared_examples_for "connection" do
|
|
451
443
|
|
452
444
|
@rv = zk.get_children(:path => path, :watcher => @watcher, :watcher_context => path, :callback => @cb, :callback_context => path)
|
453
445
|
wait_until { @cb.completed? }
|
454
|
-
@cb.
|
446
|
+
expect(@cb).to be_completed
|
455
447
|
end
|
456
448
|
|
457
449
|
it %[should fire the watcher when the node has been deleted] do
|
458
|
-
@watcher.
|
450
|
+
expect(@watcher).not_to be_completed
|
459
451
|
|
460
|
-
zk.delete(:path => path)[:rc].
|
452
|
+
expect(zk.delete(:path => path)[:rc]).to eq(Zookeeper::ZOK)
|
461
453
|
|
462
454
|
wait_until { @watcher.completed? }
|
463
|
-
@watcher.
|
455
|
+
expect(@watcher).to be_completed
|
464
456
|
|
465
|
-
@watcher.path.
|
466
|
-
@watcher.context.
|
467
|
-
@watcher.type.
|
457
|
+
expect(@watcher.path).to eq(path)
|
458
|
+
expect(@watcher.context).to eq(path)
|
459
|
+
expect(@watcher.type).to eq(Zookeeper::ZOO_DELETED_EVENT)
|
468
460
|
end
|
469
461
|
end
|
470
462
|
end
|
@@ -481,7 +473,7 @@ shared_examples_for "connection" do
|
|
481
473
|
end
|
482
474
|
|
483
475
|
it %[should have a stat object] do
|
484
|
-
@rv[:stat].
|
476
|
+
expect(@rv[:stat]).to be_kind_of(Zookeeper::Stat)
|
485
477
|
end
|
486
478
|
end
|
487
479
|
|
@@ -495,20 +487,20 @@ shared_examples_for "connection" do
|
|
495
487
|
end
|
496
488
|
|
497
489
|
it %[should have a stat object] do
|
498
|
-
@rv[:stat].
|
490
|
+
expect(@rv[:stat]).to be_kind_of(Zookeeper::Stat)
|
499
491
|
end
|
500
492
|
|
501
493
|
it %[should set a watcher for data changes on the node] do
|
502
|
-
@watcher.
|
494
|
+
expect(@watcher).not_to be_completed
|
503
495
|
|
504
|
-
zk.set(:path => path, :data => 'skunk')[:rc].
|
496
|
+
expect(zk.set(:path => path, :data => 'skunk')[:rc]).to eq(Zookeeper::ZOK)
|
505
497
|
|
506
498
|
wait_until { @watcher.completed? }
|
507
|
-
@watcher.
|
499
|
+
expect(@watcher).to be_completed
|
508
500
|
|
509
|
-
@watcher.path.
|
510
|
-
@watcher.context.
|
511
|
-
@watcher.type.
|
501
|
+
expect(@watcher.path).to eq(path)
|
502
|
+
expect(@watcher.context).to eq(path)
|
503
|
+
expect(@watcher.type).to eq(Zookeeper::ZOO_CHANGED_EVENT)
|
512
504
|
end
|
513
505
|
end
|
514
506
|
|
@@ -520,15 +512,15 @@ shared_examples_for "connection" do
|
|
520
512
|
@rv = zk.stat(:path => path, :callback => @cb, :callback_context => path)
|
521
513
|
|
522
514
|
wait_until { @cb.completed? }
|
523
|
-
@cb.
|
515
|
+
expect(@cb).to be_completed
|
524
516
|
end
|
525
517
|
|
526
518
|
it %[should succeed] do
|
527
|
-
@cb.return_code.
|
519
|
+
expect(@cb.return_code).to eq(Zookeeper::ZOK)
|
528
520
|
end
|
529
521
|
|
530
522
|
it %[should have a stat object] do
|
531
|
-
@cb.stat.
|
523
|
+
expect(@cb.stat).to be_kind_of(Zookeeper::Stat)
|
532
524
|
end
|
533
525
|
end
|
534
526
|
|
@@ -544,7 +536,7 @@ shared_examples_for "connection" do
|
|
544
536
|
@rv = zk.stat(:path => path, :callback => @cb, :callback_context => path, :watcher => @watcher, :watcher_context => path)
|
545
537
|
|
546
538
|
wait_until { @cb.completed? }
|
547
|
-
@cb.
|
539
|
+
expect(@cb).to be_completed
|
548
540
|
end
|
549
541
|
|
550
542
|
after do
|
@@ -552,24 +544,24 @@ shared_examples_for "connection" do
|
|
552
544
|
end
|
553
545
|
|
554
546
|
it %[should succeed] do
|
555
|
-
@cb.return_code.
|
547
|
+
expect(@cb.return_code).to eq(Zookeeper::ZOK)
|
556
548
|
end
|
557
549
|
|
558
550
|
it %[should have a stat object] do
|
559
|
-
@cb.stat.
|
551
|
+
expect(@cb.stat).to be_kind_of(Zookeeper::Stat)
|
560
552
|
end
|
561
553
|
|
562
554
|
it %[should set a watcher for data changes on the node] do
|
563
|
-
@watcher.
|
555
|
+
expect(@watcher).not_to be_completed
|
564
556
|
|
565
|
-
zk.set(:path => path, :data => 'skunk')[:rc].
|
557
|
+
expect(zk.set(:path => path, :data => 'skunk')[:rc]).to eq(Zookeeper::ZOK)
|
566
558
|
|
567
559
|
wait_until { @watcher.completed? }
|
568
|
-
@watcher.
|
560
|
+
expect(@watcher).to be_completed
|
569
561
|
|
570
|
-
@watcher.path.
|
571
|
-
@watcher.context.
|
572
|
-
@watcher.type.
|
562
|
+
expect(@watcher.path).to eq(path)
|
563
|
+
expect(@watcher.context).to eq(path)
|
564
|
+
expect(@watcher.type).to eq(Zookeeper::ZOO_CHANGED_EVENT)
|
573
565
|
end
|
574
566
|
end
|
575
567
|
end # stat
|
@@ -585,7 +577,7 @@ shared_examples_for "connection" do
|
|
585
577
|
it %[should barf if the data size is too large], :input_size => true do
|
586
578
|
large_data = '0' * (1024 ** 2)
|
587
579
|
|
588
|
-
|
580
|
+
expect { zk.create(:path => path, :data => large_data) }.to raise_error(Zookeeper::Exceptions::DataTooLargeException)
|
589
581
|
end
|
590
582
|
end
|
591
583
|
|
@@ -597,14 +589,14 @@ shared_examples_for "connection" do
|
|
597
589
|
end
|
598
590
|
|
599
591
|
it %[should return the path that was set] do
|
600
|
-
@rv[:path].
|
592
|
+
expect(@rv[:path]).to eq(path)
|
601
593
|
end
|
602
594
|
|
603
595
|
it %[should have created a permanent node] do
|
604
596
|
st = zk.stat(:path => path)
|
605
|
-
st[:rc].
|
597
|
+
expect(st[:rc]).to eq(Zookeeper::ZOK)
|
606
598
|
|
607
|
-
st[:stat].ephemeral_owner.
|
599
|
+
expect(st[:stat].ephemeral_owner).to eq(0)
|
608
600
|
end
|
609
601
|
end
|
610
602
|
|
@@ -616,14 +608,14 @@ shared_examples_for "connection" do
|
|
616
608
|
end
|
617
609
|
|
618
610
|
it %[should return the path that was set] do
|
619
|
-
@rv[:path].
|
611
|
+
expect(@rv[:path]).to eq(path)
|
620
612
|
end
|
621
613
|
|
622
614
|
it %[should have created a ephemeral node] do
|
623
615
|
st = zk.stat(:path => path)
|
624
|
-
st[:rc].
|
616
|
+
expect(st[:rc]).to eq(Zookeeper::ZOK)
|
625
617
|
|
626
|
-
st[:stat].ephemeral_owner.
|
618
|
+
expect(st[:stat].ephemeral_owner).not_to be_zero
|
627
619
|
end
|
628
620
|
end
|
629
621
|
|
@@ -641,14 +633,14 @@ shared_examples_for "connection" do
|
|
641
633
|
end
|
642
634
|
|
643
635
|
it %[should return the path that was set] do
|
644
|
-
@rv[:path].
|
636
|
+
expect(@rv[:path]).not_to eq(@orig_path)
|
645
637
|
end
|
646
638
|
|
647
639
|
it %[should have created a permanent node] do
|
648
640
|
st = zk.stat(:path => @s_path)
|
649
|
-
st[:rc].
|
641
|
+
expect(st[:rc]).to eq(Zookeeper::ZOK)
|
650
642
|
|
651
|
-
st[:stat].ephemeral_owner.
|
643
|
+
expect(st[:stat].ephemeral_owner).to be_zero
|
652
644
|
end
|
653
645
|
end
|
654
646
|
|
@@ -666,18 +658,18 @@ shared_examples_for "connection" do
|
|
666
658
|
end
|
667
659
|
|
668
660
|
it %[should return the path that was set] do
|
669
|
-
@rv[:path].
|
661
|
+
expect(@rv[:path]).not_to eq(@orig_path)
|
670
662
|
end
|
671
663
|
|
672
664
|
it %[should have created an ephemeral node] do
|
673
665
|
st = zk.stat(:path => @s_path)
|
674
|
-
st[:rc].
|
666
|
+
expect(st[:rc]).to eq(Zookeeper::ZOK)
|
675
667
|
|
676
|
-
st[:stat].ephemeral_owner.
|
668
|
+
expect(st[:stat].ephemeral_owner).not_to be_zero
|
677
669
|
end
|
678
670
|
end
|
679
671
|
|
680
|
-
|
672
|
+
xdescribe :acl do
|
681
673
|
it %[should work] do
|
682
674
|
pending "need to write acl tests"
|
683
675
|
end
|
@@ -695,22 +687,22 @@ shared_examples_for "connection" do
|
|
695
687
|
before do
|
696
688
|
@rv = zk.create(:path => path, :callback => @cb, :callback_context => path)
|
697
689
|
wait_until(2) { @cb.completed? }
|
698
|
-
@cb.
|
690
|
+
expect(@cb).to be_completed
|
699
691
|
end
|
700
692
|
|
701
693
|
it %[should have a path] do
|
702
|
-
@cb.path.
|
694
|
+
expect(@cb.path).not_to be_nil
|
703
695
|
end
|
704
696
|
|
705
697
|
it %[should return the path that was set] do
|
706
|
-
@cb.path.
|
698
|
+
expect(@cb.path).to eq(path)
|
707
699
|
end
|
708
700
|
|
709
701
|
it %[should have created a permanent node] do
|
710
702
|
st = zk.stat(:path => path)
|
711
|
-
st[:rc].
|
703
|
+
expect(st[:rc]).to eq(Zookeeper::ZOK)
|
712
704
|
|
713
|
-
st[:stat].ephemeral_owner.
|
705
|
+
expect(st[:stat].ephemeral_owner).to eq(0)
|
714
706
|
end
|
715
707
|
end
|
716
708
|
|
@@ -718,9 +710,9 @@ shared_examples_for "connection" do
|
|
718
710
|
it %[should barf if the data size is too large], :input_size => true do
|
719
711
|
large_data = '0' * (1024 ** 2)
|
720
712
|
|
721
|
-
|
713
|
+
expect do
|
722
714
|
zk.create(:path => path, :data => large_data, :callback => @cb, :callback_context => path)
|
723
|
-
end.
|
715
|
+
end.to raise_error(Zookeeper::Exceptions::DataTooLargeException)
|
724
716
|
end
|
725
717
|
end
|
726
718
|
|
@@ -731,22 +723,22 @@ shared_examples_for "connection" do
|
|
731
723
|
before do
|
732
724
|
@rv = zk.create(:path => path, :ephemeral => true, :callback => @cb, :callback_context => path)
|
733
725
|
wait_until(2) { @cb.completed? }
|
734
|
-
@cb.
|
726
|
+
expect(@cb).to be_completed
|
735
727
|
end
|
736
728
|
|
737
729
|
it %[should have a path] do
|
738
|
-
@cb.path.
|
730
|
+
expect(@cb.path).not_to be_nil
|
739
731
|
end
|
740
732
|
|
741
733
|
it %[should return the path that was set] do
|
742
|
-
@cb.path.
|
734
|
+
expect(@cb.path).to eq(path)
|
743
735
|
end
|
744
736
|
|
745
737
|
it %[should have created a ephemeral node] do
|
746
738
|
st = zk.stat(:path => path)
|
747
|
-
st[:rc].
|
739
|
+
expect(st[:rc]).to eq(Zookeeper::ZOK)
|
748
740
|
|
749
|
-
st[:stat].ephemeral_owner.
|
741
|
+
expect(st[:stat].ephemeral_owner).not_to be_zero
|
750
742
|
end
|
751
743
|
end
|
752
744
|
|
@@ -758,7 +750,7 @@ shared_examples_for "connection" do
|
|
758
750
|
@rv = zk.create(:path => path, :sequence => true, :callback => @cb, :callback_context => path)
|
759
751
|
|
760
752
|
wait_until(2) { @cb.completed? }
|
761
|
-
@cb.
|
753
|
+
expect(@cb).to be_completed
|
762
754
|
|
763
755
|
@s_path = @cb.path
|
764
756
|
end
|
@@ -768,18 +760,18 @@ shared_examples_for "connection" do
|
|
768
760
|
end
|
769
761
|
|
770
762
|
it %[should have a path] do
|
771
|
-
@cb.path.
|
763
|
+
expect(@cb.path).not_to be_nil
|
772
764
|
end
|
773
765
|
|
774
766
|
it %[should return the path that was set] do
|
775
|
-
@cb.path.
|
767
|
+
expect(@cb.path).not_to eq(@orig_path)
|
776
768
|
end
|
777
769
|
|
778
770
|
it %[should have created a permanent node] do
|
779
771
|
st = zk.stat(:path => @s_path)
|
780
|
-
st[:rc].
|
772
|
+
expect(st[:rc]).to eq(Zookeeper::ZOK)
|
781
773
|
|
782
|
-
st[:stat].ephemeral_owner.
|
774
|
+
expect(st[:stat].ephemeral_owner).to be_zero
|
783
775
|
end
|
784
776
|
end
|
785
777
|
|
@@ -792,7 +784,7 @@ shared_examples_for "connection" do
|
|
792
784
|
path = @rv[:path] # make sure this gets cleaned up
|
793
785
|
|
794
786
|
wait_until(2) { @cb.completed? }
|
795
|
-
@cb.
|
787
|
+
expect(@cb).to be_completed
|
796
788
|
@s_path = @cb.path
|
797
789
|
end
|
798
790
|
|
@@ -801,18 +793,18 @@ shared_examples_for "connection" do
|
|
801
793
|
end
|
802
794
|
|
803
795
|
it %[should have a path] do
|
804
|
-
@cb.path.
|
796
|
+
expect(@cb.path).not_to be_nil
|
805
797
|
end
|
806
798
|
|
807
799
|
it %[should return the path that was set] do
|
808
|
-
@s_path.
|
800
|
+
expect(@s_path).not_to eq(@orig_path)
|
809
801
|
end
|
810
802
|
|
811
803
|
it %[should have created an ephemeral node] do
|
812
804
|
st = zk.stat(:path => @s_path)
|
813
|
-
st[:rc].
|
805
|
+
expect(st[:rc]).to eq(Zookeeper::ZOK)
|
814
806
|
|
815
|
-
st[:stat].ephemeral_owner.
|
807
|
+
expect(st[:stat].ephemeral_owner).not_to be_zero
|
816
808
|
end
|
817
809
|
end # ephemeral_sequence
|
818
810
|
end # async
|
@@ -829,7 +821,7 @@ shared_examples_for "connection" do
|
|
829
821
|
end
|
830
822
|
|
831
823
|
it %[should have deleted the node] do
|
832
|
-
zk.stat(:path => path)[:stat].exists.
|
824
|
+
expect(zk.stat(:path => path)[:stat].exists).to be_falsey
|
833
825
|
end
|
834
826
|
end
|
835
827
|
|
@@ -840,13 +832,13 @@ shared_examples_for "connection" do
|
|
840
832
|
zk.create(:path => path)
|
841
833
|
|
842
834
|
@stat = zk.stat(:path => path)[:stat]
|
843
|
-
@stat.exists.
|
835
|
+
expect(@stat.exists).to be_truthy
|
844
836
|
|
845
837
|
@rv = zk.delete(:path => path, :version => @stat.version)
|
846
838
|
end
|
847
839
|
|
848
840
|
it %[should have deleted the node] do
|
849
|
-
zk.stat(:path => path)[:stat].exists.
|
841
|
+
expect(zk.stat(:path => path)[:stat].exists).to be_falsey
|
850
842
|
end
|
851
843
|
end
|
852
844
|
|
@@ -858,7 +850,7 @@ shared_examples_for "connection" do
|
|
858
850
|
end
|
859
851
|
|
860
852
|
it %[should have a return code of ZBADVERSION] do
|
861
|
-
@rv[:rc].
|
853
|
+
expect(@rv[:rc]).to eq(Zookeeper::ZBADVERSION)
|
862
854
|
end
|
863
855
|
end
|
864
856
|
end # sync
|
@@ -874,15 +866,15 @@ shared_examples_for "connection" do
|
|
874
866
|
before do
|
875
867
|
@rv = zk.delete(:path => path, :callback => @cb, :callback_context => path)
|
876
868
|
wait_until { @cb.completed? }
|
877
|
-
@cb.
|
869
|
+
expect(@cb).to be_completed
|
878
870
|
end
|
879
871
|
|
880
872
|
it %[should have a success return_code] do
|
881
|
-
@cb.return_code.
|
873
|
+
expect(@cb.return_code).to eq(Zookeeper::ZOK)
|
882
874
|
end
|
883
875
|
|
884
876
|
it %[should have deleted the node] do
|
885
|
-
zk.stat(:path => path)[:stat].exists.
|
877
|
+
expect(zk.stat(:path => path)[:stat].exists).to be_falsey
|
886
878
|
end
|
887
879
|
end
|
888
880
|
|
@@ -893,15 +885,15 @@ shared_examples_for "connection" do
|
|
893
885
|
@stat = zk.stat(:path => path)[:stat]
|
894
886
|
@rv = zk.delete(:path => path, :version => @stat.version, :callback => @cb, :callback_context => path)
|
895
887
|
wait_until { @cb.completed? }
|
896
|
-
@cb.
|
888
|
+
expect(@cb).to be_completed
|
897
889
|
end
|
898
890
|
|
899
891
|
it %[should have a success return_code] do
|
900
|
-
@cb.return_code.
|
892
|
+
expect(@cb.return_code).to eq(Zookeeper::ZOK)
|
901
893
|
end
|
902
894
|
|
903
895
|
it %[should have deleted the node] do
|
904
|
-
zk.stat(:path => path)[:stat].exists.
|
896
|
+
expect(zk.stat(:path => path)[:stat].exists).to be_falsey
|
905
897
|
end
|
906
898
|
end
|
907
899
|
|
@@ -911,11 +903,11 @@ shared_examples_for "connection" do
|
|
911
903
|
|
912
904
|
@rv = zk.delete(:path => path, :version => 0, :callback => @cb, :callback_context => path)
|
913
905
|
wait_until { @cb.completed? }
|
914
|
-
@cb.
|
906
|
+
expect(@cb).to be_completed
|
915
907
|
end
|
916
908
|
|
917
909
|
it %[should have a return code of ZBADVERSION] do
|
918
|
-
@cb.return_code.
|
910
|
+
expect(@cb.return_code).to eq(Zookeeper::ZBADVERSION)
|
919
911
|
end
|
920
912
|
end
|
921
913
|
end # async
|
@@ -930,19 +922,19 @@ shared_examples_for "connection" do
|
|
930
922
|
end
|
931
923
|
|
932
924
|
it %[should return a stat for the path] do
|
933
|
-
@rv[:stat].
|
925
|
+
expect(@rv[:stat]).to be_kind_of(Zookeeper::Stat)
|
934
926
|
end
|
935
927
|
|
936
928
|
it %[should return the acls] do
|
937
929
|
acls = @rv[:acl]
|
938
|
-
acls.
|
930
|
+
expect(acls).to be_kind_of(Array)
|
939
931
|
h = acls.first
|
940
932
|
|
941
|
-
h.
|
933
|
+
expect(h).to be_kind_of(Hash)
|
942
934
|
|
943
|
-
h[:perms].
|
944
|
-
h[:id][:scheme].
|
945
|
-
h[:id][:id].
|
935
|
+
expect(h[:perms]).to eq(Zookeeper::ZOO_PERM_ALL)
|
936
|
+
expect(h[:id][:scheme]).to eq('world')
|
937
|
+
expect(h[:id][:id]).to eq('anyone')
|
946
938
|
end
|
947
939
|
end
|
948
940
|
|
@@ -954,29 +946,29 @@ shared_examples_for "connection" do
|
|
954
946
|
@rv = zk.get_acl(:path => path, :callback => @cb, :callback_context => path)
|
955
947
|
|
956
948
|
wait_until(2) { @cb.completed? }
|
957
|
-
@cb.
|
949
|
+
expect(@cb).to be_completed
|
958
950
|
end
|
959
951
|
|
960
952
|
it %[should return a stat for the path] do
|
961
|
-
@cb.stat.
|
953
|
+
expect(@cb.stat).to be_kind_of(Zookeeper::Stat)
|
962
954
|
end
|
963
955
|
|
964
956
|
it %[should return the acls] do
|
965
957
|
acls = @cb.acl
|
966
|
-
acls.
|
958
|
+
expect(acls).to be_kind_of(Array)
|
967
959
|
|
968
960
|
acl = acls.first
|
969
|
-
acl.
|
961
|
+
expect(acl).to be_kind_of(Zookeeper::ACLs::ACL)
|
970
962
|
|
971
|
-
acl.perms.
|
963
|
+
expect(acl.perms).to eq(Zookeeper::ZOO_PERM_ALL)
|
972
964
|
|
973
|
-
acl.id.scheme.
|
974
|
-
acl.id.id.
|
965
|
+
expect(acl.id.scheme).to eq('world')
|
966
|
+
expect(acl.id.id).to eq('anyone')
|
975
967
|
end
|
976
968
|
end
|
977
969
|
end
|
978
970
|
|
979
|
-
|
971
|
+
xdescribe :set_acl do
|
980
972
|
before do
|
981
973
|
@perms = 5
|
982
974
|
@new_acl = [Zookeeper::ACLs::ACL.new(:perms => @perms, :id => Zookeeper::Constants::ZOO_ANYONE_ID_UNSAFE)]
|
@@ -994,13 +986,13 @@ shared_examples_for "connection" do
|
|
994
986
|
|
995
987
|
describe :session_id do
|
996
988
|
it %[should return the session_id as a Fixnum] do
|
997
|
-
zk.session_id.
|
989
|
+
expect(zk.session_id).to be_kind_of(Integer)
|
998
990
|
end
|
999
991
|
end
|
1000
992
|
|
1001
993
|
describe :session_passwd do
|
1002
994
|
it %[should return the session passwd as a String] do
|
1003
|
-
zk.session_passwd.
|
995
|
+
expect(zk.session_passwd).to be_kind_of(String)
|
1004
996
|
end
|
1005
997
|
end
|
1006
998
|
|
@@ -1013,13 +1005,13 @@ shared_examples_for "connection" do
|
|
1013
1005
|
@rv = zk.sync(:path => path, :callback => @cb)
|
1014
1006
|
|
1015
1007
|
wait_until(2) { @cb.completed }
|
1016
|
-
@cb.
|
1008
|
+
expect(@cb).to be_completed
|
1017
1009
|
end
|
1018
1010
|
end
|
1019
1011
|
|
1020
1012
|
describe :errors do
|
1021
1013
|
it %[should barf with BadArguments if :callback is not given] do
|
1022
|
-
|
1014
|
+
expect { zk.sync(:path => path) }.to raise_error(Zookeeper::Exceptions::BadArguments)
|
1023
1015
|
end
|
1024
1016
|
end
|
1025
1017
|
end
|
@@ -1034,11 +1026,11 @@ shared_examples_for "connection" do
|
|
1034
1026
|
|
1035
1027
|
@rv = zk.sync(:path => path, :callback => cb)
|
1036
1028
|
|
1037
|
-
wait_until(2) { @result == true }.
|
1029
|
+
expect(wait_until(2) { @result == true }).to be_truthy
|
1038
1030
|
end
|
1039
1031
|
|
1040
1032
|
it %[should return false when not on the event dispatching thread] do
|
1041
|
-
zk.event_dispatch_thread
|
1033
|
+
expect(zk.event_dispatch_thread?).not_to be_truthy
|
1042
1034
|
end
|
1043
1035
|
end
|
1044
1036
|
|
@@ -1058,7 +1050,7 @@ shared_examples_for "connection" do
|
|
1058
1050
|
end
|
1059
1051
|
|
1060
1052
|
wait_until { zk.closed? }
|
1061
|
-
zk.
|
1053
|
+
expect(zk).to be_closed
|
1062
1054
|
end
|
1063
1055
|
end
|
1064
1056
|
end
|
@@ -1068,11 +1060,11 @@ shared_examples_for "connection" do
|
|
1068
1060
|
it %[should raise an InheritedConnectionError if the current Process.pid is different from the one that created the client] do
|
1069
1061
|
pid = Process.pid
|
1070
1062
|
begin
|
1071
|
-
Process.
|
1072
|
-
|
1063
|
+
allow(Process).to receive(:pid).and_return(-1)
|
1064
|
+
expect { zk.stat(:path => path) }.to raise_error(Zookeeper::Exceptions::InheritedConnectionError)
|
1073
1065
|
ensure
|
1074
1066
|
# ensure we reset this, only want it to fail during the test
|
1075
|
-
Process.
|
1067
|
+
allow(Process).to receive(:pid).and_return(pid)
|
1076
1068
|
end
|
1077
1069
|
end
|
1078
1070
|
end
|