@@ -923,3 +923,55 @@ exports['Correctly receive the APM events for deleteOne'] = {
923
923
} ) ;
924
924
}
925
925
}
926
+
927
+ exports [ 'Ensure killcursor commands are sent on 3.0 or earlier when APM is enabled' ] = {
928
+ metadata : { requires : { topology : [ 'single' , 'replicaset' ] , mongodb : "<=3.0.x" } } ,
929
+
930
+ // The actual test we wish to run
931
+ test : function ( configuration , test ) {
932
+ var started = [ ] ;
933
+ var succeeded = [ ] ;
934
+ var failed = [ ] ;
935
+ var callbackTriggered = false ;
936
+
937
+ var listener = require ( '../..' ) . instrument ( function ( err , instrumentations ) { } ) ;
938
+ var db = configuration . newDbInstance ( { w :1 } , { poolSize :1 , auto_reconnect :false } ) ;
939
+ db . open ( function ( err , db ) {
940
+ var admindb = db . admin ( ) ;
941
+ var cursorCountBefore ;
942
+ var cursorCountAfter ;
943
+
944
+ var collection = db . collection ( 'apm_killcursor_tests' ) ;
945
+
946
+ // make sure collection has records (more than 2)
947
+ collection . insertMany ( [
948
+ { a : 1 } , { a : 2 } , { a : 3 }
949
+ ] , function ( err , r ) {
950
+ test . equal ( null , err ) ;
951
+
952
+ admindb . serverStatus ( function ( err , result ) {
953
+ test . equal ( null , err ) ;
954
+
955
+ cursorCountBefore = result . cursors . clientCursors_size ;
956
+
957
+ var cursor = collection . find ( { } ) . limit ( 2 ) ;
958
+ cursor . toArray ( function ( err , r ) {
959
+ test . equal ( null , err ) ;
960
+ cursor . close ( ) ;
961
+
962
+ admindb . serverStatus ( function ( err , result ) {
963
+ test . equal ( null , err ) ;
964
+
965
+ cursorCountAfter = result . cursors . clientCursors_size ;
966
+ test . equal ( cursorCountBefore , cursorCountAfter ) ;
967
+
968
+ listener . uninstrument ( ) ;
969
+ db . close ( ) ;
970
+ test . done ( ) ;
971
+ } ) ;
972
+ } ) ;
973
+ } ) ;
974
+ } ) ;
975
+ } ) ;
976
+ }
977
+ }
0 commit comments