mongo 1.8.3.rc0 → 1.8.3.rc1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: dec398480b1b7ced8276797d36e9257fecbc1707
4
+ data.tar.gz: 735c75e4d0877dc57cfede2016201a121737af4b
5
+ SHA512:
6
+ metadata.gz: fe1e61dcef314f5ea551c7e1f96ccbeae3aa7969d714c2774dd17a694912267b14f86a3f9c73ccea0d0a3f2b4e3ad72c319c46ab2c9a28001f7a005f7d1de87f
7
+ data.tar.gz: 37d440db17fd4820dabfecf12b4da396ec8912593ef15256fc86e8839a1e3e1952f12bb484165069e5a63dffd4cdcd3eff031393881867b3ce3fea73cb99cea3
Binary file
data.tar.gz.sig CHANGED
Binary file
data/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [travis-img]: https://secure.travis-ci.org/mongodb/mongo-ruby-driver.png
4
4
  [travis-url]: http://travis-ci.org/mongodb/mongo-ruby-driver
5
- [codeclimate-img]: https://codeclimate.com/badge.png
5
+ [codeclimate-img]: https://codeclimate.com/github/mongodb/mongo-ruby-driver.png
6
6
  [codeclimate-url]: https://codeclimate.com/github/mongodb/mongo-ruby-driver
7
7
  [jenkins-img]: https://jenkins.10gen.com/job/mongo-ruby-driver/badge/icon
8
8
  [jenkins-url]: https://jenkins.10gen.com/job/mongo-ruby-driver/
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.8.3.rc0
1
+ 1.8.3.rc1
@@ -324,16 +324,11 @@ module Mongo
324
324
  message.put_int(1)
325
325
  message.put_long(@cursor_id)
326
326
  log(:debug, "Cursor#close #{@cursor_id}")
327
- begin
328
- socket = @pool.checkout
329
- @connection.send_message(
330
- Mongo::Constants::OP_KILL_CURSORS,
331
- message,
332
- :socket => socket
333
- )
334
- ensure
335
- socket.checkin
336
- end
327
+ @connection.send_message(
328
+ Mongo::Constants::OP_KILL_CURSORS,
329
+ message,
330
+ :pool => @pool
331
+ )
337
332
  end
338
333
  @cursor_id = 0
339
334
  @closed = true
@@ -516,7 +511,7 @@ module Mongo
516
511
  message.put_long(@cursor_id)
517
512
  log(:debug, "cursor.refresh() for cursor #{@cursor_id}") if @logger
518
513
 
519
- socket = checkout_socket_from_connection
514
+ socket = @pool.checkout
520
515
 
521
516
  begin
