@@ -468,60 +468,52 @@ def test_close_after_query_sent
468468 def test_kill_cursors
469469 @coll . drop
470470
471- client_cursors = @db . command ( "cursorInfo" => 1 ) [ "clientCursors_size" ]
471+ client_cursors = cursor_count ( @db )
472472
473473 10000 . times do |i |
474474 @coll . insert ( "i" => i )
475475 end
476476
477- assert_equal ( client_cursors ,
478- @db . command ( "cursorInfo" => 1 ) [ "clientCursors_size" ] )
477+ assert_equal ( client_cursors , cursor_count ( @db ) )
479478
480479 10 . times do |i |
481480 @coll . find_one ( )
482481 end
483482
484- assert_equal ( client_cursors ,
485- @db . command ( "cursorInfo" => 1 ) [ "clientCursors_size" ] )
483+ assert_equal ( client_cursors , cursor_count ( @db ) )
486484
487485 10 . times do |i |
488486 a = @coll . find ( )
489487 a . next_document
490488 a . close ( )
491489 end
492490
493- assert_equal ( client_cursors ,
494- @db . command ( "cursorInfo" => 1 ) [ "clientCursors_size" ] )
491+ assert_equal ( client_cursors , cursor_count ( @db ) )
495492
496493 a = @coll . find ( )
497494 a . next_document
498495
499- assert_not_equal ( client_cursors ,
500- @db . command ( "cursorInfo" => 1 ) [ "clientCursors_size" ] )
496+ assert_not_equal ( client_cursors , cursor_count ( @db ) )
501497
502498 a . close ( )
503499
504- assert_equal ( client_cursors ,
505- @db . command ( "cursorInfo" => 1 ) [ "clientCursors_size" ] )
500+ assert_equal ( client_cursors , cursor_count ( @db ) )
506501
507502 a = @coll . find ( { } , :limit => 10 ) . next_document
508503
509- assert_equal ( client_cursors ,
510- @db . command ( "cursorInfo" => 1 ) [ "clientCursors_size" ] )
504+ assert_equal ( client_cursors , cursor_count ( @db ) )
511505
512506 @coll . find ( ) do |cursor |
513507 cursor . next_document
514508 end
515509
516- assert_equal ( client_cursors ,
517- @db . command ( "cursorInfo" => 1 ) [ "clientCursors_size" ] )
510+ assert_equal ( client_cursors , cursor_count ( @db ) )
518511
519512 @coll . find ( ) { |cursor |
520513 cursor . next_document
521514 }
522515
523- assert_equal ( client_cursors ,
524- @db . command ( "cursorInfo" => 1 ) [ "clientCursors_size" ] )
516+ assert_equal ( client_cursors , cursor_count ( @db ) )
525517 end
526518
527519 def test_count_with_fields
@@ -680,4 +672,12 @@ def test_instance_transformation_with_each
680672 assert_instance_of ( klass , instance )
681673 end
682674 end
675+
676+ def cursor_count ( db )
677+ if @version > '2.6.0'
678+ db . command ( "serverStatus" => 1 ) [ "metrics" ] [ "cursor" ] [ "open" ] [ "total" ]
679+ else
680+ db . command ( "cursorInfo" => 1 ) [ "clientCursors_size" ]
681+ end
682+ end
683683end
0 commit comments