522
517
  results, @n_received, @cursor_id = @connection.receive_message(
@@ -532,7 +527,9 @@ module Mongo
532
527
 
533
528
  def checkout_socket_from_connection
534
529
  begin
535
- if @command && !Mongo::Support::secondary_ok?(@selector)
530
+ if @pool
531
+ socket = @pool.checkout
532
+ elsif @command && !Mongo::Support::secondary_ok?(@selector)
536
533
  socket = @connection.checkout_reader(:primary)
537
534
  else
538
535
  socket = @connection.checkout_reader(@read, @tag_sets, @acceptable_latency)
@@ -542,6 +539,7 @@ module Mongo
542
539
  raise ex
543
540
  end
544
541
  @pool = socket.pool
542
+ #puts "checkout_socket_from_connection caller:#{caller[0][/:in `([^']+)'/,1]} self:#{self.object_id} @pool.port:#{@pool.port}"
545
543
  socket
546
544
  end
547
545
 
@@ -26,10 +26,12 @@ module Mongo
26
26
  add_message_headers(message, operation)
27
27
  packed_message = message.to_s
28
28
 
29
- sock = opts.fetch(:socket, nil)
29
+ sock = nil
30
+ pool = opts.fetch(:pool, nil)
30
31
  begin
31
- if operation == Mongo::Constants::OP_KILL_CURSORS && @read != :primary
32
- sock ||= checkout_reader
32
+ if pool
33
+ #puts "send_message pool.port:#{pool.port}"
34
+ sock = pool.checkout
33
35
  else
34
36
  sock ||= checkout_writer
35
37
  end
@@ -58,6 +58,68 @@ class BSONTest < Test::Unit::TestCase
58
58
  assert_equal doc, @encoder.deserialize(bson)
59
59
  end
60
60
 
61
+ def test_interface
62
+ doc = { 'a' => 1 }
63
+ bson = BSON.serialize(doc)
64
+ assert_equal doc, BSON.deserialize(bson)
65
+ end
66
+
67
+ def test_read_bson_document
68
+ bson_file_data_h_star = ["21000000075f6964005115883c3d75c94d3aa18b63016100000000000000f03f00"]
69
+ strio = StringIO.new(bson_file_data_h_star.pack('H*'))
70
+ bson = BSON.read_bson_document(strio)
71
+ doc = {"_id"=>BSON::ObjectId('5115883c3d75c94d3aa18b63'), "a"=>1.0}
72
+ assert_equal doc, bson
73
+ end
74
+
75
+ def test_bson_ruby_interface
76
+ doc = { 'a' => 1 }
77
+ buf = BSON_RUBY.serialize(doc)
78
+ bson = BSON::BSON_RUBY.new
79
+ bson.instance_variable_set(:@buf, buf)
80
+ assert_equal [12, 0, 0, 0, 16, 97, 0, 1, 0, 0, 0, 0], bson.to_a
81
+ assert_equal "\f\x00\x00\x00\x10a\x00\x01\x00\x00\x00\x00", bson.to_s
82
+ assert_equal [12, 0, 0, 0, 16, 97, 0, 1, 0, 0, 0, 0], bson.unpack
83
+ end
84
+
85
+ def test_bson_ruby_hex_dump
86
+ doc = { 'a' => 1 }
87
+ buf = BSON_RUBY.serialize(doc)
88
+ bson = BSON_RUBY.new
89
+ bson.instance_variable_set(:@buf, buf)
90
+ doc_hex_dump = " 0: 0C 00 00 00 10 61 00 01\n 8: 00 00 00 00"
91
+ assert_equal doc_hex_dump, bson.hex_dump
92
+ end
93
+
94
+ def test_bson_ruby_dbref_not_used
95
+ buf = BSON::ByteBuffer.new
96
+ val = ns = 'namespace'
97
+
98
+ # Make a hole for the length
99
+ len_pos = buf.position
100
+ buf.put_int(0)
101
+
102
+ # Save the string
103
+ start_pos = buf.position
104
+ BSON::BSON_RUBY.serialize_cstr(buf, val)
105
+ end_pos = buf.position
106
+
107
+ # Put the string size in front
108
+ buf.put_int(end_pos - start_pos, len_pos)
109
+
110
+ # Go back to where we were
111
+ buf.position = end_pos
112
+
113
+ oid = ObjectId.new
114
+ buf.put_array(oid.to_a)
115
+ buf.rewind
116
+
117
+ bson = BSON::BSON_RUBY.new
118
+ bson.instance_variable_set(:@buf, buf)
119
+
120
+ assert_equal DBRef.new(ns, oid).to_s, bson.deserialize_dbref_data(buf).to_s
121
+ end
122
+
61
123
  def test_require_hash
62
124
  assert_raise_error InvalidDocument, "takes a Hash" do
63
125
  BSON.serialize('foo')
@@ -191,8 +253,14 @@ class BSONTest < Test::Unit::TestCase
191
253
  end
192
254
 
193
255
  def test_code
194
- doc = {'$where' => Code.new('this.a.b < this.b')}
256
+ code = Code.new('this.a.b < this.b')
257
+ assert_equal 17, code.length
258
+ assert_match /<BSON::Code:.*@data="this.a.b < this.b".*>/, code.inspect
259
+ doc = {'$where' => code}
195
260
  assert_doc_pass(doc)
261
+ code = 'this.c.d < this.e'.to_bson_code # core_ext.rb
262
+ assert_equal BSON::Code, code.class
263
+ assert_equal code, code.to_bson_code
196
264
  end
197
265
 
198
266
  def test_code_with_symbol
@@ -343,8 +411,11 @@ class BSONTest < Test::Unit::TestCase
343
411
 
344
412
  def test_dbref
345
413
  oid = ObjectId.new
414
+ ns = 'namespace'
346
415
  doc = {}
347
- doc['dbref'] = DBRef.new('namespace', oid)
416
+ dbref = DBRef.new(ns, oid)
417
+ assert_equal({"$id"=>oid, "$ns"=>ns}, dbref.to_hash)
418
+ doc['dbref'] = dbref
348
419
  bson = @encoder.serialize(doc)
349
420
  doc2 = @encoder.deserialize(bson)
350
421
 
@@ -15,6 +15,16 @@ class ByteBufferTest < Test::Unit::TestCase
15
15
  assert_equal 0, @buf.length
16
16
  end
17
17
 
18
+ def test_initialize_with_string_and_clear
19
+ @buf = ByteBuffer.new("a")
20
+ assert_equal 1, @buf.size
21
+ assert_equal 1, @buf.position
22
+ @buf.clear
23
+ assert_equal 0, @buf.position
24
+ assert_equal "", @buf.to_s
25
+ assert_equal 0, @buf.size
26
+ end
27
+
18
28
  def test_nil_get_returns_one_byte
19
29
  @buf.put_array([1, 2, 3, 4])
20
30
  @buf.rewind
@@ -202,5 +212,4 @@ class ByteBufferTest < Test::Unit::TestCase
202
212
  assert_not_equal @buf, 123
203
213
  assert_not_equal @buf, nil
204
214
  end
205
-
206
215
  end
@@ -2,6 +2,11 @@ require 'test_helper'
2
2
 
3
3
  class TimestampTest < Test::Unit::TestCase
4
4
 
5
+ def test_timestamp_to_s
6
+ t1 = Timestamp.new(5000, 200)
7
+ assert_equal "seconds: 5000, increment: 200", t1.to_s
8
+ end
9
+
5
10
  def test_timestamp_equality
6
11
  t1 = Timestamp.new(5000, 200)
7
12
  t2 = Timestamp.new(5000, 200)
@@ -840,7 +840,7 @@ class TestCollection < Test::Unit::TestCase
840
840
  r = Code.new("function(k,vals) { return 1; }")
841
841
  oh = BSON::OrderedHash.new
842
842
  oh[:replace] = 'foo'
843
- oh[:db] = 'somedb'
843
+ oh[:db] = MONGO_TEST_DB
844
844
  res = @@test.map_reduce(m, r, :out => (oh))
845
845
  assert res["result"]
846
846
  assert res["counts"]
@@ -3,24 +3,24 @@ require 'test_helper'
3
3
  class TestTimeout < Test::Unit::TestCase
4
4
  def test_op_timeout
5
5
  connection = standard_connection(:op_timeout => 1)
6
-
6
+
7
7
  admin = connection.db('admin')
8
8
 
9
9
  command = {:eval => "sleep(500)"}
10
10
  # Should not timeout
11
11
  assert admin.command(command)
12
-
12
+
13
13
  # Should timeout
14
14
  command = {:eval => "sleep(1500)"}
15
15
  assert_raise Mongo::OperationTimeout do
16
- admin.command(command)
16
+ admin.command(command)
17
17
  end
18
18
  end
19
19
 
20
20
  def test_external_timeout_does_not_leave_socket_in_bad_state
21
21
  client = Mongo::MongoClient.new
22
- db = client['testdb']
23
- coll = db['testcoll']
22
+ db = client[MONGO_TEST_DB]
23
+ coll = db['timeout-tests']
24
24
 
25
25
  # prepare the database
26
26
  coll.drop
@@ -43,14 +43,13 @@ class TestTimeout < Test::Unit::TestCase
43
43
  =begin
44
44
  def test_ssl_op_timeout
45
45
  connection = standard_connection(:op_timeout => 1, :ssl => true)
46
-
46
+
47
47
  coll = connection.db(MONGO_TEST_DB).collection("test")
48
48
  coll.insert({:a => 1})
49
-
50
49
  # Should not timeout
51
50
  assert coll.find_one({"$where" => "sleep(100); return true;"})
52
51
 
53
- # Should timeout
52
+ # Should timeout
54
53
  assert_raise Mongo::OperationTimeout do
55
54
  coll.find_one({"$where" => "sleep(5 * 1000); return true;"})
56
55
  end
@@ -65,9 +65,8 @@ class BasicTest < Test::Unit::TestCase
65
65
  assert_equal @rs.primary_name, [client.host, client.port].join(':')
66
66
  assert_equal client.host, client.primary_pool.host
67
67
  assert_equal client.port, client.primary_pool.port
68
- assert_equal 1, client.secondaries.length
69
- assert_equal 1, client.arbiters.length
70
- assert_equal 1, client.secondary_pools.length
68
+ assert_equal 2, client.secondaries.length
69
+ assert_equal 2, client.secondary_pools.length
71
70
  assert_equal @rs.repl_set_name, client.replica_set_name
72
71
  assert client.secondary_pools.include?(client.read_pool(:secondary))
73
72
  assert_equal 90, client.refresh_interval
@@ -48,7 +48,7 @@ class ClientTest < Test::Unit::TestCase
48
48
 
49
49
  def test_connect_with_primary_stepped_down
50
50
  @client = MongoReplicaSetClient.new @rs.repl_set_seeds
51
- @client[MONGO_TEST_DB]['bar'].save({:a => 1}, {:w => 2})
51
+ @client[MONGO_TEST_DB]['bar'].save({:a => 1}, {:w => 3})
52
52
  assert @client[MONGO_TEST_DB]['bar'].find_one
53
53
 
54
54
  primary = Mongo::MongoClient.new(*@client.primary)
@@ -66,7 +66,7 @@ class ClientTest < Test::Unit::TestCase
66
66
  def test_connect_with_primary_killed
67
67
  @client = MongoReplicaSetClient.new @rs.repl_set_seeds
68
68
  assert @client.connected?
69
- @client[MONGO_TEST_DB]['bar'].save({:a => 1}, {:w => 2})
69
+ @client[MONGO_TEST_DB]['bar'].save({:a => 1}, {:w => 3})
70
70
  assert @client[MONGO_TEST_DB]['bar'].find_one
71
71
 
72
72
  @rs.primary.kill(Signal.list['KILL'])
@@ -96,7 +96,7 @@ class ClientTest < Test::Unit::TestCase
96
96
 
97
97
  #def test_connect_with_first_node_removed
98
98
  # @client = MongoReplicaSetClient.new @rs.repl_set_seeds
99
- # @client[MONGO_TEST_DB]['bar'].save({:a => 1}, {:w => 2})
99
+ # @client[MONGO_TEST_DB]['bar'].save({:a => 1}, {:w => 3})
100
100
  #
101
101
  # old_primary = [@client.primary_pool.host, @client.primary_pool.port]
102
102
  # old_primary_conn = Mongo::MongoClient.new(*old_primary)
@@ -48,11 +48,13 @@ class ConnectionTest < Test::Unit::TestCase
48
48
  ENV['MONGODB_URI'] = "mongodb://#{@rs.repl_set_seeds_uri}?replicaset=#{@rs.repl_set_name}"
49
49
  @connection = ReplSetConnection.new
50
50
  assert !@connection.nil?
51
- assert_equal 2, @connection.seeds.length
51
+ assert_equal 3, @connection.seeds.length
52
52
  assert_equal @rs.replicas[0].host, @connection.seeds[0][0]
53
53
  assert_equal @rs.replicas[1].host, @connection.seeds[1][0]
54
+ assert_equal @rs.replicas[2].host, @connection.seeds[2][0]
54
55
  assert_equal @rs.replicas[0].port, @connection.seeds[0][1]
55
56
  assert_equal @rs.replicas[1].port, @connection.seeds[1][1]
57
+ assert_equal @rs.replicas[2].port, @connection.seeds[2][1]
56
58
  assert_equal @rs.repl_set_name, @connection.replica_set_name
57
59
  assert @connection.connected?
58
60
  end
@@ -61,11 +63,13 @@ class ConnectionTest < Test::Unit::TestCase
61
63
  ENV['MONGODB_URI'] = "mongodb://#{@rs.repl_set_seeds_uri}?replicaset=#{@rs.repl_set_name}"
62
64
  @connection = Connection.from_uri
63
65
  assert !@connection.nil?
64
- assert_equal 2, @connection.seeds.length
66
+ assert_equal 3, @connection.seeds.length
65
67
  assert_equal @rs.replicas[0].host, @connection.seeds[0][0]
66
68
  assert_equal @rs.replicas[1].host, @connection.seeds[1][0]
69
+ assert_equal @rs.replicas[2].host, @connection.seeds[2][0]
67
70
  assert_equal @rs.replicas[0].port, @connection.seeds[0][1]
68
71
  assert_equal @rs.replicas[1].port, @connection.seeds[1][1]
72
+ assert_equal @rs.replicas[2].port, @connection.seeds[2][1]
69
73
  assert_equal @rs.repl_set_name, @connection.replica_set_name
70
74
  assert @connection.connected?
71
75
  end
@@ -17,7 +17,7 @@ class ReplicaSetCountTest < Test::Unit::TestCase
17
17
  end
18
18
 
19
19
  def test_correct_count_after_insertion_reconnect
20
- @coll.insert({:a => 20}, :w => 2, :wtimeout => 10000)
20
+ @coll.insert({:a => 20}, :w => 3, :wtimeout => 10000)
21
21
  assert_equal 1, @coll.count
22
22
 
23
23
  # Kill the current master node
@@ -32,7 +32,7 @@ class ReplicaSetCountTest < Test::Unit::TestCase
32
32
  end
33
33
 
34
34
  def test_count_command_sent_to_primary
35
- @coll.insert({:a => 20}, :w => 2, :wtimeout => 10000)
35
+ @coll.insert({:a => 20}, :w => 3, :wtimeout => 10000)
36
36
  count_before = @primary['admin'].command({:serverStatus => 1})['opcounters']['command']
37
37
  assert_equal 1, @coll.count
38
38
  count_after = @primary['admin'].command({:serverStatus => 1})['opcounters']['command']
@@ -40,7 +40,7 @@ class ReplicaSetCountTest < Test::Unit::TestCase
40
40
  end
41
41
 
42
42
  def test_count_with_read
43
- @coll.insert({:a => 20}, :w => 2, :wtimeout => 10000)
43
+ @coll.insert({:a => 20}, :w => 3, :wtimeout => 10000)
44
44
  count_before = @primary['admin'].command({:serverStatus => 1})['opcounters']['command']
45
45
  assert_equal 1, @coll.count(:read => :secondary)
46
46
  assert_equal 1, @coll.find({}, :read => :secondary).count()
@@ -6,24 +6,44 @@ class ReplicaSetCursorTest < Test::Unit::TestCase
6
6
  ensure_cluster(:rs)
7
7
  end
8
8
 
9
+ def test_get_more_primary
10
+ setup_client(:primary)
11
+ cursor_get_more_test(:primary)
12
+ end
13
+
14
+ def test_get_more_secondary
15
+ setup_client(:secondary)
16
+ cursor_get_more_test(:secondary)
17
+ end
18
+
19
+ def test_close_primary
20
+ setup_client(:primary)
21
+ kill_cursor_test(:primary)
22
+ end
23
+
24
+ def test_close_secondary
25
+ setup_client(:secondary)
26
+ kill_cursor_test(:secondary)
27
+ end
28
+
9
29
  def test_cursors_get_closed
10
30
  setup_client
11
- assert_cursor_count
31
+ assert_cursors_on_members
12
32
  end
13
33
 
14
34
  def test_cursors_get_closed_secondary
15
35
  setup_client(:secondary)
16
- assert_cursor_count(:secondary)
36
+ assert_cursors_on_members(:secondary)
17
37
  end
18
38
 
19
- def test_cusors_get_closed_secondary_query
20
- setup_client(:primary, :secondary)
21
- assert_cursor_count(:secondary)
39
+ def test_cursors_get_closed_secondary_query
40
+ setup_client(:primary)
41
+ assert_cursors_on_members(:secondary)
22
42
  end
23
43
 
24
44
  private
25
45
 
26
- def setup_client(read=:primary, route_read=nil)
46
+ def setup_client(read=:primary)
27
47
  route_read ||= read
28
48
  # Setup ReplicaSet Connection
29
49
  @client = MongoReplicaSetClient.new(@rs.repl_set_seeds, :read => read)
@@ -31,41 +51,122 @@ class ReplicaSetCursorTest < Test::Unit::TestCase
31
51
  @db = @client.db(MONGO_TEST_DB)
32
52
  @db.drop_collection("cursor_tests")
33
53
  @coll = @db.collection("cursor_tests")
34
-
35
- @coll.insert({:a => 1}, :w => 2)
36
- @coll.insert({:b => 2}, :w => 2)
37
- @coll.insert({:c => 3}, :w => 2)
38
-
39
- # Pin reader
40
- @coll.find_one
54
+ insert_docs
41
55
 
42
56
  # Setup Direct Connections
43
57
  @primary = Mongo::MongoClient.new(*@client.manager.primary)
44
- @read = Mongo::MongoClient.new(*@client.manager.read_pool(route_read).host_port)
45
58
  end
46
59
 
47
- def cursor_count(client)
48
- client['cursor_tests'].command({:cursorInfo => 1})['totalOpen']
60
+ def insert_docs
61
+ @n_docs = 102 # batch size is 101
62
+ @n_docs.times do |i|
63
+ @coll.insert({ "x" => i }, :w => 3)
64
+ end
49
65
  end
50
66
 
51
- def query_count(client)
52
- client['admin'].command({:serverStatus => 1})['opcounters']['query']
67
+ def set_read_client_and_tag(read)
68
+ read_opts = {:read => read}
69
+ @tag = (0...3).map{|i|i.to_s}.detect do |tag|
70
+ begin
71
+ read_opts[:tag_sets] = [{:node => tag}] unless read == :primary
72
+ cursor = @coll.find({}, read_opts)
73
+ cursor.next
74
+ pool = cursor.instance_variable_get(:@pool)
75
+ cursor.close
76
+ @read = Mongo::MongoClient.new(pool.host, pool.port, :slave_ok => true)
77
+ tag
78
+ rescue Mongo::ConnectionFailure
79
+ false
80
+ end
81
+ end
53
82
  end
54
83
 
55
- def assert_cursor_count(read=:primary)
56
- before_primary_cursor = cursor_count(@primary)
57
- before_read_cursor = cursor_count(@read)
58
- before_read_query = query_count(@read)
59
-
60
- @coll.find({}, :read => read).limit(2).to_a
84
+ def route_query(read)
85
+ read_opts = {:read => read}
86
+ read_opts[:tag_sets] = [{:node => @tag}] unless read == :primary
87
+ object_id = BSON::ObjectId.new
88
+ read_opts[:comment] = object_id
89
+
90
+ # set profiling level to 2 on client and member to which the query will be routed
91
+ @client.db(MONGO_TEST_DB).profiling_level = :all
92
+ @client.secondaries.each do |node|
93
+ node = Mongo::MongoClient.new(node[0], node[1], :slave_ok => true)
94
+ node.db(MONGO_TEST_DB).profiling_level = :all
95
+ end
96
+
97
+ @cursor = @coll.find({}, read_opts)
98
+ @cursor.next
99
+
100
+ # on client and other members set profiling level to 0
101
+ @client.db(MONGO_TEST_DB).profiling_level = :off
102
+ @client.secondaries.each do |node|
103
+ node = Mongo::MongoClient.new(node[0], node[1], :slave_ok => true)
104
+ node.db(MONGO_TEST_DB).profiling_level = :off
105
+ end
106
+ # do a query on system.profile of the reader to see if it was used for the query
107
+ profiled_queries = @read.db(MONGO_TEST_DB).collection('system.profile').find({
108
+ 'ns' => "#{MONGO_TEST_DB}.cursor_tests", "query.$comment" => object_id })
109
+
110
+ assert_equal 1, profiled_queries.count
111
+ end
61
112
 
62
- after_primary_cursor = cursor_count(@primary)
63
- after_read_cursor = cursor_count(@read)
64
- after_read_query = query_count(@read)
113
+ # batch from send_initial_query is 101 documents
114
+ # check that you get n_docs back from the query, with the same port
115
+ def cursor_get_more_test(read=:primary)
116
+ set_read_client_and_tag(read)
117
+ 10.times do
118
+ # assert that the query went to the correct member
119
+ route_query(read)
120
+ docs_count = 1
121
+ port = @cursor.instance_variable_get(:@pool).port
122
+ assert @cursor.alive?
123
+ while @cursor.has_next?
124
+ docs_count += 1
125
+ @cursor.next
126
+ assert_equal port, @cursor.instance_variable_get(:@pool).port
127
+ end
128
+ assert !@cursor.alive?
129
+ assert_equal @n_docs, docs_count
130
+ @cursor.close #cursor is already closed
131
+ end
132
+ end
65
133
 
66
- assert_equal before_primary_cursor, after_primary_cursor
67
- assert_equal before_read_cursor, after_read_cursor
68
- assert_equal 1, after_read_query - before_read_query
134
+ # batch from get_more can be huge, so close after send_initial_query
135
+ def kill_cursor_test(read=:primary)
136
+ set_read_client_and_tag(read)
137
+ 10.times do
138
+ # assert that the query went to the correct member
139
+ route_query(read)
140
+ cursor_id = @cursor.cursor_id
141
+ cursor_clone = @cursor.clone
142
+ assert_equal cursor_id, cursor_clone.cursor_id
143
+ assert @cursor.instance_variable_get(:@pool)
144
+ # .next was called once already and leave one for get more
145
+ (@n_docs-2).times { @cursor.next }
146
+ @cursor.close
147
+ # an exception confirms the cursor has indeed been closed
148
+ assert_raise Mongo::OperationFailure do
149
+ cursor_clone.next
150
+ end
151
+ end
69
152
  end
70
153
 
71
- end
154
+ def assert_cursors_on_members(read=:primary)
155
+ set_read_client_and_tag(read)
156
+ # assert that the query went to the correct member
157
+ route_query(read)
158
+ cursor_id = @cursor.cursor_id
159
+ cursor_clone = @cursor.clone
160
+ assert_equal cursor_id, cursor_clone.cursor_id
161
+ assert @cursor.instance_variable_get(:@pool)
162
+ port = @cursor.instance_variable_get(:@pool).port
163
+ while @cursor.has_next?
164
+ @cursor.next
165
+ assert_equal port, @cursor.instance_variable_get(:@pool).port
166
+ end
167
+ # an exception confirms the cursor has indeed been closed after query
168
+ assert_raise Mongo::OperationFailure do
169
+ cursor_clone.next
170
+ end
171
+ end
172
+ end
@@ -15,7 +15,7 @@ class ReplicaSetInsertTest < Test::Unit::TestCase
15
15
  end
16
16
 
17
17
  def test_insert
18
- @coll.save({:a => 20}, :w => 2)
18
+ @coll.save({:a => 20}, :w => 3)
19
19
 
20
20
  @rs.primary.stop
21
21
 
@@ -40,7 +40,7 @@ class ReplicaSetInsertTest < Test::Unit::TestCase
40
40
  end
41
41
  end
42
42
 
43
- @coll.save({:a => 80}, :w => 2)
43
+ @coll.save({:a => 80}, :w => 3)
44
44
  @coll.find.each {|r| results << r}
45
45
  [20, 30, 40, 50, 60, 70, 80].each do |a|
46
46
  assert results.any? {|r| r['a'] == a}, "Could not find record for a => #{a} on second find"
@@ -15,9 +15,9 @@ class ReplicaSetQueryTest < Test::Unit::TestCase
15
15
  end
16
16
 
17
17
  def test_query
18
- @coll.save({:a => 20}, :w => 2)
19
- @coll.save({:a => 30}, :w => 2)
20
- @coll.save({:a => 40}, :w => 2)
18
+ @coll.save({:a => 20}, :w => 3)
19
+ @coll.save({:a => 30}, :w => 3)
20
+ @coll.save({:a => 40}, :w => 3)
21
21
  results = []
22
22
  @coll.find.each {|r| results << r}
23
23
  [20, 30, 40].each do |a|
@@ -43,7 +43,7 @@ class ReplicaSetQueryTest < Test::Unit::TestCase
43
43
  # primary, where it does not exist.
44
44
  # def test_secondary_getmore
45
45
  # 200.times do |i|
46
- # @coll.save({:a => i}, :w => 2)
46
+ # @coll.save({:a => i}, :w => 3)
47
47
  # end
48
48
  # as = []
49
49
  # # Set an explicit batch size, in case the default ever changes.
@@ -8,40 +8,51 @@ class ReplicaSetRefreshTest < Test::Unit::TestCase
8
8
  end
9
9
 
10
10
  def test_connect_and_manual_refresh_with_secondaries_down
11
- @rs.secondaries.each{|s| s.stop}
11
+ num_secondaries = @rs.secondaries.size
12
12
  client = MongoReplicaSetClient.new(@rs.repl_set_seeds, :refresh_mode => false)
13
13
 
14
- assert_equal Set.new, client.secondaries
14
+ assert_equal num_secondaries, client.secondaries.size
15
15
  assert client.connected?
16
16
  assert_equal client.read_pool, client.primary_pool
17
17
 
18
- # Refresh with no change to set
18
+ @rs.secondaries.each {|s| s.stop}
19
+
19
20
  client.refresh
20
- assert_equal Set.new, client.secondaries
21
+ assert client.secondaries.empty?
21
22
  assert client.connected?
22
23
  assert_equal client.read_pool, client.primary_pool
23
24
 
24
25
  # Test no changes after restart until manual refresh
25
26
  @rs.restart
26
- assert_equal Set.new, client.secondaries
27
+ assert client.secondaries.empty?
27
28
  assert client.connected?
28
29
  assert_equal client.read_pool, client.primary_pool
29
30
 
30
31
  # Refresh and ensure state
31
32
  client.refresh
32
33
  assert_equal client.read_pool, client.primary_pool
33
- assert_equal 1, client.secondaries.length
34
+ assert_equal num_secondaries, client.secondaries.size
34
35
  end
35
36
 
36
37
  def test_automated_refresh_with_secondaries_down
37
- @rs.secondaries.each{|s| s.stop}
38
+ num_secondaries = @rs.secondaries.size
38
39
  client = MongoReplicaSetClient.new(@rs.repl_set_seeds,
39
40
  :refresh_interval => 1, :refresh_mode => :sync, :read => :secondary_preferred)
40
41
 
41
42
  # Ensure secondaries not available and read from primary
42
- assert_equal Set.new, client.secondaries
43
+ assert_equal num_secondaries, client.secondaries.size
43
44
  assert client.connected?
44
- assert client.manager.pools.member?(client.manager.read_pool)
45
+ assert client.secondary_pools.include?(client.read_pool)
46
+
47
+ @rs.secondaries.each{|s| s.stop}
48
+ sleep(2)
49
+
50
+ client['foo']['bar'].find_one
51
+
52
+ assert client.secondaries.empty?
53
+ assert client.connected?
54
+ assert_equal client.read_pool, client.primary_pool
55
+
45
56
  old_refresh_version = client.refresh_version
46
57
 
47
58
  # Restart nodes and ensure refresh interval has passed
@@ -56,7 +67,7 @@ class ReplicaSetRefreshTest < Test::Unit::TestCase
56
67
 
57
68
  assert client.refresh_version > old_refresh_version,
58
69
  "Refresh version hasn't changed."
59
- assert client.secondaries.length == 1,
70
+ assert_equal num_secondaries, client.secondaries.size
60
71
  "No secondaries have been added."
61
72
  assert client.manager.read_pool != client.manager.primary,
62
73
  "Read pool and primary pool are identical."
@@ -66,11 +77,11 @@ class ReplicaSetRefreshTest < Test::Unit::TestCase
66
77
  client = MongoReplicaSetClient.new(@rs.repl_set_seeds,
67
78
  :refresh_interval => 1, :refresh_mode => :sync)
68
79
 
69
- num_secondaries = client.secondary_pools.length
80
+ num_secondaries = client.secondary_pools.size
70
81
  old_refresh_version = client.refresh_version
71
82
 
72
- @rs.kill_secondary
73
- sleep(1)
83
+ @rs.stop_secondary
84
+ sleep(2)
74
85
 
75
86
  assert client.refresh_version == old_refresh_version,
76
87
  "Refresh version has changed."
@@ -79,16 +90,16 @@ class ReplicaSetRefreshTest < Test::Unit::TestCase
79
90
 
80
91
  assert client.refresh_version > old_refresh_version,
81
92
  "Refresh version hasn't changed."
82
- assert_equal num_secondaries - 1, client.secondaries.length
83
- assert_equal num_secondaries - 1, client.secondary_pools.length
93
+ assert_equal num_secondaries - 1, client.secondaries.size
94
+ assert_equal num_secondaries - 1, client.secondary_pools.size
84
95
 
85
- @rs.start
96
+ @rs.restart
86
97
  sleep(2)
87
98
 
88
99
  client['foo']['bar'].find_one
89
100
 
90
- assert_equal num_secondaries, client.secondaries.length
91
- assert_equal num_secondaries, client.secondary_pools.length
101
+ assert_equal num_secondaries, client.secondaries.size
102
+ assert_equal num_secondaries, client.secondary_pools.size
92
103
  end
93
104
  =begin
94
105
  def test_automated_refresh_with_removed_node
@@ -23,13 +23,13 @@ class ReplicaSetAckTest < Test::Unit::TestCase
23
23
 
24
24
  def test_safe_mode_with_w_failure
25
25
  assert_raise_error OperationFailure, "timeout" do
26
- @col.insert({:foo => 1}, :w => 3, :wtimeout => 1, :fsync => true)
26
+ @col.insert({:foo => 1}, :w => 4, :wtimeout => 1, :fsync => true)
27
27
  end
28
28
  assert_raise_error OperationFailure, "timeout" do
29
- @col.update({:foo => 1}, {:foo => 2}, :w => 3, :wtimeout => 1, :fsync => true)
29
+ @col.update({:foo => 1}, {:foo => 2}, :w => 4, :wtimeout => 1, :fsync => true)
30
30
  end
31
31
  assert_raise_error OperationFailure, "timeout" do
32
- @col.remove({:foo => 2}, :w => 3, :wtimeout => 1, :fsync => true)
32
+ @col.remove({:foo => 2}, :w => 4, :wtimeout => 1, :fsync => true)
33
33
  end
34
34
  assert_raise_error OperationFailure do
35
35
  @col.insert({:foo => 3}, :w => "test-tag")
@@ -37,35 +37,35 @@ class ReplicaSetAckTest < Test::Unit::TestCase
37
37
  end
38
38
 
39
39
  def test_safe_mode_replication_ack
40
- @col.insert({:baz => "bar"}, :w => 2, :wtimeout => 5000)
40
+ @col.insert({:baz => "bar"}, :w => 3, :wtimeout => 5000)
41
41
 
42
- assert @col.insert({:foo => "0" * 5000}, :w => 2, :wtimeout => 5000)
42
+ assert @col.insert({:foo => "0" * 5000}, :w => 3, :wtimeout => 5000)
43
43
  assert_equal 2, @slave1[MONGO_TEST_DB]["test-sets"].count
44
44
 
45
- assert @col.update({:baz => "bar"}, {:baz => "foo"}, :w => 2, :wtimeout => 5000)
45
+ assert @col.update({:baz => "bar"}, {:baz => "foo"}, :w => 3, :wtimeout => 5000)
46
46
  assert @slave1[MONGO_TEST_DB]["test-sets"].find_one({:baz => "foo"})
47
47
 
48
48
  assert @col.insert({:foo => "bar"}, :w => "majority")
49
49
 
50
50
  assert @col.insert({:bar => "baz"}, :w => :majority)
51
51
 
52
- assert @col.remove({}, :w => 2, :wtimeout => 5000)
52
+ assert @col.remove({}, :w => 3, :wtimeout => 5000)
53
53
  assert_equal 0, @slave1[MONGO_TEST_DB]["test-sets"].count
54
54
  end
55
55
 
56
56
  def test_last_error_responses
57
57
  20.times { @col.insert({:baz => "bar"}) }
58
- response = @db.get_last_error(:w => 2, :wtimeout => 5000)
58
+ response = @db.get_last_error(:w => 3, :wtimeout => 5000)
59
59
  assert response['ok'] == 1
60
60
  assert response['lastOp']
61
61
 
62
62
  @col.update({}, {:baz => "foo"})
63
- response = @db.get_last_error(:w => 2, :wtimeout => 5000)
63
+ response = @db.get_last_error(:w => 3, :wtimeout => 5000)
64
64
  assert response['ok'] == 1
65
65
  assert response['lastOp']
66
66
 
67
67
  @col.remove({})
68
- response = @db.get_last_error(:w => 2, :wtimeout => 5000)
68
+ response = @db.get_last_error(:w => 3, :wtimeout => 5000)
69
69
  assert response['ok'] == 1
70
70
  assert response['n'] == 20
71
71
  assert response['lastOp']
@@ -7,6 +7,8 @@ if RUBY_VERSION >= '1.9.0' && RUBY_ENGINE == 'ruby'
7
7
  add_group "Mongo", 'lib/mongo'
8
8
  add_group "BSON", 'lib/bson'
9
9
  add_filter "/test/"
10
+ merge_timeout 3600
11
+ command_name ENV['SIMPLECOV_COMMAND_NAME'] if ENV.has_key?('SIMPLECOV_COMMAND_NAME')
10
12
  end
11
13
  end
12
14
  end
@@ -25,7 +25,7 @@ end
25
25
  module Mongo
26
26
  class Config
27
27
  DEFAULT_BASE_OPTS = { :host => 'localhost', :dbpath => 'data', :logpath => 'data/log'}
28
- DEFAULT_REPLICA_SET = DEFAULT_BASE_OPTS.merge( :replicas => 2, :arbiters => 1 )
28
+ DEFAULT_REPLICA_SET = DEFAULT_BASE_OPTS.merge( :replicas => 3, :arbiters => 0 )
29
29
  DEFAULT_SHARDED_SIMPLE = DEFAULT_BASE_OPTS.merge( :shards => 2, :configs => 1, :routers => 4 )
30
30
  DEFAULT_SHARDED_REPLICA = DEFAULT_SHARDED_SIMPLE.merge( :replicas => 3, :arbiters => 0)
31
31
 
@@ -354,7 +354,7 @@ module Mongo
354
354
 
355
355
  def repl_set_config
356
356
  members = []
357
- @config[:replicas].each{|s| members << { :_id => s[:_id], :host => "#{s[:host]}:#{s[:port]}" } }
357
+ @config[:replicas].each{|s| members << { :_id => s[:_id], :host => "#{s[:host]}:#{s[:port]}", :tags => { :node => s[:_id].to_s } } }
358
358
  @config[:arbiters].each{|s| members << { :_id => s[:_id], :host => "#{s[:host]}:#{s[:port]}", :arbiterOnly => true } }
359
359
  {
360
360
  :_id => @config[:replicas].first[:replSet],
@@ -442,12 +442,12 @@ module Mongo
442
442
  members_by_name(secondary_names)
443
443
  end
444
444
 
445
- def kill_primary
446
- primary.kill
445
+ def stop_primary
446
+ primary.stop
447
447
  end
448
448
 
449
- def kill_secondary
450
- secondaries[rand(secondaries.length)].kill
449
+ def stop_secondary
450
+ secondaries[rand(secondaries.length)].stop
451
451
  end
452
452
 
453
453
  def replicas
metadata CHANGED
@@ -1,8 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongo
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.8.3.rc0
5
- prerelease: 6
4
+ version: 1.8.3.rc1
6
5
  platform: ruby
7
6
  authors:
8
7
  - Tyler Brock
@@ -13,52 +12,43 @@ authors:
13
12
  autorequire:
14
13
  bindir: bin
15
14
  cert_chain:
16
- - !binary |-
17
- LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURPRENDQWlDZ0F3SUJB
18
- Z0lCQURBTkJna3Foa2lHOXcwQkFRVUZBREJDTVJRd0VnWURWUVFEREF0a2Nt
19
- bDIKWlhJdGNuVmllVEVWTUJNR0NnbVNKb21UOGl4a0FSa1dCVEV3WjJWdU1S
20
- TXdFUVlLQ1pJbWlaUHlMR1FCR1JZRApZMjl0TUI0WERURXpNREl3TVRFME1U
21
- RXpOMW9YRFRFME1ESXdNVEUwTVRFek4xb3dRakVVTUJJR0ExVUVBd3dMClpI
22
- SnBkbVZ5TFhKMVlua3hGVEFUQmdvSmtpYUprL0lzWkFFWkZnVXhNR2RsYmpF
23
- VE1CRUdDZ21TSm9tVDhpeGsKQVJrV0EyTnZiVENDQVNJd0RRWUpLb1pJaHZj
24
- TkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFORmRTQWE4ZlJtMQpiQU05emE2
25
- WjBmQUg0ZzAyYnFNMU5Hbnc4ekpRckUvUEZyRmZZNklGQ1QyQXNMZk93cjFt
26
- YVZtN2lVMStrZFZJCklRK2lJLzkrRStBckorcmJHVjNkRFBRK1NMbDNtTFQr
27
- dlhqZmpjeE1xSTJJVzZVdVZ0dDJVM1J4ZDRRVTBrZFQKSnhtY1BZczVmRE42
28
- QmdZYzZYWGdVankzbStLd2hhMnBHY3RkY2lVT3dFZk9aNFJtTlJsRVpLQ01M
29
- UkhkRlA4ago0V1RuSlNHZlhEaXVvWElDSmI1eU9QT1pQdWFhcFBTTlhwOTNR
30
- a1Vkc3FkS0MzMkkrS01wS0tZR0JRNnlpc2ZBCjVNeVZQUEN6TFIxbFA1cVhW
31
- R0pQbk9xVUFrdkVVZkNhaGc3RVA5dEkyMHF4aVhyUjZUU0VyYVloSUZYTDBF
32
- R1kKdThLQWNQSG01S2tDQXdFQUFhTTVNRGN3Q1FZRFZSMFRCQUl3QURBZEJn
33
- TlZIUTRFRmdRVVczZFpzWDcwbWxTTQpDaVByWnhBR0ExdndmTmN3Q3dZRFZS
34
- MFBCQVFEQWdTd01BMEdDU3FHU0liM0RRRUJCUVVBQTRJQkFRQ0lhL1k2CnhT
35
- N1lXQnhrbjlXUDBFTW5KM3BZOXZlZjlEVG1MU2kvMmp6OFB6d2xLUTg5ek5U
36
- cnFTVUQ4TG9RWm1CcUNKQnQKZEtTUS9SVW5hSEp1eGg4SFd2V3ViUDhFQllU
37
- dWYrSTFERm5SdjY0OElGM01SMXRDUXVtVkwwWGNZTXZaY3hCagphL3ArOERv
38
- bVdUUXFVZE5iTm9HeXd3anRWQldmRGR3RlY4UG8xWGNOL0F0cElMT0pRZDlK
39
- NzdJTklHR0NIeFpvCjZTT0hIYU5rbmxFOUgwdzZxMFNWeFpLWkk4LysyYzQ0
40
- N1YwTnJISXcxUWhlMHRBR0o5VjF1M2t5OGd5eGUwU00KOHY3ekxGMlhsaVli
41
- ZnVyWUl3a2NYczh5UG44Z2dBcEJJeTliWDZWSnhScy9sMitVdnF6YUhJRmFG
42
- eS9GOC9HUApSTlR1WHNWRzVOREFDbzdRCi0tLS0tRU5EIENFUlRJRklDQVRF
43
- LS0tLS0K
44
- date: 2013-02-14 00:00:00.000000000 Z
15
+ - |
16
+ -----BEGIN CERTIFICATE-----
17
+ MIIDODCCAiCgAwIBAgIBADANBgkqhkiG9w0BAQUFADBCMRQwEgYDVQQDDAtkcml2
18
+ ZXItcnVieTEVMBMGCgmSJomT8ixkARkWBTEwZ2VuMRMwEQYKCZImiZPyLGQBGRYD
19
+ Y29tMB4XDTEzMDIwMTE0MTEzN1oXDTE0MDIwMTE0MTEzN1owQjEUMBIGA1UEAwwL
20
+ ZHJpdmVyLXJ1YnkxFTATBgoJkiaJk/IsZAEZFgUxMGdlbjETMBEGCgmSJomT8ixk
21
+ ARkWA2NvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANFdSAa8fRm1
22
+ bAM9za6Z0fAH4g02bqM1NGnw8zJQrE/PFrFfY6IFCT2AsLfOwr1maVm7iU1+kdVI
23
+ IQ+iI/9+E+ArJ+rbGV3dDPQ+SLl3mLT+vXjfjcxMqI2IW6UuVtt2U3Rxd4QU0kdT
24
+ JxmcPYs5fDN6BgYc6XXgUjy3m+Kwha2pGctdciUOwEfOZ4RmNRlEZKCMLRHdFP8j
25
+ 4WTnJSGfXDiuoXICJb5yOPOZPuaapPSNXp93QkUdsqdKC32I+KMpKKYGBQ6yisfA
26
+ 5MyVPPCzLR1lP5qXVGJPnOqUAkvEUfCahg7EP9tI20qxiXrR6TSEraYhIFXL0EGY
27
+ u8KAcPHm5KkCAwEAAaM5MDcwCQYDVR0TBAIwADAdBgNVHQ4EFgQUW3dZsX70mlSM
28
+ CiPrZxAGA1vwfNcwCwYDVR0PBAQDAgSwMA0GCSqGSIb3DQEBBQUAA4IBAQCIa/Y6
29
+ xS7YWBxkn9WP0EMnJ3pY9vef9DTmLSi/2jz8PzwlKQ89zNTrqSUD8LoQZmBqCJBt
30
+ dKSQ/RUnaHJuxh8HWvWubP8EBYTuf+I1DFnRv648IF3MR1tCQumVL0XcYMvZcxBj
31
+ a/p+8DomWTQqUdNbNoGywwjtVBWfDdwFV8Po1XcN/AtpILOJQd9J77INIGGCHxZo
32
+ 6SOHHaNknlE9H0w6q0SVxZKZI8/+2c447V0NrHIw1Qhe0tAGJ9V1u3ky8gyxe0SM
33
+ 8v7zLF2XliYbfurYIwkcXs8yPn8ggApBIy9bX6VJxRs/l2+UvqzaHIFaFy/F8/GP
34
+ RNTuXsVG5NDACo7Q
35
+ -----END CERTIFICATE-----
36
+ date: 2013-02-27 00:00:00.000000000 Z
45
37
  dependencies:
46
38
  - !ruby/object:Gem::Dependency
47
39
  name: bson
48
40
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
41
  requirements:
51
42
  - - ~>
52
43
  - !ruby/object:Gem::Version
53
- version: 1.8.3.rc0
44
+ version: 1.8.3.rc1
54
45
  type: :runtime
55
46
  prerelease: false
56
47
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
48
  requirements:
59
49
  - - ~>
60
50
  - !ruby/object:Gem::Version
61
- version: 1.8.3.rc0
51
+ version: 1.8.3.rc1
62
52
  description: A Ruby driver for MongoDB. For more information about Mongo, see http://www.mongodb.org.
63
53
  email: mongodb-dev@googlegroups.com
64
54
  executables:
@@ -149,7 +139,6 @@ files:
149
139
  - test/replica_set/read_preference_test.rb
150
140
  - test/replica_set/refresh_test.rb
151
141
  - test/replica_set/replication_ack_test.rb
152
- - test/replica_set/z_cluster_shutdown.rb
153
142
  - test/sharded_cluster/basic_test.rb
154
143
  - test/test_helper.rb
155
144
  - test/threading/basic_test.rb
@@ -172,27 +161,26 @@ files:
172
161
  - test/unit/write_concern_test.rb
173
162
  homepage: http://www.mongodb.org
174
163
  licenses: []
164
+ metadata: {}
175
165
  post_install_message:
176
166
  rdoc_options: []
177
167
  require_paths:
178
168
  - lib
179
169
  required_ruby_version: !ruby/object:Gem::Requirement
180
- none: false
181
170
  requirements:
182
- - - ! '>='
171
+ - - '>='
183
172
  - !ruby/object:Gem::Version
184
173
  version: '0'
185
174
  required_rubygems_version: !ruby/object:Gem::Requirement
186
- none: false
187
175
  requirements:
188
- - - ! '>'
176
+ - - '>'
189
177
  - !ruby/object:Gem::Version
190
178
  version: 1.3.1
191
179
  requirements: []
192
180
  rubyforge_project: mongo
193
- rubygems_version: 1.8.23
181
+ rubygems_version: 2.0.0
194
182
  signing_key:
195
- specification_version: 3
183
+ specification_version: 4
196
184
  summary: Ruby driver for MongoDB
197
185
  test_files:
198
186
  - test/auxillary/1.4_feature_test.rb
@@ -241,7 +229,6 @@ test_files:
241
229
  - test/replica_set/read_preference_test.rb
242
230
  - test/replica_set/refresh_test.rb
243
231
  - test/replica_set/replication_ack_test.rb
244
- - test/replica_set/z_cluster_shutdown.rb
245
232
  - test/sharded_cluster/basic_test.rb
246
233
  - test/test_helper.rb
247
234
  - test/threading/basic_test.rb
metadata.gz.sig CHANGED
Binary file
@@ -1,13 +0,0 @@
1
- require 'test_helper'
2
-
3
- # mock test case to shutdown cluster for rake test:replica_set, must be last by file name sort order
4
- class ZClusterShutdownTest < Test::Unit::TestCase
5
- def setup
6
- ensure_cluster(:rs)
7
- end
8
-
9
- def test_cluster_shutdown
10
- @@force_shutdown = true
11
- end
12
- end
13
-