# Checking MongoDB test environment # MongoDB driver version v2.0.3 # BSON::XS codec version v0.6.0 # MongoDB server version v3.6.3 (Standalone) t/00-report-mongod.t ....................... ok 1 - checked MongoDB test environment 1..1 ok t/max_time_ms.t ............................ skipped: $ENV{FAILPOINT_TESTING} is false t/using_profiler.t ......................... # Subtest: aggregation comment ok 1 - aggregate returned a result ok 2 - aggregate returned a result ok 3 - Found aggregate command ok 4 - No comment on first aggregate ok 5 - Found second aggregate command ok 6 - Found comment on second aggregate 1..6 ok 1 - aggregation comment 1..1 ok t/changestreams.t .......................... skipped: MongoDB replica set required t/changestreams_spec.t ..................... # Subtest: change-streams-errors # Subtest: The watch helper must not throw a custom exception when executed against a single server topology, but instead depend on a server error ok 1 - expected error ok 2 - error code 40573 1..2 ok 1 - The watch helper must not throw a custom exception when executed against a single server topology, but instead depend on a server error # Subtest: Change Stream should error when an invalid aggregation stage is passed in 1..0 # SKIP Test only runs on (replicaset) topology ok 2 # skip Test only runs on (replicaset) topology 1..2 ok 1 - change-streams-errors # Subtest: change-streams # Subtest: $changeStream must be the first stage in a change stream pipeline sent to the server 1..0 # SKIP Test only runs on (replicaset) topology ok 1 # skip Test only runs on (replicaset) topology # Subtest: The server returns change stream responses in the specified server response format 1..0 # SKIP Test only runs on (replicaset) topology ok 2 # skip Test only runs on (replicaset) topology # Subtest: Executing a watch helper on a Collection results in notifications for changes to the specified collection 1..0 # SKIP Test only runs on (replicaset) topology ok 3 # skip Test only runs on (replicaset) topology # Subtest: Change Stream should allow valid aggregate pipeline stages 1..0 # SKIP Test only runs on (replicaset) topology ok 4 # skip Test only runs on (replicaset) topology # Subtest: Executing a watch helper on a Database results in notifications for changes to all collections in the specified database. 1..0 # SKIP Test only runs on (replicaset) topology ok 5 # skip Test only runs on (replicaset) topology # Subtest: Executing a watch helper on a MongoClient results in notifications for changes to all collections in all databases in the cluster. 1..0 # SKIP Test only runs on (replicaset) topology ok 6 # skip Test only runs on (replicaset) topology 1..6 ok 2 - change-streams 1..2 ok t/retryable-writes-spec.t .................. skipped: Session support not available t/retryable-writes-split-batch.t ........... skipped: Session support not available t/transactions-spec.t ...................... skipped: $ENV{FAILPOINT_TESTING} is false # # Versions for all modules listed in MYMETA.json (including optional ones): # # === Configure Requires === # # Module Want Have # ------------------- ---- ---- # ExtUtils::MakeMaker 6.17 7.24 # Text::ParseWords any 3.30 # # === Build Requires === # # Module Want Have # ------------------- ---- ---- # ExtUtils::MakeMaker any 7.24 # # === Test Requires === # # Module Want Have # ------------------- ----- -------- # BSON::Decimal128 any v1.10.2 # Data::Dumper any 2.167 # ExtUtils::MakeMaker any 7.24 # File::Compare any 1.1006 # File::Spec any 3.75 # IO::File any 1.39 # JSON::MaybeXS any 1.004000 # Path::Tiny 0.054 0.104 # Storable any 3.11 # Test::Deep 0.111 1.128 # Test::Fatal any 0.014 # Test::More 0.96 1.302120 # lib any 0.64 # threads::shared any 1.56 # utf8 any 1.19 # # === Test Recommends === # # Module Want Have # ------------- -------- -------- # CPAN::Meta 2.120900 2.150010 # Test::Harness 3.31 3.38 # Time::Moment 0.22 missing # # === Runtime Requires === # # Module Want Have # ---------------------- -------- -------- # Authen::SASL::SASLprep any 1.100 # Authen::SCRAM::Client 0.011 0.011 # BSON 1.010001 v1.10.2 # BSON::Bytes any v1.10.2 # BSON::Code any v1.10.2 # BSON::DBRef any v1.10.2 # BSON::OID any v1.10.2 # BSON::Raw any v1.10.2 # BSON::Regex any v1.10.2 # BSON::Time any v1.10.2 # BSON::Timestamp any v1.10.2 # BSON::Types any v1.10.2 # BSON::XS 0.006000 v0.6.0 # Carp any 1.42 # Class::XSAccessor any 1.19 # Compress::Zlib any 2.074 # Digest::MD5 any 2.55 # Encode any 2.88 # Exporter 5.57 5.72 # IO::Socket any 1.39 # List::Util any 1.50 # MIME::Base64 any 3.15 # Math::BigInt any 1.999813 # Moo 2 2.003004 # Moo::Role any 2.003004 # Net::DNS any 1.19_03 # Safe::Isa 1.000007 1.000010 # Scalar::Util any 1.50 # Socket any 2.020_03 # Sub::Defer any 2.005001 # Sub::Quote any 2.005001 # Tie::IxHash any 1.23 # Time::HiRes any 1.9758 # Try::Tiny any 0.30 # Type::Library any 1.004002 # Type::Tiny::XS any 0.014 # Type::Utils any 1.004002 # Types::Standard any 1.004002 # UUID::URandom any 0.001 # boolean 0.25 0.46 # bytes any 1.05 # constant any 1.33 # if any 0.0606 # namespace::clean any 0.27 # overload any 1.28 # re any 0.34 # strict any 1.11 # version any 0.9917 # warnings any 1.37 # # === Runtime Recommends === # # Module Want Have # --------------- -------- -------- # IO::Socket::IP 0.32 0.38 # IO::Socket::SSL 1.42 2.060 # Mozilla::CA 20130114 20160104 # Net::SSLeay 1.49 1.85 # # === Runtime Suggests === # # Module Want Have # --------------- ---- ----- # IO::Socket::SSL 1.56 2.060 # t/00-report-prereqs.t ...................... 1..1 ok 1 ok t/bulk.t ................................... # Subtest: constructors ok 1 - 'initialize_ordered_bulk_op' isa 'MongoDB::BulkWrite' ok 2 - ordered attr is true ok 3 - MongoDB::BulkWrite holds ref to originating Collection ok 4 - 'initialize_unordered_bulk_op' isa 'MongoDB::BulkWrite' ok 5 - ordered attr is false ok 6 - MongoDB::BulkWrite holds ref to originating Collection ok 7 - 'ordered_bulk' isa 'MongoDB::BulkWrite' ok 8 - ordered attr is true ok 9 - MongoDB::BulkWrite holds ref to originating Collection ok 10 - 'unordered_bulk' isa 'MongoDB::BulkWrite' ok 11 - ordered attr is false ok 12 - MongoDB::BulkWrite holds ref to originating Collection 1..12 ok 1 - constructors # QA-477 INSERT # Subtest: initialize_ordered_bulk_op: insert errors ok 1 - insert( EMPTY ) throws an error ok 2 - insert( LIST ) throws an error ok 3 - insert( 'foo' ) throws an error ok 4 - insert( ['foo'] ) throws an error ok 5 - find({})->insert_one({}) throws an error ok 6 - queuing insertion of document with $key is allowed ok 7 - 'executing insertion with $key' isa 'MongoDB::WriteError' 1..7 ok 2 - initialize_ordered_bulk_op: insert errors # Subtest: initialize_ordered_bulk_op: successful insert ok 1 - no docs in collection ok 2 - no error on insert ok 3 - one doc in collection ok 4 - 'result object' isa 'MongoDB::WriteResult' ok 5 - 'result object' isa 'MongoDB::BulkWriteResult' ok 6 - result object correct 1..6 ok 3 - initialize_ordered_bulk_op: successful insert # Subtest: initialize_ordered_bulk_op insert without _id ok 1 - no docs in collection ok 2 - no error on insert ok 3 - one doc in collection ok 4 - 'result object' isa 'MongoDB::BulkWriteResult' ok 5 - result object correct ok 6 - generated ID has our PID 1..6 ok 4 - initialize_ordered_bulk_op insert without _id # Subtest: initialize_unordered_bulk_op: insert errors ok 1 - insert( EMPTY ) throws an error ok 2 - insert( LIST ) throws an error ok 3 - insert( 'foo' ) throws an error ok 4 - insert( ['foo'] ) throws an error ok 5 - find({})->insert_one({}) throws an error ok 6 - queuing insertion of document with $key is allowed ok 7 - 'executing insertion with $key' isa 'MongoDB::WriteError' 1..7 ok 5 - initialize_unordered_bulk_op: insert errors # Subtest: initialize_unordered_bulk_op: successful insert ok 1 - no docs in collection ok 2 - no error on insert ok 3 - one doc in collection ok 4 - 'result object' isa 'MongoDB::WriteResult' ok 5 - 'result object' isa 'MongoDB::BulkWriteResult' ok 6 - result object correct 1..6 ok 6 - initialize_unordered_bulk_op: successful insert # Subtest: initialize_unordered_bulk_op insert without _id ok 1 - no docs in collection ok 2 - no error on insert ok 3 - one doc in collection ok 4 - 'result object' isa 'MongoDB::BulkWriteResult' ok 5 - result object correct ok 6 - generated ID has our PID 1..6 ok 7 - initialize_unordered_bulk_op insert without _id # QA-477 FIND # Subtest: initialize_ordered_bulk_op: find ok 1 - find without doc selector throws exception 1..1 ok 8 - initialize_ordered_bulk_op: find # Subtest: initialize_unordered_bulk_op: find ok 1 - find without doc selector throws exception 1..1 ok 9 - initialize_unordered_bulk_op: find # QA-477 UPDATE and UPDATE_ONE # Subtest: update and update_one errors with initialize_ordered_bulk_op ok 1 - update_many( EMPTY ) throws an error ok 2 - update_many( SCALAR ) throws an error ok 3 - update_many on bulk object (without find) throws an error ok 4 - single non-op key in update_many doc throws exception ok 5 - first non-op key in update_many doc throws exception ok 6 - update_one( EMPTY ) throws an error ok 7 - update_one( SCALAR ) throws an error ok 8 - update_one on bulk object (without find) throws an error ok 9 - single non-op key in update_one doc throws exception ok 10 - first non-op key in update_one doc throws exception 1..10 ok 10 - update and update_one errors with initialize_ordered_bulk_op # Subtest: update all docs with initialize_ordered_bulk_op ok 1 - no error on update ok 2 - 'result object' isa 'MongoDB::BulkWriteResult' ok 3 - result object correct ok 4 - newer server has_modified_count ok 5 - all documents updated 1..5 ok 11 - update all docs with initialize_ordered_bulk_op # Subtest: update only matching docs with initialize_ordered_bulk_op ok 1 - no error on update ok 2 - 'result object' isa 'MongoDB::BulkWriteResult' ok 3 - result object correct ok 4 - all documents updated 1..4 ok 12 - update only matching docs with initialize_ordered_bulk_op # Subtest: update_one with initialize_ordered_bulk_op ok 1 - no error on update ok 2 - 'result object' isa 'MongoDB::BulkWriteResult' ok 3 - result object correct ok 4 - one document updated 1..4 ok 13 - update_one with initialize_ordered_bulk_op # Subtest: update and update_one with collation, using initialize_ordered_bulk_op ok 1 - bulk update_one w/ collation ok 2 - collection updated ok 3 - bulk update_one w/ collation ok 4 - collection updated 1..4 ok 14 - update and update_one with collation, using initialize_ordered_bulk_op # Subtest: update and update_one errors with initialize_unordered_bulk_op ok 1 - update_many( EMPTY ) throws an error ok 2 - update_many( SCALAR ) throws an error ok 3 - update_many on bulk object (without find) throws an error ok 4 - single non-op key in update_many doc throws exception ok 5 - first non-op key in update_many doc throws exception ok 6 - update_one( EMPTY ) throws an error ok 7 - update_one( SCALAR ) throws an error ok 8 - update_one on bulk object (without find) throws an error ok 9 - single non-op key in update_one doc throws exception ok 10 - first non-op key in update_one doc throws exception 1..10 ok 15 - update and update_one errors with initialize_unordered_bulk_op # Subtest: update all docs with initialize_unordered_bulk_op ok 1 - no error on update ok 2 - 'result object' isa 'MongoDB::BulkWriteResult' ok 3 - result object correct ok 4 - newer server has_modified_count ok 5 - all documents updated 1..5 ok 16 - update all docs with initialize_unordered_bulk_op # Subtest: update only matching docs with initialize_unordered_bulk_op ok 1 - no error on update ok 2 - 'result object' isa 'MongoDB::BulkWriteResult' ok 3 - result object correct ok 4 - all documents updated 1..4 ok 17 - update only matching docs with initialize_unordered_bulk_op # Subtest: update_one with initialize_unordered_bulk_op ok 1 - no error on update ok 2 - 'result object' isa 'MongoDB::BulkWriteResult' ok 3 - result object correct ok 4 - one document updated 1..4 ok 18 - update_one with initialize_unordered_bulk_op # Subtest: update and update_one with collation, using initialize_unordered_bulk_op ok 1 - bulk update_one w/ collation ok 2 - collection updated ok 3 - bulk update_one w/ collation ok 4 - collection updated 1..4 ok 19 - update and update_one with collation, using initialize_unordered_bulk_op # QA-477 REPLACE_ONE # Subtest: replace_one errors with initialize_ordered_bulk_op ok 1 - replace_one( EMPTY ) throws an error ok 2 - replace_one( SCALAR ) throws an error ok 3 - replace_one on bulk object (without find) throws an error ok 4 - single op key in replace_one doc throws exception ok 5 - mixed op and non-op key in replace_one doc throws exception 1..5 ok 20 - replace_one errors with initialize_ordered_bulk_op # Subtest: replace_one with initialize_ordered_bulk_op ok 1 - no error on update ok 2 - 'result object' isa 'MongoDB::BulkWriteResult' ok 3 - result object correct ok 4 - only one document replaced 1..4 ok 21 - replace_one with initialize_ordered_bulk_op # Subtest: replace_one with collation, using initialize_ordered_bulk_op ok 1 - bulk replace_one w/ collation ok 2 - collection updated 1..2 ok 22 - replace_one with collation, using initialize_ordered_bulk_op # Subtest: replace_one errors with initialize_unordered_bulk_op ok 1 - replace_one( EMPTY ) throws an error ok 2 - replace_one( SCALAR ) throws an error ok 3 - replace_one on bulk object (without find) throws an error ok 4 - single op key in replace_one doc throws exception ok 5 - mixed op and non-op key in replace_one doc throws exception 1..5 ok 23 - replace_one errors with initialize_unordered_bulk_op # Subtest: replace_one with initialize_unordered_bulk_op ok 1 - no error on update ok 2 - 'result object' isa 'MongoDB::BulkWriteResult' ok 3 - result object correct ok 4 - only one document replaced 1..4 ok 24 - replace_one with initialize_unordered_bulk_op # Subtest: replace_one with collation, using initialize_unordered_bulk_op ok 1 - bulk replace_one w/ collation ok 2 - collection updated 1..2 ok 25 - replace_one with collation, using initialize_unordered_bulk_op # QA-477 UPSERT-UPDATE # Subtest: upsert errors with initialize_ordered_bulk_op ok 1 - upsert on bulk object (without find) throws an error ok 2 - upsert( NONEMPTY ) throws an error 1..2 ok 26 - upsert errors with initialize_ordered_bulk_op # Subtest: upsert-update insertion with initialize_ordered_bulk_op ok 1 - no error on upsert-update ok 2 - 'result object' isa 'MongoDB::BulkWriteResult' ok 3 - result object correct ok 4 - upserted document correct ok 5 - no error on second upsert-update ok 6 - result object correct 1..6 ok 27 - upsert-update insertion with initialize_ordered_bulk_op # Subtest: upsert-update updates with initialize_ordered_bulk_op ok 1 - no error on upsert-update ok 2 - 'result object' isa 'MongoDB::BulkWriteResult' ok 3 - result object correct ok 4 - all documents updated 1..4 ok 28 - upsert-update updates with initialize_ordered_bulk_op # Subtest: upsert-update large doc with initialize_ordered_bulk_op ok 1 - no error on upsert-update ok 2 - 'result object' isa 'MongoDB::BulkWriteResult' ok 3 - result object correct 1..3 ok 29 - upsert-update large doc with initialize_ordered_bulk_op # Subtest: upsert errors with initialize_unordered_bulk_op ok 1 - upsert on bulk object (without find) throws an error ok 2 - upsert( NONEMPTY ) throws an error 1..2 ok 30 - upsert errors with initialize_unordered_bulk_op # Subtest: upsert-update insertion with initialize_unordered_bulk_op ok 1 - no error on upsert-update ok 2 - 'result object' isa 'MongoDB::BulkWriteResult' ok 3 - result object correct ok 4 - upserted document correct ok 5 - no error on second upsert-update ok 6 - result object correct 1..6 ok 31 - upsert-update insertion with initialize_unordered_bulk_op # Subtest: upsert-update updates with initialize_unordered_bulk_op ok 1 - no error on upsert-update ok 2 - 'result object' isa 'MongoDB::BulkWriteResult' ok 3 - result object correct ok 4 - all documents updated 1..4 ok 32 - upsert-update updates with initialize_unordered_bulk_op # Subtest: upsert-update large doc with initialize_unordered_bulk_op ok 1 - no error on upsert-update ok 2 - 'result object' isa 'MongoDB::BulkWriteResult' ok 3 - result object correct 1..3 ok 33 - upsert-update large doc with initialize_unordered_bulk_op # QA-477 UPSERT-UPDATE_ONE # Subtest: upsert-update_one insertion with initialize_ordered_bulk_op ok 1 - no error on upsert-update_one ok 2 - 'result object' isa 'MongoDB::BulkWriteResult' ok 3 - result object correct ok 4 - upserted document correct 1..4 ok 34 - upsert-update_one insertion with initialize_ordered_bulk_op # Subtest: upsert-update_one (no insert) with initialize_ordered_bulk_op ok 1 - no error on upsert-update_one ok 2 - 'result object' isa 'MongoDB::BulkWriteResult' ok 3 - result object correct ok 4 - updated document correct 1..4 ok 35 - upsert-update_one (no insert) with initialize_ordered_bulk_op # Subtest: upsert-update_one insertion with initialize_unordered_bulk_op ok 1 - no error on upsert-update_one ok 2 - 'result object' isa 'MongoDB::BulkWriteResult' ok 3 - result object correct ok 4 - upserted document correct 1..4 ok 36 - upsert-update_one insertion with initialize_unordered_bulk_op # Subtest: upsert-update_one (no insert) with initialize_unordered_bulk_op ok 1 - no error on upsert-update_one ok 2 - 'result object' isa 'MongoDB::BulkWriteResult' ok 3 - result object correct ok 4 - updated document correct 1..4 ok 37 - upsert-update_one (no insert) with initialize_unordered_bulk_op # QA-477 UPSERT-REPLACE_ONE # Subtest: upsert-replace_one insertion with initialize_ordered_bulk_op ok 1 - no error on upsert-replace_one ok 2 - 'result object' isa 'MongoDB::BulkWriteResult' ok 3 - result object correct ok 4 - upserted document correct 1..4 ok 38 - upsert-replace_one insertion with initialize_ordered_bulk_op # Subtest: upsert-replace_one (no insert) with initialize_ordered_bulk_op ok 1 - no error on upsert-replace_one ok 2 - 'result object' isa 'MongoDB::BulkWriteResult' ok 3 - result object correct ok 4 - updated document correct 1..4 ok 39 - upsert-replace_one (no insert) with initialize_ordered_bulk_op # Subtest: upsert-replace_one insertion with initialize_unordered_bulk_op ok 1 - no error on upsert-replace_one ok 2 - 'result object' isa 'MongoDB::BulkWriteResult' ok 3 - result object correct ok 4 - upserted document correct 1..4 ok 40 - upsert-replace_one insertion with initialize_unordered_bulk_op # Subtest: upsert-replace_one (no insert) with initialize_unordered_bulk_op ok 1 - no error on upsert-replace_one ok 2 - 'result object' isa 'MongoDB::BulkWriteResult' ok 3 - result object correct ok 4 - updated document correct 1..4 ok 41 - upsert-replace_one (no insert) with initialize_unordered_bulk_op # QA-477 delete_many # Subtest: delete_many errors with initialize_ordered_bulk_op ok 1 - delete_many on bulk object (without find) throws an error 1..1 ok 42 - delete_many errors with initialize_ordered_bulk_op # Subtest: delete_many all with initialize_ordered_bulk_op ok 1 - no error on delete_many ok 2 - 'result object' isa 'MongoDB::BulkWriteResult' ok 3 - result object correct ok 4 - all documents removed 1..4 ok 43 - delete_many all with initialize_ordered_bulk_op # Subtest: delete_many matching with initialize_ordered_bulk_op ok 1 - no error on delete_many ok 2 - 'result object' isa 'MongoDB::BulkWriteResult' ok 3 - result object correct ok 4 - correct object remains 1..4 ok 44 - delete_many matching with initialize_ordered_bulk_op # Subtest: delete_many with collation, using initialize_ordered_bulk_op ok 1 - bulk delete_many w/ collation ok 2 - collection updated 1..2 ok 45 - delete_many with collation, using initialize_ordered_bulk_op # Subtest: delete_many errors with initialize_unordered_bulk_op ok 1 - delete_many on bulk object (without find) throws an error 1..1 ok 46 - delete_many errors with initialize_unordered_bulk_op # Subtest: delete_many all with initialize_unordered_bulk_op ok 1 - no error on delete_many ok 2 - 'result object' isa 'MongoDB::BulkWriteResult' ok 3 - result object correct ok 4 - all documents removed 1..4 ok 47 - delete_many all with initialize_unordered_bulk_op # Subtest: delete_many matching with initialize_unordered_bulk_op ok 1 - no error on delete_many ok 2 - 'result object' isa 'MongoDB::BulkWriteResult' ok 3 - result object correct ok 4 - correct object remains 1..4 ok 48 - delete_many matching with initialize_unordered_bulk_op # Subtest: delete_many with collation, using initialize_unordered_bulk_op ok 1 - bulk delete_many w/ collation ok 2 - collection updated 1..2 ok 49 - delete_many with collation, using initialize_unordered_bulk_op # QA-477 delete_one # Subtest: delete_one errors with initialize_ordered_bulk_op ok 1 - delete_one on bulk object (without find) throws an error 1..1 ok 50 - delete_one errors with initialize_ordered_bulk_op # Subtest: delete_one with initialize_ordered_bulk_op ok 1 - no error on delete_one ok 2 - 'result object' isa 'MongoDB::BulkWriteResult' ok 3 - result object correct ok 4 - only one doc removed 1..4 ok 51 - delete_one with initialize_ordered_bulk_op # Subtest: delete_one with collation, using initialize_ordered_bulk_op ok 1 - bulk delete_one w/ collation ok 2 - collection updated 1..2 ok 52 - delete_one with collation, using initialize_ordered_bulk_op # Subtest: delete_one errors with initialize_unordered_bulk_op ok 1 - delete_one on bulk object (without find) throws an error 1..1 ok 53 - delete_one errors with initialize_unordered_bulk_op # Subtest: delete_one with initialize_unordered_bulk_op ok 1 - no error on delete_one ok 2 - 'result object' isa 'MongoDB::BulkWriteResult' ok 3 - result object correct ok 4 - only one doc removed 1..4 ok 54 - delete_one with initialize_unordered_bulk_op # Subtest: delete_one with collation, using initialize_unordered_bulk_op ok 1 - bulk delete_one w/ collation ok 2 - collection updated 1..2 ok 55 - delete_one with collation, using initialize_unordered_bulk_op # QA-477 MIXED OPERATIONS, UNORDERED # Subtest: mixed operations, unordered ok 1 - no error on mixed operations ok 2 - result object correct 1..2 ok 56 - mixed operations, unordered # QA-477 MIXED OPERATIONS, ORDERED # Subtest: mixed operations, ordered ok 1 - no error on mixed operations ok 2 - result object correct 1..2 ok 57 - mixed operations, ordered # QA-477 UNORDERED BATCH WITH ERRORS # Subtest: unordered batch with errors ok 1 - 'caught error' isa 'MongoDB::DuplicateKeyError' ok 2 - op_count ok 3 - batch_count # inserts went first ok 4 - inserted_count ok 5 - upserted_count ok 6 - deleted_count ok 7 - matched_count ok 8 - modified_count ok 9 - writeError count ok 10 - upsert list ok 11 - distinct keys 1..11 ok 58 - unordered batch with errors # QA-477 ORDERED BATCH WITH ERRORS # Subtest: ordered batch with errors ok 1 - 'caught error' isa 'MongoDB::DuplicateKeyError' ok 2 - upserted_count ok 3 - matched_count ok 4 - deleted_count ok 5 - modified_count ok 6 - inserted_count ok 7 - op_count ok 8 - op_count ok 9 - writeError count ok 10 - error code ok 11 - error index ok 12 - error string ok 13 - error op ok 14 - subsequent inserts did not run 1..14 ok 59 - ordered batch with errors # QA-477 BATCH SPLITTING: maxBsonObjectSize # Subtest: ordered batch split on size ok 1 - 'caught error' isa 'MongoDB::DuplicateKeyError' # TODO pending topology monitoring ok 2 - inserted_count # TODO pending topology monitoring ok 3 - inserted_ids correct # TODO pending topology monitoring ok 4 - count_write_errors # TODO pending topology monitoring ok 5 - error code # TODO pending topology monitoring ok 6 - error index # TODO pending topology monitoring ok 7 - error message # TODO pending topology monitoring ok 8 - collection count # TODO pending topology monitoring 1..8 ok 60 - ordered batch split on size # Subtest: unordered batch split on size ok 1 - 'caught error' isa 'MongoDB::DuplicateKeyError' # TODO pending topology monitoring ok 2 - inserted_count # TODO pending topology monitoring ok 3 - count_write_errors # TODO pending topology monitoring ok 4 - error code # TODO pending topology monitoring ok 5 - error index # TODO pending topology monitoring ok 6 - error message # TODO pending topology monitoring ok 7 - collection count # TODO pending topology monitoring 1..7 ok 61 - unordered batch split on size # QA-477 BATCH SPLITTING: maxWriteBatchSize # Subtest: ordered batch split on number of ops ok 1 - 'caught error' isa 'MongoDB::DuplicateKeyError' ok 2 - inserted_count ok 3 - inserted_ids correct ok 4 - count_write_errors ok 5 - error code ok 6 - error index ok 7 - error message ok 8 - collection count 1..8 ok 62 - ordered batch split on number of ops # Subtest: unordered batch split on number of ops ok 1 - 'caught error' isa 'MongoDB::DuplicateKeyError' ok 2 - inserted_count ok 3 - count_write_errors ok 4 - error code ok 5 - error index ok 6 - error message ok 7 - collection count 1..7 ok 63 - unordered batch split on number of ops # QA-477 RE-RUNNING A BATCH # Subtest: initialize_ordered_bulk_op: rerun a bulk operation ok 1 - first execute succeeds ok 2 - 're-running a bulk op throws exception' isa 'MongoDB::Error' ok 3 - error message 1..3 ok 64 - initialize_ordered_bulk_op: rerun a bulk operation # Subtest: initialize_unordered_bulk_op: rerun a bulk operation ok 1 - first execute succeeds ok 2 - 're-running a bulk op throws exception' isa 'MongoDB::Error' ok 3 - error message 1..3 ok 65 - initialize_unordered_bulk_op: rerun a bulk operation # QA-477 EMPTY BATCH # Subtest: initialize_ordered_bulk_op: empty bulk operation ok 1 - 'empty bulk op throws exception' isa 'MongoDB::Error' ok 2 - error message 1..2 ok 66 - initialize_ordered_bulk_op: empty bulk operation # Subtest: initialize_unordered_bulk_op: empty bulk operation ok 1 - 'empty bulk op throws exception' isa 'MongoDB::Error' ok 2 - error message 1..2 ok 67 - initialize_unordered_bulk_op: empty bulk operation # QA-477 W>1 AGAINST STANDALONE # Subtest: initialize_ordered_bulk_op: w > 1 against standalone (explicit) ok 1 - 'executing write concern w > 1 throws error' isa 'MongoDB::DatabaseError' ok 2 - error message mentions replication 1..2 ok 68 - initialize_ordered_bulk_op: w > 1 against standalone (explicit) # Subtest: initialize_ordered_bulk_op: w > 1 against standalone (implicit) ok 1 - 'executing write concern w > 1 throws error' isa 'MongoDB::DatabaseError' ok 2 - error message mentions replication 1..2 ok 69 - initialize_ordered_bulk_op: w > 1 against standalone (implicit) # Subtest: initialize_unordered_bulk_op: w > 1 against standalone (explicit) ok 1 - 'executing write concern w > 1 throws error' isa 'MongoDB::DatabaseError' ok 2 - error message mentions replication 1..2 ok 70 - initialize_unordered_bulk_op: w > 1 against standalone (explicit) # Subtest: initialize_unordered_bulk_op: w > 1 against standalone (implicit) ok 1 - 'executing write concern w > 1 throws error' isa 'MongoDB::DatabaseError' ok 2 - error message mentions replication 1..2 ok 71 - initialize_unordered_bulk_op: w > 1 against standalone (implicit) # QA-477 WTIMEOUT PLUS DUPLICATE KEY ERROR # Subtest: initialize_unordered_bulk_op: wtimeout plus duplicate keys 1..0 # SKIP needs a replica set ok 72 # skip needs a replica set # QA-477 W = 0 # Subtest: initialize_ordered_bulk_op: w = 0 ok 1 - execute with w = 0 doesn't throw error ok 2 - document count (1) 1..2 ok 73 - initialize_ordered_bulk_op: w = 0 # Subtest: initialize_unordered_bulk_op: w = 0 ok 1 - execute with w = 0 doesn't throw error ok 2 - document count (2) 1..2 ok 74 - initialize_unordered_bulk_op: w = 0 # WRITE CONCERN ERRORS # Subtest: initialize_ordered_bulk_op: write concern errors 1..0 # SKIP needs a replica set ok 75 # skip needs a replica set # Subtest: initialize_unordered_bulk_op: write concern errors 1..0 # SKIP needs a replica set ok 76 # skip needs a replica set # ARRAY REFS # Subtest: insert (ARRAY) ok 1 - no docs in collection ok 2 - no error on insert ok 3 - doc count 1..3 ok 77 - insert (ARRAY) # Subtest: update (ARRAY) ok 1 - no error on update ok 2 - document updated 1..2 ok 78 - update (ARRAY) # Subtest: update_one (ARRAY) ok 1 - no error on update_one ok 2 - only one doc updated 1..2 ok 79 - update_one (ARRAY) # Subtest: replace_one (ARRAY) ok 1 - no error on replace ok 2 - only one doc replaced 1..2 ok 80 - replace_one (ARRAY) # Tie::IxHash # Subtest: insert (Tie::IxHash) ok 1 - no docs in collection ok 2 - no error on insert ok 3 - doc count 1..3 ok 81 - insert (Tie::IxHash) # Subtest: update (Tie::IxHash) ok 1 - no error on update ok 2 - document updated 1..2 ok 82 - update (Tie::IxHash) # Subtest: update_one (Tie::IxHash) ok 1 - no error on update ok 2 - only one doc updated 1..2 ok 83 - update_one (Tie::IxHash) # Subtest: replace_one (Tie::IxHash) ok 1 - no error on replace ok 2 - only one doc replaced 1..2 ok 84 - replace_one (Tie::IxHash) # W = 0 IGNORES ERRORS # Subtest: initialize_ordered_bulk_op: w = 0 ok 1 - execute with w = 0 doesn't throw error ok 2 - document count (1) 1..2 ok 85 - initialize_ordered_bulk_op: w = 0 # Subtest: initialize_unordered_bulk_op: w = 0 ok 1 - execute with w = 0 doesn't throw error ok 2 - document count (2) 1..2 ok 86 - initialize_unordered_bulk_op: w = 0 # Subtest: collation w/ w:0 bulk writes return error, using initialize_ordered_bulk_op ok 1 - bulk write w/ collation returns error if write is unacknowledged 1..1 ok 87 - collation w/ w:0 bulk writes return error, using initialize_ordered_bulk_op # Subtest: collation w/ w:0 bulk writes return error, using initialize_unordered_bulk_op ok 1 - bulk write w/ collation returns error if write is unacknowledged 1..1 ok 88 - collation w/ w:0 bulk writes return error, using initialize_unordered_bulk_op # UPSERT _ID NOT RETURNED # Subtest: initialize_ordered_bulk_op: upsert with non OID _ids ok 1 - execute doesn't throw error ok 2 - result object correct 1..2 ok 89 - initialize_ordered_bulk_op: upsert with non OID _ids # Subtest: initialize_unordered_bulk_op: upsert with non OID _ids ok 1 - execute doesn't throw error ok 2 - result object correct 1..2 ok 90 - initialize_unordered_bulk_op: upsert with non OID _ids # Subtest: replace with custom op_char ok 1 - single non-op key in update doc throws exception 1..1 ok 91 - replace with custom op_char 1..91 ok t/bypass_doc_validation.t .................. # Subtest: insert_one ok 1 - reset collection ok 2 - invalid insert_one throws error ok 3 - validation bypassed 1..3 ok 1 - insert_one # Subtest: replace_one ok 1 - reset collection ok 2 - invalid replace_one throws error ok 3 - validation bypassed 1..3 ok 2 - replace_one # Subtest: update_one ok 1 - reset collection ok 2 - invalid update_one throws error ok 3 - validation bypassed 1..3 ok 3 - update_one # Subtest: update_many ok 1 - reset collection ok 2 - invalid update_many throws error ok 3 - validation bypassed 1..3 ok 4 - update_many # Subtest: bulk_write (unordered) ok 1 - reset collection ok 2 - invalid bulk_write throws error ok 3 - validation bypassed 1..3 ok 5 - bulk_write (unordered) # Subtest: bulk_write (ordered) ok 1 - reset collection ok 2 - invalid bulk_write throws error ok 3 - validation bypassed 1..3 ok 6 - bulk_write (ordered) # Subtest: insert_many ok 1 - reset collection ok 2 - invalid insert_many throws error ok 3 - validation bypassed 1..3 ok 7 - insert_many # Subtest: find_one_and_replace ok 1 - reset collection ok 2 - invalid find_one_and_replace throws error ok 3 - validation bypassed 1..3 ok 8 - find_one_and_replace # Subtest: find_one_and_update ok 1 - reset collection ok 2 - invalid find_one_and_update throws error ok 3 - validation bypassed 1..3 ok 9 - find_one_and_update # Subtest: aggregate with $out ok 1 - reset collection ok 2 - invalid aggregate output throws error ok 3 - no docs in $out collection ok 4 - validation bypassed ok 5 - correct doc count in $out collection ok 6 - bypassDocumentValidation without $out 1..6 ok 10 - aggregate with $out 1..10 ok t/causal_consistency.t ..................... skipped: Session support not available t/collection.t ............................. # Subtest: get_collection ok 1 - get_collection(NAME) ok 2 - An object of class 'MongoDB::Collection' isa 'MongoDB::Collection' ok 3 - get name ok 4 - get_collection(NAME, OPTION) (wc) ok 5 - coll-level write concern as expected ok 6 - get_collection(NAME, OPTION) (wc) ok 7 - coll-level write concern coerces ok 8 - get_collection(NAME, OPTION) (rp) ok 9 - coll-level read pref as expected ok 10 - get_collection(NAME, OPTION) (rp) ok 11 - coll-level read pref coerces 1..11 ok 1 - get_collection # Subtest: get_namespace ok 1 - get_namespace(NAME) ok 2 - An object of class 'MongoDB::Collection' isa 'MongoDB::Collection' ok 3 - get name ok 4 - get_collection(NAME, OPTION) (wc) ok 5 - coll-level write concern as expected ok 6 - ns(NAME) ok 7 - An object of class 'MongoDB::Collection' isa 'MongoDB::Collection' ok 8 - get name 1..8 ok 2 - get_namespace ok 3 ok 4 ok 5 - An object of class 'BSON::OID' isa 'BSON::OID' ok 6 # Subtest: write_concern ok 1 - get collection with w=999 ok 2 - collection-level write concern applies to insert_one 1..2 ok 7 - write_concern ok 8 - inserting an _id subdoc with $ keys should error ok 9 - count ok 10 ok 11 - rename ok 12 - rename ok 13 - rename ok 14 - rename ok 15 - rename ok 16 - rename ok 17 - count = 0 ok 18 - count = 1 ok 19 - inner obj count ok 20 - requires a filter ok 21 - count on missing collection lives ok 22 - count is correct ok 23 - find_one ok 24 - find_one type ok 25 ok 26 ok 27 ok 28 ok 29 ok 30 - find_id ok 31 - find_id projection ok 32 - remove() deleted everything (won't work on an old version of Mongo) ok 33 - inserting float number value ok 34 ok 35 ok 36 - round trip float looks like float ok 37 ok 38 - inserting undefined data ok 39 - finding undefined row ok 40 - got null field ok 41 - null field is undefined ok 42 - non-ascii values ok 43 - non-ascii keys ok 44 - byte key ok 45 - y exists ok 46 - _id exists ok 47 - x doesn't exist ok 48 - z doesn't exist ok 49 - w doesn't exist ok 50 - insert_many ok 51 ok 52 ok 53 ok 54 - projection fields correct ok 55 - remove just one ok 56 - An object of class 'BSON::OID' isa 'BSON::OID' ok 57 ok 58 ok 59 ok 60 ok 61 ok 62 ok 63 # Subtest: BSON::Doc for insert/update ok 1 - An object of class 'BSON::OID' isa 'BSON::OID' ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 - inserted with oid ok 10 - found by oid 1..10 ok 64 - BSON::Doc for insert/update ok 65 - An object of class 'BSON::OID' isa 'BSON::OID' ok 66 ok 67 ok 68 ok 69 ok 70 ok 71 ok 72 ok 73 ok 74 ok 75 ok 76 # Subtest: multiple update ok 1 - count ok 2 - y == 3 ok 3 - y == 4 1..3 ok 77 - multiple update ok 78 ok 79 ok 80 ok 81 ok 82 ok 83 ok 84 - insert float ok 85 ok 86 ok 87 # skip buildbot is stupid ok 88 - got error ok 89 - 'duplicate insert error' isa 'MongoDB::DatabaseError' ok 90 - error was duplicate key exception ok 91 - find ok 92 ok 93 ok 94 - find fields ok 95 - batch ok 96 - batch with next ok 97 - batch after next ok 98 - empty batch ok 99 - round trip UTF-8 ok 100 - Insert key with Null Char Operation Failed ok 101 - Insert key with Null Char in Key Failed ok 102 - insert_many key with Null Char in Key Operation Failed ok 103 - insert_many key with Null Char in Key Failed ok 104 - ixHash Insert key with Null Char in Key Operation Failed ok 105 - ixHash key with Null Char in Key Operation Failed # Subtest: aggregation ok 1 - An object of class 'MongoDB::QueryResult' isa 'MongoDB::QueryResult' ok 2 ok 3 1..3 ok 106 - aggregation # Subtest: aggregation cursors ok 1 - An object of class 'MongoDB::QueryResult' isa 'MongoDB::QueryResult' ok 2 ok 3 ok 4 - document count cached in cursor ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 ok 18 ok 19 ok 20 ok 21 ok 22 ok 23 ok 24 ok 25 ok 26 ok 27 ok 28 ok 29 ok 30 ok 31 ok 32 ok 33 ok 34 ok 35 ok 36 ok 37 ok 38 ok 39 ok 40 ok 41 ok 42 ok 43 ok 44 ok 45 ok 46 ok 47 ok 48 ok 49 ok 50 ok 51 ok 52 ok 53 ok 54 ok 55 ok 56 ok 57 ok 58 ok 59 ok 60 ok 61 ok 62 ok 63 ok 64 ok 65 - An object of class 'MongoDB::QueryResult' isa 'MongoDB::QueryResult' ok 66 ok 67 ok 68 - doc count correct ok 69 - A reference of type 'HASH' isa 'HASH' ok 70 - doc count field is 1 ok 71 - A reference of type 'HASH' isa 'HASH' ok 72 - doc count field is 2 ok 73 - A reference of type 'HASH' isa 'HASH' ok 74 - doc count field is 3 ok 75 - A reference of type 'HASH' isa 'HASH' ok 76 - doc count field is 4 ok 77 - A reference of type 'HASH' isa 'HASH' ok 78 - doc count field is 5 ok 79 - A reference of type 'HASH' isa 'HASH' ok 80 - doc count field is 6 ok 81 - A reference of type 'HASH' isa 'HASH' ok 82 - doc count field is 7 ok 83 - A reference of type 'HASH' isa 'HASH' ok 84 - doc count field is 8 ok 85 - A reference of type 'HASH' isa 'HASH' ok 86 - doc count field is 9 ok 87 - A reference of type 'HASH' isa 'HASH' ok 88 - doc count field is 10 ok 89 - A reference of type 'HASH' isa 'HASH' ok 90 - doc count field is 11 ok 91 - A reference of type 'HASH' isa 'HASH' ok 92 - doc count field is 12 ok 93 - A reference of type 'HASH' isa 'HASH' ok 94 - doc count field is 13 ok 95 - A reference of type 'HASH' isa 'HASH' ok 96 - doc count field is 14 ok 97 - A reference of type 'HASH' isa 'HASH' ok 98 - doc count field is 15 ok 99 - A reference of type 'HASH' isa 'HASH' ok 100 - doc count field is 16 ok 101 - A reference of type 'HASH' isa 'HASH' ok 102 - doc count field is 17 ok 103 - A reference of type 'HASH' isa 'HASH' ok 104 - doc count field is 18 ok 105 - A reference of type 'HASH' isa 'HASH' ok 106 - doc count field is 19 ok 107 - A reference of type 'HASH' isa 'HASH' ok 108 - doc count field is 20 1..108 ok 107 - aggregation cursors # Subtest: aggregation $out ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 ok 18 ok 19 ok 20 ok 21 ok 22 ok 23 ok 24 ok 25 ok 26 ok 27 ok 28 ok 29 ok 30 ok 31 ok 32 ok 33 ok 34 ok 35 ok 36 ok 37 ok 38 ok 39 ok 40 ok 41 1..41 ok 108 - aggregation $out # Subtest: aggregation explain ok 1 - aggregate with explain returns a hashref ok 2 - result had 'stages' field 1..2 ok 109 - aggregation explain # Subtest: aggregation index hint string ok 1 - aggregate with explain returns a hashref ok 2 - aggregate with no hint had rejectedPlans ok 3 - aggregate with explain returns a hashref ok 4 - aggregate with hint had no rejectedPlans 1..4 ok 110 - aggregation index hint string # Subtest: aggregation index hint object ok 1 - aggregate with explain returns a hashref ok 2 - aggregate with no hint had rejectedPlans ok 3 - aggregate with explain returns a hashref ok 4 - aggregate with hint had no rejectedPlans 1..4 ok 111 - aggregation index hint object # Subtest: aggregation with collation ok 1 - aggregate with collation 1..1 ok 112 - aggregation with collation # Subtest: deep update ok 1 - deep update worked ok 2 - replace with dots in field dies 1..2 ok 113 - deep update # Subtest: count_document w/ hint ok 1 - count = 2 ok 2 - count w/ hint & spec ok 3 - count w/ hint ok 4 - check bad hint error ok 5 - spec & hint on empty sparse index not ok 6 - hint on empty sparse index # TODO Failing nightly master # Failed (TODO) test 'hint on empty sparse index' # at t/collection.t line 896. # got: '0' # expected: '2' 1..6 ok 114 - count_document w/ hint # Subtest: count w/ collation ok 1 - count w/ collation 1..1 ok 115 - count w/ collation # Subtest: distinct w/ collation ok 1 - distinct w/ collation 1..1 ok 116 - distinct w/ collation # Subtest: querying w/ collation ok 1 - find w/ collation ok 2 - find_one w/ collation 1..2 ok 117 - querying w/ collation # Subtest: bulk_write writeConcern used 1..0 # SKIP Test requires ReplicaSet ok 118 # skip Test requires ReplicaSet # Subtest: query with $where as string ok 1 - correct count a > b ok 2 - javascript query correct 1..2 ok 119 - query with $where as string # Subtest: query with $where as BSON::Code ok 1 - correct count a > b ok 2 - javascript query correct 1..2 ok 120 - query with $where as BSON::Code # Subtest: sort standard hash ok 1 - Got correct sort order 1..1 ok 121 - sort standard hash # Subtest: sort BSON::Doc ok 1 - Got correct sort order 1..1 ok 122 - sort BSON::Doc # Subtest: hint coercion # Subtest: no hint # Subtest: aggregate ok 1 - aggregate with explain returns a hashref ok 2 - aggregate with no hint had rejectedPlans 1..2 ok 1 - aggregate # Subtest: count_document ok 1 - count w/ spec ok 2 - count 1..2 ok 2 - count_document # Subtest: find ok 1 - Got correct result 1..1 ok 3 - find # Subtest: cursor ok 1 - Got correct result 1..1 ok 4 - cursor 1..4 ok 1 - no hint # Subtest: hint string # Subtest: aggregate ok 1 - aggregate with explain returns a hashref ok 2 - aggregate with hint had no rejectedPlans 1..2 ok 1 - aggregate # Subtest: count_document ok 1 - count w/ spec ok 2 - count 1..2 ok 2 - count_document # Subtest: find ok 1 - Got correct result 1..1 ok 3 - find # Subtest: cursor ok 1 - Got correct result 1..1 ok 4 - cursor 1..4 ok 2 - hint string # Subtest: hint array # Subtest: aggregate ok 1 - aggregate with explain returns a hashref ok 2 - aggregate with hint had no rejectedPlans 1..2 ok 1 - aggregate # Subtest: count_document ok 1 - count w/ spec ok 2 - count 1..2 ok 2 - count_document # Subtest: find ok 1 - Got correct result 1..1 ok 3 - find # Subtest: cursor ok 1 - Got correct result 1..1 ok 4 - cursor 1..4 ok 3 - hint array # Subtest: hint IxHash # Subtest: aggregate ok 1 - aggregate with explain returns a hashref ok 2 - aggregate with hint had no rejectedPlans 1..2 ok 1 - aggregate # Subtest: count_document ok 1 - count w/ spec ok 2 - count 1..2 ok 2 - count_document # Subtest: find ok 1 - Got correct result 1..1 ok 3 - find # Subtest: cursor ok 1 - Got correct result 1..1 ok 4 - cursor 1..4 ok 4 - hint IxHash # Subtest: hint BSON::Doc # Subtest: aggregate ok 1 - aggregate with explain returns a hashref ok 2 - aggregate with hint had no rejectedPlans 1..2 ok 1 - aggregate # Subtest: count_document ok 1 - count w/ spec ok 2 - count 1..2 ok 2 - count_document # Subtest: find ok 1 - Got correct result 1..1 ok 3 - find # Subtest: cursor ok 1 - Got correct result 1..1 ok 4 - cursor 1..4 ok 5 - hint BSON::Doc 1..5 ok 123 - hint coercion 1..123 ok t/connection.t ............................. ok 1 - client is connected ok 2 - An object of class 'MongoDB::MongoClient' isa 'MongoDB::MongoClient' # Subtest: bad seedlist ok 1 - no exception on construction for bad port ok 2 - bad port reports not connected 1..2 ok 3 - bad seedlist # Subtest: get_database and check names ok 1 - 'get_database' isa 'MongoDB::Database' ok 2 - database_names 1..2 ok 4 - get_database and check names # Subtest: wire protocol versions ok 1 - default min wire version ok 2 - default max wire version ok 3 - exception on wire protocol 1..3 ok 5 - wire protocol versions # Subtest: reconnect ok 1 - ran reconnect ok 2 - inserted a doc after reconnection 1..2 ok 6 - reconnect # Subtest: topology status ok 1 - topology_status returns a hash reference ok 2 - scan time refreshed 1..2 ok 7 - topology status # Subtest: cooldown ok 1 - Unknown server not scanned again during cooldown 1..1 ok 8 - cooldown # Subtest: app name ok 1 - expected to see app name in client doc from currentOp output 1..1 ok 9 - app name # Subtest: localhost translated to 127.0.0.1 ok 1 - Socket can convert to plain INET (IPv4) 1..1 ok 10 - localhost translated to 127.0.0.1 1..10 ok t/connection_string_spec.t ................. # Subtest: t/data/connection_string/valid-unix_socket-relative.json # Subtest: Unix domain socket (relative path with trailing slash) ok 1 - invalid uri 1..1 ok 1 - Unix domain socket (relative path with trailing slash) # Subtest: Unix domain socket (relative path without trailing slash) ok 1 - invalid uri 1..1 ok 2 - Unix domain socket (relative path without trailing slash) # Subtest: Unix domain socket (relative path with spaces) ok 1 - invalid uri 1..1 ok 3 - Unix domain socket (relative path with spaces) # Subtest: Multiple Unix domain sockets (relative paths) ok 1 - invalid uri 1..1 ok 4 - Multiple Unix domain sockets (relative paths) # Subtest: Multiple Unix domain sockets (relative and absolute paths) ok 1 - invalid uri 1..1 ok 5 - Multiple Unix domain sockets (relative and absolute paths) # Subtest: Multiple hosts (relative path and ipv4) ok 1 - invalid uri 1..1 ok 6 - Multiple hosts (relative path and ipv4) # Subtest: Multiple hosts (relative path and hostname resembling relative path) ok 1 - invalid uri 1..1 ok 7 - Multiple hosts (relative path and hostname resembling relative path) # Subtest: Unix domain socket with auth database (relative path) ok 1 - invalid uri 1..1 ok 8 - Unix domain socket with auth database (relative path) # Subtest: Unix domain socket with path resembling socket file (relative path with trailing slash) ok 1 - invalid uri 1..1 ok 9 - Unix domain socket with path resembling socket file (relative path with trailing slash) # Subtest: Unix domain socket with path resembling socket file (relative path without trailing slash) ok 1 - invalid uri 1..1 ok 10 - Unix domain socket with path resembling socket file (relative path without trailing slash) # Subtest: Unix domain socket with path resembling socket file and auth (relative path) ok 1 - invalid uri 1..1 ok 11 - Unix domain socket with path resembling socket file and auth (relative path) # Subtest: Multiple Unix domain sockets and auth DB resembling a socket (relative path) ok 1 - invalid uri 1..1 ok 12 - Multiple Unix domain sockets and auth DB resembling a socket (relative path) # Subtest: Multiple Unix domain sockets with auth DB resembling a path (relative path) ok 1 - invalid uri 1..1 ok 13 - Multiple Unix domain sockets with auth DB resembling a path (relative path) # Subtest: Multiple Unix domain sockets with auth and query string (relative path) ok 1 - invalid uri 1..1 ok 14 - Multiple Unix domain sockets with auth and query string (relative path) 1..14 ok 1 - t/data/connection_string/valid-unix_socket-relative.json # Subtest: t/data/connection_string/valid-db-with-dotted-name.json # Subtest: Multiple Unix domain sockets and auth DB resembling a socket (relative path) ok 1 - invalid uri 1..1 ok 1 - Multiple Unix domain sockets and auth DB resembling a socket (relative path) # Subtest: Multiple Unix domain sockets with auth DB resembling a path (relative path) ok 1 - invalid uri 1..1 ok 2 - Multiple Unix domain sockets with auth DB resembling a path (relative path) # Subtest: Multiple Unix domain sockets and auth DB resembling a socket (absolute path) ok 1 - invalid uri 1..1 ok 3 - Multiple Unix domain sockets and auth DB resembling a socket (absolute path) # Subtest: Multiple Unix domain sockets with auth DB resembling a path (absolute path) ok 1 - invalid uri 1..1 ok 4 - Multiple Unix domain sockets with auth DB resembling a path (absolute path) 1..4 ok 2 - t/data/connection_string/valid-db-with-dotted-name.json # Subtest: t/data/connection_string/valid-options.json # Subtest: Option names are normalized to lowercase ok 1 - 'uri construction' isa 'MongoDB::_URI' ok 2 - parsing of host list ok 3 - parsing of auth database ok 4 - parsing of username ok 5 - parsing of password ok 6 - parsing of options ok 7 - correct number of warnings 1..7 ok 1 - Option names are normalized to lowercase 1..1 ok 3 - t/data/connection_string/valid-options.json # Subtest: t/data/connection_string/valid-auth.json # Subtest: User info for single IPv4 host without database ok 1 - 'uri construction' isa 'MongoDB::_URI' ok 2 - parsing of host list ok 3 - parsing of auth database ok 4 - parsing of username ok 5 - parsing of password ok 6 - parsing of options ok 7 - correct number of warnings 1..7 ok 1 - User info for single IPv4 host without database # Subtest: User info for single IPv4 host with database ok 1 - 'uri construction' isa 'MongoDB::_URI' ok 2 - parsing of host list ok 3 - parsing of auth database ok 4 - parsing of username ok 5 - parsing of password ok 6 - parsing of options ok 7 - correct number of warnings 1..7 ok 2 - User info for single IPv4 host with database # Subtest: User info for single IP literal host without database ok 1 - invalid uri 1..1 ok 3 - User info for single IP literal host without database # Subtest: User info for single IP literal host with database ok 1 - invalid uri 1..1 ok 4 - User info for single IP literal host with database # Subtest: User info for single hostname without database ok 1 - 'uri construction' isa 'MongoDB::_URI' ok 2 - parsing of host list ok 3 - parsing of auth database ok 4 - parsing of username ok 5 - parsing of password ok 6 - parsing of options ok 7 - correct number of warnings 1..7 ok 5 - User info for single hostname without database # Subtest: User info for single hostname with database ok 1 - 'uri construction' isa 'MongoDB::_URI' ok 2 - parsing of host list ok 3 - parsing of auth database ok 4 - parsing of username ok 5 - parsing of password ok 6 - parsing of options ok 7 - correct number of warnings 1..7 ok 6 - User info for single hostname with database # Subtest: User info for multiple hosts without database ok 1 - 'uri construction' isa 'MongoDB::_URI' ok 2 - parsing of host list ok 3 - parsing of auth database ok 4 - parsing of username ok 5 - parsing of password ok 6 - parsing of options ok 7 - correct number of warnings 1..7 ok 7 - User info for multiple hosts without database # Subtest: User info for multiple hosts with database ok 1 - invalid uri 1..1 ok 8 - User info for multiple hosts with database # Subtest: Username without password ok 1 - 'uri construction' isa 'MongoDB::_URI' ok 2 - parsing of host list ok 3 - parsing of auth database ok 4 - parsing of username ok 5 - parsing of password ok 6 - parsing of options ok 7 - correct number of warnings 1..7 ok 9 - Username without password # Subtest: Username with empty password ok 1 - 'uri construction' isa 'MongoDB::_URI' ok 2 - parsing of host list ok 3 - parsing of auth database ok 4 - parsing of username ok 5 - parsing of password ok 6 - parsing of options ok 7 - correct number of warnings 1..7 ok 10 - Username with empty password # Subtest: Escaped username and database without password ok 1 - 'uri construction' isa 'MongoDB::_URI' ok 2 - parsing of host list ok 3 - parsing of auth database ok 4 - parsing of username ok 5 - parsing of password ok 6 - parsing of options ok 7 - correct number of warnings 1..7 ok 11 - Escaped username and database without password # Subtest: Escaped user info and database (MONGODB-CR) ok 1 - 'uri construction' isa 'MongoDB::_URI' ok 2 - parsing of host list ok 3 - parsing of auth database ok 4 - parsing of username ok 5 - parsing of password ok 6 - parsing of options ok 7 - correct number of warnings 1..7 ok 12 - Escaped user info and database (MONGODB-CR) # Subtest: Subdelimiters in user/pass don't need escaping (MONGODB-CR) ok 1 - 'uri construction' isa 'MongoDB::_URI' ok 2 - parsing of host list ok 3 - parsing of auth database ok 4 - parsing of username ok 5 - parsing of password ok 6 - parsing of options ok 7 - correct number of warnings 1..7 ok 13 - Subdelimiters in user/pass don't need escaping (MONGODB-CR) # Subtest: Escaped username (MONGODB-X509) ok 1 - 'uri construction' isa 'MongoDB::_URI' ok 2 - parsing of host list ok 3 - parsing of auth database ok 4 - parsing of username ok 5 - parsing of password ok 6 - parsing of options ok 7 - correct number of warnings 1..7 ok 14 - Escaped username (MONGODB-X509) # Subtest: At-signs in options aren't part of the userinfo ok 1 - 'uri construction' isa 'MongoDB::_URI' ok 2 - parsing of host list ok 3 - parsing of auth database ok 4 - parsing of username ok 5 - parsing of password ok 6 - parsing of options ok 7 - correct number of warnings 1..7 ok 15 - At-signs in options aren't part of the userinfo 1..15 ok 4 - t/data/connection_string/valid-auth.json # Subtest: t/data/connection_string/valid-unix_socket-absolute.json # Subtest: Unix domain socket (absolute path with trailing slash) ok 1 - invalid uri 1..1 ok 1 - Unix domain socket (absolute path with trailing slash) # Subtest: Unix domain socket (absolute path without trailing slash) ok 1 - invalid uri 1..1 ok 2 - Unix domain socket (absolute path without trailing slash) # Subtest: Unix domain socket (absolute path with spaces in path) ok 1 - invalid uri 1..1 ok 3 - Unix domain socket (absolute path with spaces in path) # Subtest: Multiple Unix domain sockets (absolute paths) ok 1 - invalid uri 1..1 ok 4 - Multiple Unix domain sockets (absolute paths) # Subtest: Multiple hosts (absolute path and ipv4) ok 1 - invalid uri 1..1 ok 5 - Multiple hosts (absolute path and ipv4) # Subtest: Multiple hosts (absolute path and hostname resembling relative path) ok 1 - invalid uri 1..1 ok 6 - Multiple hosts (absolute path and hostname resembling relative path) # Subtest: Unix domain socket with auth database (absolute path) ok 1 - invalid uri 1..1 ok 7 - Unix domain socket with auth database (absolute path) # Subtest: Unix domain socket with path resembling socket file (absolute path with trailing slash) ok 1 - invalid uri 1..1 ok 8 - Unix domain socket with path resembling socket file (absolute path with trailing slash) # Subtest: Unix domain socket with path resembling socket file (absolute path without trailing slash) ok 1 - invalid uri 1..1 ok 9 - Unix domain socket with path resembling socket file (absolute path without trailing slash) # Subtest: Unix domain socket with path resembling socket file and auth (absolute path) ok 1 - invalid uri 1..1 ok 10 - Unix domain socket with path resembling socket file and auth (absolute path) # Subtest: Multiple Unix domain sockets and auth DB (absolute path) ok 1 - invalid uri 1..1 ok 11 - Multiple Unix domain sockets and auth DB (absolute path) # Subtest: Multiple Unix domain sockets with auth DB (absolute path) ok 1 - invalid uri 1..1 ok 12 - Multiple Unix domain sockets with auth DB (absolute path) # Subtest: Multiple Unix domain sockets with auth and query string (absolute path) ok 1 - invalid uri 1..1 ok 13 - Multiple Unix domain sockets with auth and query string (absolute path) 1..13 ok 5 - t/data/connection_string/valid-unix_socket-absolute.json # Subtest: t/data/connection_string/valid-host_identifiers.json # Subtest: Single IPv4 host without port ok 1 - 'uri construction' isa 'MongoDB::_URI' ok 2 - parsing of host list ok 3 - parsing of auth database ok 4 - parsing of username ok 5 - parsing of password ok 6 - parsing of options ok 7 - correct number of warnings 1..7 ok 1 - Single IPv4 host without port # Subtest: Single IPv4 host with port ok 1 - 'uri construction' isa 'MongoDB::_URI' ok 2 - parsing of host list ok 3 - parsing of auth database ok 4 - parsing of username ok 5 - parsing of password ok 6 - parsing of options ok 7 - correct number of warnings 1..7 ok 2 - Single IPv4 host with port # Subtest: Single IP literal host without port ok 1 - invalid uri 1..1 ok 3 - Single IP literal host without port # Subtest: Single IP literal host with port ok 1 - invalid uri 1..1 ok 4 - Single IP literal host with port # Subtest: Single hostname without port ok 1 - 'uri construction' isa 'MongoDB::_URI' ok 2 - parsing of host list ok 3 - parsing of auth database ok 4 - parsing of username ok 5 - parsing of password ok 6 - parsing of options ok 7 - correct number of warnings 1..7 ok 5 - Single hostname without port # Subtest: Single hostname with port ok 1 - 'uri construction' isa 'MongoDB::_URI' ok 2 - parsing of host list ok 3 - parsing of auth database ok 4 - parsing of username ok 5 - parsing of password ok 6 - parsing of options ok 7 - correct number of warnings 1..7 ok 6 - Single hostname with port # Subtest: Single hostname (resembling IPv4) without port ok 1 - 'uri construction' isa 'MongoDB::_URI' ok 2 - parsing of host list ok 3 - parsing of auth database ok 4 - parsing of username ok 5 - parsing of password ok 6 - parsing of options ok 7 - correct number of warnings 1..7 ok 7 - Single hostname (resembling IPv4) without port # Subtest: Multiple hosts (mixed formats) ok 1 - invalid uri 1..1 ok 8 - Multiple hosts (mixed formats) # Subtest: UTF-8 hosts ok 1 - 'uri construction' isa 'MongoDB::_URI' ok 2 - parsing of host list ok 3 - parsing of auth database ok 4 - parsing of username ok 5 - parsing of password ok 6 - parsing of options ok 7 - correct number of warnings 1..7 ok 9 - UTF-8 hosts 1..9 ok 6 - t/data/connection_string/valid-host_identifiers.json # Subtest: t/data/connection_string/invalid-uris.json # Subtest: Empty string ok 1 - invalid uri 1..1 ok 1 - Empty string # Subtest: Invalid scheme ok 1 - invalid uri 1..1 ok 2 - Invalid scheme # Subtest: Missing host ok 1 - invalid uri 1..1 ok 3 - Missing host # Subtest: Double colon in host identifier ok 1 - invalid uri 1..1 ok 4 - Double colon in host identifier # Subtest: Double colon in host identifier and trailing slash ok 1 - invalid uri 1..1 ok 5 - Double colon in host identifier and trailing slash # Subtest: Double colon in host identifier with missing host and port ok 1 - invalid uri 1..1 ok 6 - Double colon in host identifier with missing host and port # Subtest: Double colon in host identifier with missing port ok 1 - invalid uri 1..1 ok 7 - Double colon in host identifier with missing port # Subtest: Double colon in host identifier and second host ok 1 - invalid uri 1..1 ok 8 - Double colon in host identifier and second host # Subtest: Invalid port (negative number) with hostname ok 1 - invalid uri 1..1 ok 9 - Invalid port (negative number) with hostname # Subtest: Invalid port (zero) with hostname ok 1 - invalid uri 1..1 ok 10 - Invalid port (zero) with hostname # Subtest: Invalid port (positive number) with hostname ok 1 - invalid uri 1..1 ok 11 - Invalid port (positive number) with hostname # Subtest: Invalid port (positive number) with hostname and trailing slash ok 1 - invalid uri 1..1 ok 12 - Invalid port (positive number) with hostname and trailing slash # Subtest: Invalid port (non-numeric string) with hostname ok 1 - invalid uri 1..1 ok 13 - Invalid port (non-numeric string) with hostname # Subtest: Invalid port (negative number) with IP literal ok 1 - invalid uri 1..1 ok 14 - Invalid port (negative number) with IP literal # Subtest: Invalid port (zero) with IP literal ok 1 - invalid uri 1..1 ok 15 - Invalid port (zero) with IP literal # Subtest: Invalid port (positive number) with IP literal ok 1 - invalid uri 1..1 ok 16 - Invalid port (positive number) with IP literal # Subtest: Invalid port (positive number) with IP literal and trailing slash ok 1 - invalid uri 1..1 ok 17 - Invalid port (positive number) with IP literal and trailing slash # Subtest: Invalid port (non-numeric string) with IP literal ok 1 - invalid uri 1..1 ok 18 - Invalid port (non-numeric string) with IP literal # Subtest: Missing delimiting slash between hosts and options ok 1 - invalid uri 1..1 ok 19 - Missing delimiting slash between hosts and options # Subtest: Incomplete key value pair for option ok 1 - invalid uri 1..1 ok 20 - Incomplete key value pair for option # Subtest: Username with password containing an unescaped colon ok 1 - invalid uri 1..1 ok 21 - Username with password containing an unescaped colon # Subtest: Username containing an unescaped at-sign ok 1 - invalid uri 1..1 ok 22 - Username containing an unescaped at-sign # Subtest: Username with password containing an unescaped at-sign ok 1 - invalid uri 1..1 ok 23 - Username with password containing an unescaped at-sign # Subtest: Username containing an unescaped slash ok 1 - invalid uri 1..1 ok 24 - Username containing an unescaped slash # Subtest: Username containing unescaped slash with password ok 1 - invalid uri 1..1 ok 25 - Username containing unescaped slash with password # Subtest: Username with password containing an unescaped slash ok 1 - invalid uri 1..1 ok 26 - Username with password containing an unescaped slash # Subtest: Host with unescaped slash ok 1 - invalid uri 1..1 ok 27 - Host with unescaped slash # Subtest: mongodb+srv with multiple service names ok 1 - invalid uri 1..1 ok 28 - mongodb+srv with multiple service names # Subtest: mongodb+srv with port number ok 1 - invalid uri 1..1 ok 29 - mongodb+srv with port number # Subtest: Username with password containing an unescaped percent sign ok 1 - invalid uri 1..1 ok 30 - Username with password containing an unescaped percent sign 1..30 ok 7 - t/data/connection_string/invalid-uris.json # Subtest: t/data/connection_string/valid-warnings.json # Subtest: Unrecognized option keys are ignored ok 1 - 'uri construction' isa 'MongoDB::_URI' ok 2 - parsing of host list ok 3 - parsing of auth database ok 4 - parsing of username ok 5 - parsing of password ok 6 - parsing of options ok 7 - correct number of warnings 1..7 ok 1 - Unrecognized option keys are ignored # Subtest: Unsupported option values are ignored ok 1 - 'uri construction' isa 'MongoDB::_URI' ok 2 - parsing of host list ok 3 - parsing of auth database ok 4 - parsing of username ok 5 - parsing of password ok 6 - parsing of options ok 7 - correct number of warnings 1..7 ok 2 - Unsupported option values are ignored # Subtest: Repeated option keys ok 1 - 'uri construction' isa 'MongoDB::_URI' ok 2 - parsing of host list ok 3 - parsing of auth database ok 4 - parsing of username ok 5 - parsing of password ok 6 - parsing of options ok 7 - correct number of warnings 1..7 ok 3 - Repeated option keys # Subtest: Deprecated (or unknown) options are ignored if replacement exists ok 1 - 'uri construction' isa 'MongoDB::_URI' ok 2 - parsing of host list ok 3 - parsing of auth database ok 4 - parsing of username ok 5 - parsing of password ok 6 - parsing of options ok 7 - correct number of warnings 1..7 ok 4 - Deprecated (or unknown) options are ignored if replacement exists 1..4 ok 8 - t/data/connection_string/valid-warnings.json 1..8 ok t/crud.t ................................... # Subtest: insert_one ok 1 - insert with _id: doc inserted ok 2 - result acknowledged ok 3 - 'result' isa 'MongoDB::InsertOneResult' ok 4 - res->inserted_id ok 5 - insert without _id: hash doc inserted ok 6 - result acknowledged ok 7 - doc has expected inserted _id ok 8 - original unmodified ok 9 - insert without _id: array doc inserted ok 10 - insert without _id: Tie::IxHash doc inserted 1..10 ok 1 - insert_one # Subtest: insert_many ok 1 - insert many: docs inserted ok 2 - result acknowledged ok 3 - 'result' isa 'MongoDB::InsertManyResult' ok 4 - inserted contains correct hashrefs ok 5 - inserted_ids contains correct keys/values ok 6 - Two docs inserted. ok 7 - ordered insert got an error ok 8 - 'caught error' isa 'MongoDB::DuplicateKeyError' ok 9 - only first three inserted ok 10 - unordered insert got an error ok 11 - 'caught error' isa 'MongoDB::DuplicateKeyError' ok 12 - all valid docs inserted ok 13 - exception inserting bad type 1..13 ok 2 - insert_many # Subtest: delete_one ok 1 - inserted two docs ok 2 - result acknowledged ok 3 - 'result' isa 'MongoDB::DeleteResult' ok 4 - delete one document ok 5 - one document left ok 6 - delete non existent document does nothing ok 7 - one document left ok 8 - delete_one with collation ok 9 - no documents left ok 10 - delete_one w/ collation returns error if write is unacknowledged ok 11 - deleting from capped collection throws error ok 12 - An object of class 'MongoDB::WriteError' isa 'MongoDB::WriteError' ok 13 - error had string 'capped' 1..13 ok 3 - delete_one # Subtest: delete_many ok 1 - inserted five docs ok 2 - result acknowledged ok 3 - 'result' isa 'MongoDB::DeleteResult' ok 4 - deleted two documents ok 5 - three documents left ok 6 - delete non existent document does nothing ok 7 - three documents left ok 8 - delete_many with collation ok 9 - no documents left ok 10 - deleting from capped collection throws error ok 11 - An object of class 'MongoDB::WriteError' isa 'MongoDB::WriteError' ok 12 - error had string 'capped' 1..12 ok 4 - delete_many # Subtest: replace_one ok 1 - result acknowledged ok 2 - 'result' isa 'MongoDB::UpdateResult' ok 3 - matched count is zero ok 4 - collection still empty ok 5 - matched count is zero ok 6 - modified count correct based on server version ok 7 - has_modified_count correct ok 8 - 'got upserted id' isa 'BSON::OID' ok 9 - one doc in database ok 10 - document contents correct ok 11 - replace existing with upsert ok 12 - matched_count 1 ok 13 - modified count correct based on server version ok 14 - collection docs correct ok 15 - replace existing with upsert ok 16 - matched_count 1 ok 17 - modified count correct based on server version ok 18 - collection docs correct ok 19 - replace with update operators is an error ok 20 - correct error message ok 21 - replace with op_char update operators is an error ok 22 - correct error message ok 23 - replace_one with collation 1..23 ok 5 - replace_one # Subtest: update_one ok 1 - result acknowledged ok 2 - 'result' isa 'MongoDB::UpdateResult' ok 3 - matched count is zero ok 4 - collection still empty ok 5 - matched count is zero ok 6 - modified count correct based on server version ok 7 - 'got upserted id' isa 'BSON::OID' ok 8 - one doc in database ok 9 - document contents correct ok 10 - update existing with upsert ok 11 - matched_count 1 ok 12 - modified count correct based on server version ok 13 - collection docs correct ok 14 - update existing with upsert ok 15 - matched_count 1 ok 16 - modified count correct based on server version ok 17 - collection docs correct ok 18 - update without update operators is an error ok 19 - correct error message ok 20 - update_one with collation ok 21 - update_one w/ collation returns error if write is unacknowledged 1..21 ok 6 - update_one # Subtest: update_many ok 1 - result acknowledged ok 2 - 'result' isa 'MongoDB::UpdateResult' ok 3 - matched count is zero ok 4 - collection still empty ok 5 - matched count is zero ok 6 - modified count correct based on server version ok 7 - 'got upserted id' isa 'BSON::OID' ok 8 - one doc in database ok 9 - collection docs correct ok 10 - update existing with upsert ok 11 - matched_count 2 ok 12 - modified count correct based on server version ok 13 - collection docs correct ok 14 - update existing with upsert ok 15 - matched_count 1 ok 16 - modified count correct based on server version ok 17 - collection docs correct ok 18 - update without update operators is an error ok 19 - correct error message ok 20 - update_many with collation 1..20 ok 7 - update_many # Subtest: bulk_write ok 1 - result acknowledged ok 2 - 'result' isa 'MongoDB::BulkWriteResult' ok 3 - op count correct ok 4 - collection docs correct ok 5 - ordered bulk got an error ok 6 - 'caught error' isa 'MongoDB::DuplicateKeyError' ok 7 - only first two inserted ok 8 - unordered bulk got an error ok 9 - 'caught error' isa 'MongoDB::DuplicateKeyError' ok 10 - three valid docs inserted ok 11 - bulk_write w/ collation ok 12 - collection updated 1..12 ok 8 - bulk_write # Subtest: find_one_and_delete ok 1 - inserted 2 docs ok 2 - find_one_and_delete on nonexistent doc returns undef ok 3 - still 2 docs ok 4 - expected doc returned ok 5 - only 1 doc left ok 6 - find_one_and_delete with collation ok 7 - no documents left 1..7 ok 9 - find_one_and_delete # Subtest: find_one_and_replace ok 1 - inserted 2 docs ok 2 - find_one_and_replace on nonexistent doc returns undef ok 3 - still 2 docs ok 4 - no docs matching replacment ok 5 - find_one_and_replace upsert on nonexistent doc returns undef ok 6 - doc has been upserted ok 7 - 1 doc matching replacment ok 8 - find_one_and_replace on existing doc returned old doc ok 9 - no new doc added ok 10 - 1 doc matching replacment ok 11 - find_one_and_replace on existing doc returned new doc ok 12 - no new doc added ok 13 - 1 doc matching replacment ok 14 - find_one_and_replace on existing doc returned new doc ok 15 - 1 doc matching replacment ok 16 - correct doc untouched ok 17 - upsert dup key got an error ok 18 - 'caught error' isa 'MongoDB::DuplicateKeyError' ok 19 - find_one_and_replace with collation ok 20 - doc matching replacement 1..20 ok 10 - find_one_and_replace # Subtest: find_one_and_update ok 1 - inserted 2 docs ok 2 - find_one_and_update on nonexistent doc returns undef ok 3 - still 2 docs ok 4 - no docs matching update ok 5 - find_one_and_update upsert on nonexistent doc returns undef ok 6 - doc has been upserted ok 7 - 1 doc matching upsert ok 8 - find_one_and_update on existing doc returned old doc ok 9 - no new doc added ok 10 - 1 doc matching replacment ok 11 - find_one_and_update on existing doc returned new doc ok 12 - no new doc added ok 13 - 1 doc matching replacment ok 14 - find_one_and_update on existing doc returned new doc ok 15 - 1 doc matching replacment ok 16 - correct doc untouched ok 17 - update dup key got an error ok 18 - 'caught error' isa 'MongoDB::DuplicateKeyError' ok 19 - find_one_and_update with collation ok 20 - doc matching replacement 1..20 ok 11 - find_one_and_update # Subtest: write concern errors 1..0 # SKIP not a replica set ok 12 # skip not a replica set 1..12 ok t/crud_spec.t .............................. # Subtest: aggregate-out ok 1 - Aggregate with $out: result documents ok 2 - Aggregate with $out: collection data ok 3 - Aggregate with $out and batch size of 0: result documents ok 4 - Aggregate with $out and batch size of 0: collection data 1..4 ok 1 - aggregate-out # Subtest: count-collation ok 1 - Count documents with collation: result scalar ok 2 - Deprecated count with collation: result scalar 1..2 ok 2 - count-collation # Subtest: find ok 1 - Find with filter: result documents ok 2 - Find with filter, sort, skip, and limit: result documents ok 3 - Find with limit, sort, and batchsize: result documents 1..3 ok 3 - find # Subtest: aggregate ok 1 - Aggregate with multiple stages: result documents 1..1 ok 4 - aggregate # Subtest: distinct-collation ok 1 - Distinct with a collation: result documents 1..1 ok 5 - distinct-collation # Subtest: find-collation ok 1 - Find with a collation: result documents 1..1 ok 6 - find-collation # Subtest: aggregate-collation ok 1 - Aggregate with collation: result documents 1..1 ok 7 - aggregate-collation # Subtest: count ok 1 - Estimated document count: result scalar ok 2 - Count documents without a filter: result scalar ok 3 - Count documents with a filter: result scalar ok 4 - Count documents with skip and limit: result scalar ok 5 - Deprecated count without a filter: result scalar ok 6 - Deprecated count with a filter: result scalar ok 7 - Deprecated count with skip and limit: result scalar 1..7 ok 8 - count # Subtest: distinct ok 1 - Distinct without a filter: result documents ok 2 - Distinct with a filter: result documents 1..2 ok 9 - distinct # Subtest: findOneAndUpdate-collation ok 1 - FindOneAndUpdate when many documents match with collation returning the document before modification: result doc ok 2 - FindOneAndUpdate when many documents match with collation returning the document before modification: collection data 1..2 ok 10 - findOneAndUpdate-collation # Subtest: updateOne-pre_2.6 ok 1 - UpdateOne when many documents match: matchedCount ok 2 - UpdateOne when one document matches: matchedCount ok 3 - UpdateOne when one document matches: collection data ok 4 - UpdateOne when no documents match: matchedCount ok 5 - UpdateOne when no documents match: collection data ok 6 - UpdateOne with upsert when no documents match: upsertedId ok 7 - UpdateOne with upsert when no documents match: matchedCount ok 8 - UpdateOne with upsert when no documents match: collection data 1..8 ok 11 - updateOne-pre_2.6 # Subtest: replaceOne-pre_2.6 ok 1 - ReplaceOne when many documents match: matchedCount ok 2 - ReplaceOne when one document matches: matchedCount ok 3 - ReplaceOne when one document matches: collection data ok 4 - ReplaceOne when no documents match: matchedCount ok 5 - ReplaceOne when no documents match: collection data ok 6 - ReplaceOne with upsert when no documents match without an id specified: matchedCount ok 7 - ReplaceOne with upsert when no documents match with an id specified: upsertedId ok 8 - ReplaceOne with upsert when no documents match with an id specified: matchedCount ok 9 - ReplaceOne with upsert when no documents match with an id specified: collection data 1..9 ok 12 - replaceOne-pre_2.6 # Subtest: insertOne ok 1 - InsertOne with a non-existing document: insertedId ok 2 - InsertOne with a non-existing document: collection data 1..2 ok 13 - insertOne # Subtest: updateOne-collation ok 1 - UpdateOne when one document matches with collation: matchedCount ok 2 - UpdateOne when one document matches with collation: modifiedCount ok 3 - UpdateOne when one document matches with collation: collection data 1..3 ok 14 - updateOne-collation # Subtest: findOneAndDelete-collation ok 1 - FindOneAndDelete when one document matches with collation: result doc ok 2 - FindOneAndDelete when one document matches with collation: collection data 1..2 ok 15 - findOneAndDelete-collation # Subtest: updateOne-arrayFilters ok 1 - UpdateOne when no document matches arrayFilters: modifiedCount ok 2 - UpdateOne when no document matches arrayFilters: matchedCount ok 3 - UpdateOne when no document matches arrayFilters: collection data ok 4 - UpdateOne when one document matches arrayFilters: matchedCount ok 5 - UpdateOne when one document matches arrayFilters: modifiedCount ok 6 - UpdateOne when one document matches arrayFilters: collection data ok 7 - UpdateOne when multiple documents match arrayFilters: modifiedCount ok 8 - UpdateOne when multiple documents match arrayFilters: matchedCount ok 9 - UpdateOne when multiple documents match arrayFilters: collection data ok 10 - UpdateOne when no documents match multiple arrayFilters: modifiedCount ok 11 - UpdateOne when no documents match multiple arrayFilters: matchedCount ok 12 - UpdateOne when no documents match multiple arrayFilters: collection data ok 13 - UpdateOne when one document matches multiple arrayFilters: modifiedCount ok 14 - UpdateOne when one document matches multiple arrayFilters: matchedCount ok 15 - UpdateOne when one document matches multiple arrayFilters: collection data 1..15 ok 16 - updateOne-arrayFilters # Subtest: updateMany-collation ok 1 - UpdateMany when many documents match with collation: modifiedCount ok 2 - UpdateMany when many documents match with collation: matchedCount ok 3 - UpdateMany when many documents match with collation: collection data 1..3 ok 17 - updateMany-collation # Subtest: findOneAndUpdate ok 1 - FindOneAndUpdate when many documents match returning the document before modification: result doc ok 2 - FindOneAndUpdate when many documents match returning the document before modification: collection data ok 3 - FindOneAndUpdate when many documents match returning the document after modification: result doc ok 4 - FindOneAndUpdate when many documents match returning the document after modification: collection data ok 5 - FindOneAndUpdate when one document matches returning the document before modification: result doc ok 6 - FindOneAndUpdate when one document matches returning the document before modification: collection data ok 7 - FindOneAndUpdate when one document matches returning the document after modification: result doc ok 8 - FindOneAndUpdate when one document matches returning the document after modification: collection data ok 9 - FindOneAndUpdate when no documents match returning the document before modification: result doc ok 10 - FindOneAndUpdate when no documents match returning the document before modification: collection data ok 11 - FindOneAndUpdate when no documents match with upsert returning the document before modification: result doc ok 12 - FindOneAndUpdate when no documents match with upsert returning the document before modification: collection data ok 13 - FindOneAndUpdate when no documents match returning the document after modification: result doc ok 14 - FindOneAndUpdate when no documents match returning the document after modification: collection data ok 15 - FindOneAndUpdate when no documents match with upsert returning the document after modification: result doc ok 16 - FindOneAndUpdate when no documents match with upsert returning the document after modification: collection data 1..16 ok 18 - findOneAndUpdate # Subtest: deleteMany ok 1 - DeleteMany when many documents match: deletedCount ok 2 - DeleteMany when many documents match: collection data ok 3 - DeleteMany when no document matches: deletedCount ok 4 - DeleteMany when no document matches: collection data 1..4 ok 19 - deleteMany # Subtest: replaceOne-upsert ok 1 - ReplaceOne with upsert when no documents match without an id specified: matchedCount ok 2 - ReplaceOne with upsert when no documents match without an id specified: upsertedId ok 3 - ReplaceOne with upsert when no documents match without an id specified: modifiedCount ok 4 - ReplaceOne with upsert when no documents match without an id specified: collection data ok 5 - ReplaceOne with upsert when no documents match with an id specified: modifiedCount ok 6 - ReplaceOne with upsert when no documents match with an id specified: matchedCount ok 7 - ReplaceOne with upsert when no documents match with an id specified: upsertedId ok 8 - ReplaceOne with upsert when no documents match with an id specified: collection data 1..8 ok 20 - replaceOne-upsert # Subtest: findOneAndDelete ok 1 - FindOneAndDelete when many documents match: result doc ok 2 - FindOneAndDelete when many documents match: collection data ok 3 - FindOneAndDelete when one document matches: result doc ok 4 - FindOneAndDelete when one document matches: collection data ok 5 - FindOneAndDelete when no documents match: result doc ok 6 - FindOneAndDelete when no documents match: collection data 1..6 ok 21 - findOneAndDelete # Subtest: deleteOne-collation ok 1 - DeleteOne when many documents matches with collation: deletedCount ok 2 - DeleteOne when many documents matches with collation: collection data 1..2 ok 22 - deleteOne-collation # Subtest: bulkWrite-arrayFilters ok 1 - BulkWrite with arrayFilters: upsertedIds ok 2 - BulkWrite with arrayFilters: insertedIds ok 3 - BulkWrite with arrayFilters: matchedCount ok 4 - BulkWrite with arrayFilters: upsertedCount ok 5 - BulkWrite with arrayFilters: modifiedCount ok 6 - BulkWrite with arrayFilters: deletedCount ok 7 - BulkWrite with arrayFilters: collection data 1..7 ok 23 - bulkWrite-arrayFilters # Subtest: findOneAndReplace-collation ok 1 - FindOneAndReplace when one document matches with collation returning the document after modification: result doc ok 2 - FindOneAndReplace when one document matches with collation returning the document after modification: collection data 1..2 ok 24 - findOneAndReplace-collation # Subtest: updateOne ok 1 - UpdateOne when many documents match: modifiedCount ok 2 - UpdateOne when many documents match: matchedCount ok 3 - UpdateOne when one document matches: modifiedCount ok 4 - UpdateOne when one document matches: matchedCount ok 5 - UpdateOne when one document matches: collection data ok 6 - UpdateOne when no documents match: modifiedCount ok 7 - UpdateOne when no documents match: matchedCount ok 8 - UpdateOne when no documents match: collection data ok 9 - UpdateOne with upsert when no documents match: matchedCount ok 10 - UpdateOne with upsert when no documents match: upsertedId ok 11 - UpdateOne with upsert when no documents match: modifiedCount ok 12 - UpdateOne with upsert when no documents match: collection data 1..12 ok 25 - updateOne # Subtest: deleteOne ok 1 - DeleteOne when many documents match: deletedCount ok 2 - DeleteOne when one document matches: deletedCount ok 3 - DeleteOne when one document matches: collection data ok 4 - DeleteOne when no documents match: deletedCount ok 5 - DeleteOne when no documents match: collection data 1..5 ok 26 - deleteOne # Subtest: findOneAndReplace-upsert ok 1 - FindOneAndReplace when no documents match without id specified with upsert returning the document before modification: result doc ok 2 - FindOneAndReplace when no documents match without id specified with upsert returning the document before modification: collection data ok 3 - FindOneAndReplace when no documents match without id specified with upsert returning the document after modification: result doc ok 4 - FindOneAndReplace when no documents match without id specified with upsert returning the document after modification: collection data ok 5 - FindOneAndReplace when no documents match with id specified with upsert returning the document before modification: result doc ok 6 - FindOneAndReplace when no documents match with id specified with upsert returning the document before modification: collection data ok 7 - FindOneAndReplace when no documents match with id specified with upsert returning the document after modification: result doc ok 8 - FindOneAndReplace when no documents match with id specified with upsert returning the document after modification: collection data 1..8 ok 27 - findOneAndReplace-upsert # Subtest: updateMany-pre_2.6 ok 1 - UpdateMany when many documents match: matchedCount ok 2 - UpdateMany when many documents match: collection data ok 3 - UpdateMany when one document matches: matchedCount ok 4 - UpdateMany when one document matches: collection data ok 5 - UpdateMany when no documents match: matchedCount ok 6 - UpdateMany when no documents match: collection data ok 7 - UpdateMany with upsert when no documents match: upsertedId ok 8 - UpdateMany with upsert when no documents match: matchedCount ok 9 - UpdateMany with upsert when no documents match: collection data 1..9 ok 28 - updateMany-pre_2.6 # Subtest: replaceOne-collation ok 1 - ReplaceOne when one document matches with collation: modifiedCount ok 2 - ReplaceOne when one document matches with collation: matchedCount ok 3 - ReplaceOne when one document matches with collation: collection data 1..3 ok 29 - replaceOne-collation # Subtest: replaceOne ok 1 - ReplaceOne when many documents match: modifiedCount ok 2 - ReplaceOne when many documents match: matchedCount ok 3 - ReplaceOne when one document matches: modifiedCount ok 4 - ReplaceOne when one document matches: matchedCount ok 5 - ReplaceOne when one document matches: collection data ok 6 - ReplaceOne when no documents match: matchedCount ok 7 - ReplaceOne when no documents match: modifiedCount ok 8 - ReplaceOne when no documents match: collection data ok 9 - ReplaceOne with upsert when no documents match without an id specified: upsertedId ok 10 - ReplaceOne with upsert when no documents match without an id specified: matchedCount ok 11 - ReplaceOne with upsert when no documents match without an id specified: modifiedCount ok 12 - ReplaceOne with upsert when no documents match without an id specified: collection data ok 13 - ReplaceOne with upsert when no documents match with an id specified: modifiedCount ok 14 - ReplaceOne with upsert when no documents match with an id specified: upsertedId ok 15 - ReplaceOne with upsert when no documents match with an id specified: matchedCount ok 16 - ReplaceOne with upsert when no documents match with an id specified: collection data 1..16 ok 30 - replaceOne # Subtest: updateMany-arrayFilters ok 1 - UpdateMany when no documents match arrayFilters: modifiedCount ok 2 - UpdateMany when no documents match arrayFilters: matchedCount ok 3 - UpdateMany when no documents match arrayFilters: collection data ok 4 - UpdateMany when one document matches arrayFilters: modifiedCount ok 5 - UpdateMany when one document matches arrayFilters: matchedCount ok 6 - UpdateMany when one document matches arrayFilters: collection data ok 7 - UpdateMany when multiple documents match arrayFilters: modifiedCount ok 8 - UpdateMany when multiple documents match arrayFilters: matchedCount ok 9 - UpdateMany when multiple documents match arrayFilters: collection data 1..9 ok 31 - updateMany-arrayFilters # Subtest: insertMany ok 1 - InsertMany with non-existing documents: result doc ok 2 - InsertMany with non-existing documents: collection data 1..2 ok 32 - insertMany # Subtest: findOneAndReplace-upsert_pre_2.6 ok 1 - FindOneAndReplace when no documents match without id specified with upsert returning the document before modification: result doc ok 2 - FindOneAndReplace when no documents match without id specified with upsert returning the document after modification: result doc ok 3 - FindOneAndReplace when no documents match with id specified with upsert returning the document before modification: result doc ok 4 - FindOneAndReplace when no documents match with id specified with upsert returning the document before modification: collection data ok 5 - FindOneAndReplace when no documents match with id specified with upsert returning the document after modification: result doc ok 6 - FindOneAndReplace when no documents match with id specified with upsert returning the document after modification: collection data 1..6 ok 33 - findOneAndReplace-upsert_pre_2.6 # Subtest: findOneAndUpdate-arrayFilters ok 1 - FindOneAndUpdate when no document matches arrayFilters: result doc ok 2 - FindOneAndUpdate when no document matches arrayFilters: collection data ok 3 - FindOneAndUpdate when one document matches arrayFilters: result doc ok 4 - FindOneAndUpdate when one document matches arrayFilters: collection data ok 5 - FindOneAndUpdate when multiple documents match arrayFilters: result doc ok 6 - FindOneAndUpdate when multiple documents match arrayFilters: collection data 1..6 ok 34 - findOneAndUpdate-arrayFilters # Subtest: findOneAndReplace ok 1 - FindOneAndReplace when many documents match returning the document before modification: result doc ok 2 - FindOneAndReplace when many documents match returning the document before modification: collection data ok 3 - FindOneAndReplace when many documents match returning the document after modification: result doc ok 4 - FindOneAndReplace when many documents match returning the document after modification: collection data ok 5 - FindOneAndReplace when one document matches returning the document before modification: result doc ok 6 - FindOneAndReplace when one document matches returning the document before modification: collection data ok 7 - FindOneAndReplace when one document matches returning the document after modification: result doc ok 8 - FindOneAndReplace when one document matches returning the document after modification: collection data ok 9 - FindOneAndReplace when no documents match returning the document before modification: result doc ok 10 - FindOneAndReplace when no documents match returning the document before modification: collection data ok 11 - FindOneAndReplace when no documents match returning the document after modification: result doc ok 12 - FindOneAndReplace when no documents match returning the document after modification: collection data 1..12 ok 35 - findOneAndReplace # Subtest: updateMany ok 1 - UpdateMany when many documents match: matchedCount ok 2 - UpdateMany when many documents match: modifiedCount ok 3 - UpdateMany when many documents match: collection data ok 4 - UpdateMany when one document matches: modifiedCount ok 5 - UpdateMany when one document matches: matchedCount ok 6 - UpdateMany when one document matches: collection data ok 7 - UpdateMany when no documents match: matchedCount ok 8 - UpdateMany when no documents match: modifiedCount ok 9 - UpdateMany when no documents match: collection data ok 10 - UpdateMany with upsert when no documents match: upsertedId ok 11 - UpdateMany with upsert when no documents match: matchedCount ok 12 - UpdateMany with upsert when no documents match: modifiedCount ok 13 - UpdateMany with upsert when no documents match: collection data 1..13 ok 36 - updateMany # Subtest: deleteMany-collation ok 1 - DeleteMany when many documents match with collation: deletedCount ok 2 - DeleteMany when many documents match with collation: collection data 1..2 ok 37 - deleteMany-collation 1..37 ok t/cursor.t ................................. ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 ok 18 - query limit was propagated ok 19 ok 20 ok 21 ok 22 ok 23 - test undef ok 24 ok 25 ok 26 ok 27 ok 28 ok 29 ok 30 ok 31 ok 32 - Cursor->sort ok 33 ok 34 ok 35 ok 36 ok 37 - Tie::IxHash cursor->sort ok 38 ok 39 - check skip/limit ok 40 ok 41 ok 42 ok 43 - got limited documents ok 44 - first reset ok 45 - first doc after first reset ok 46 - second reset ok 47 - first doc after second reset ok 48 - reset ok 49 - count of items ok 50 - explain with limit ok 51 - explain with negative limit ok 52 - hint returns self ok 53 - check error on hint with explain ok 54 - set tailable ok 55 - clear tailable ok 56 - set tailable_await ok 57 - clear tailable_await ok 58 - set tailable ok 59 - clear tailable_await ok 60 - set tailable_await ok 61 - clear tailable ok 62 ok 63 - set immortal ok 64 - clear immortal ok 65 ok 66 ok 67 - before execution, info only has num field ok 68 - cursor executed and has results ok 69 - cursor reports more than zero results ok 70 - cursor still not iterated ok 71 ok 72 - cursor_id non-zero ok 73 ok 74 ok 75 - cursor_num after ->all ok 76 # Subtest: delayed tailable cursor ok 1 1..1 ok 77 - delayed tailable cursor # Subtest: await data ok 1 - cursor blocked to await data 1..1 ok 78 - await data 1..78 ok t/database.t ............................... # Subtest: get_database ok 1 - An object of class 'MongoDB::MongoClient' isa 'MongoDB::MongoClient' ok 2 - get_database(NAME) ok 3 - An object of class 'MongoDB::Database' isa 'MongoDB::Database' ok 4 - get_database(NAME, OPTIONS) ok 5 - DB-level write concern as expected ok 6 - get_database(NAME, OPTIONS) ok 7 - DB-level write concern coerces ok 8 - get_database(NAME, OPTIONS) ok 9 - DB-level bson_codec coerces ok 10 - client method 1..10 ok 1 - get_database # Subtest: run_command ok 1 - run_command(ARRAYREF) gives HASH ok 2 - run_command(HASHREF) gives HASH ok 3 - run_command(IxHash) gives HASH ok 4 - run_command(BSON::Doc) gives HASH ok 5 - error from non-existent command ok 6 - error on too large command ok 7 - error on multi-key regular hashref 1..7 ok 2 - run_command # Subtest: collection names ok 1 - no collections ok 2 - list_collections has empty cursor ok 3 - create test collection ok 4 - create capped collection ok 5 - collection_names included test ok 6 - list_collections included test ok 7 - collection_names included test_capped ok 8 - list_collections included test_capped ok 9 - collection_names with filter 1..9 ok 3 - collection names ok 4 1..4 ok t/dbref.t .................................. ok 1 - constructor ok 2 - An object of class 'BSON::DBRef' isa 'BSON::DBRef' ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 - no db in new gives undef db ok 10 - explicit undef db in new gives undef db ok 11 ok 12 - An object of class 'BSON::DBRef' isa 'BSON::DBRef' ok 13 ok 14 ok 15 ok 16 - An object of class 'BSON::DBRef' isa 'BSON::DBRef' ok 17 - $ref ok 18 - $id ok 19 - $db undefined # Subtest: round-trip fields ok 1 - An object of class 'BSON::DBRef' isa 'BSON::DBRef' ok 2 - foo ok 3 - baz ok 4 - id 1..4 ok 20 - round-trip fields 1..20 ok t/enumerate_databases.t .................... # Subtest: list databases ok 1 - Found at least 6 databases ok 2 - Found two foo databases ok 3 - Database has empty attribute ok 4 - Database has correct name ok 5 - Database has sizeOnDisk attribute ok 6 - Database has empty attribute ok 7 - Database has correct name ok 8 - Database has sizeOnDisk attribute 1..8 ok 1 - list databases # Subtest: list database names ok 1 - Got expected set of names 1..1 ok 2 - list database names 1..2 ok t/errors.t ................................. ok 1 - An object of class 'MongoDB::Error' isa 'MongoDB::Error' ok 2 - An object of class 'MongoDB::ConnectionError' isa 'MongoDB::Error' ok 3 - 'MongoDB::WriteError' isa 'MongoDB::DatabaseError' ok 4 - 'MongoDB::WriteError' isa 'MongoDB::Error' ok 5 - object message captured ok 6 - object details captured ok 7 - object stringifies to class plus error message 1..7 ok t/find_modifiers.t ......................... # Subtest: Given: a query comment # Subtest: When: adding a comment via option ok 1 - Number of documents correct ok 2 - 'comment' correct 1..2 ok 1 - When: adding a comment via option # Subtest: When: adding a comment via modifiers ok 1 - Number of documents correct ok 2 - 'comment' correct 1..2 ok 2 - When: adding a comment via modifiers # Subtest: When: adding a comment via both options and modifiers ok 1 - Number of documents correct ok 2 - 'comment' correct 1..2 ok 3 - When: adding a comment via both options and modifiers 1..3 ok 1 - Given: a query comment # Subtest: Given: a hint string # Subtest: When: adding a hint via option ok 1 - Number of documents correct ok 2 - 'hint' correct 1..2 ok 1 - When: adding a hint via option # Subtest: When: adding a hint via modifiers ok 1 - Number of documents correct ok 2 - 'hint' correct 1..2 ok 2 - When: adding a hint via modifiers # Subtest: When: adding a hint via options and modifiers ok 1 - Number of documents correct ok 2 - 'hint' correct 1..2 ok 3 - When: adding a hint via options and modifiers # Subtest: When: adding a hint via cursor method ok 1 - Number of documents correct ok 2 - 'hint' correct 1..2 ok 4 - When: adding a hint via cursor method 1..4 ok 2 - Given: a hint string # Subtest: Given: a hint document # Subtest: When: adding a hint via option ok 1 - Number of documents correct ok 2 - 'hint' correct 1..2 ok 1 - When: adding a hint via option # Subtest: When: adding a hint via modifiers ok 1 - Number of documents correct ok 2 - 'hint' correct 1..2 ok 2 - When: adding a hint via modifiers # Subtest: When: adding a hint via options and modifiers ok 1 - Number of documents correct ok 2 - 'hint' correct 1..2 ok 3 - When: adding a hint via options and modifiers # Subtest: When: adding a hint via cursor method ok 1 - Number of documents correct ok 2 - 'hint' correct 1..2 ok 4 - When: adding a hint via cursor method 1..4 ok 3 - Given: a hint document # Subtest: Given: a 'max' value for an index # Subtest: When: adding a max via option ok 1 - Number of documents correct ok 2 - 'max' correct 1..2 ok 1 - When: adding a max via option # Subtest: When: adding a max via modifiers ok 1 - Number of documents correct ok 2 - 'max' correct 1..2 ok 2 - When: adding a max via modifiers # Subtest: When: adding a max via option and modifiers ok 1 - Number of documents correct ok 2 - 'max' correct 1..2 ok 3 - When: adding a max via option and modifiers 1..3 ok 4 - Given: a 'max' value for an index # Subtest: Given: a 'maxScan' value for an index # Subtest: When: adding a maxScan via option ok 1 - Number of documents correct ok 2 - 'maxScan' correct 1..2 ok 1 - When: adding a maxScan via option # Subtest: When: adding a maxScan via modifiers ok 1 - Number of documents correct ok 2 - 'maxScan' correct 1..2 ok 2 - When: adding a maxScan via modifiers # Subtest: When: adding a maxScan via options and modifiers ok 1 - Number of documents correct ok 2 - 'maxScan' correct 1..2 ok 3 - When: adding a maxScan via options and modifiers 1..3 ok 5 - Given: a 'maxScan' value for an index # Subtest: Given: a 'maxTimeMS' value for an index # Subtest: When: adding a maxTimeMS via option ok 1 - Number of documents correct ok 2 - 'maxTimeMS' correct 1..2 ok 1 - When: adding a maxTimeMS via option # Subtest: When: adding a maxTimeMS via modifiers ok 1 - Number of documents correct ok 2 - 'maxTimeMS' correct 1..2 ok 2 - When: adding a maxTimeMS via modifiers # Subtest: When: adding a maxTimeMS via options and modifiers ok 1 - Number of documents correct ok 2 - 'maxTimeMS' correct 1..2 ok 3 - When: adding a maxTimeMS via options and modifiers # Subtest: When: adding a maxTimeMS via cursor method ok 1 - Number of documents correct ok 2 - 'maxTimeMS' correct 1..2 ok 4 - When: adding a maxTimeMS via cursor method 1..4 ok 6 - Given: a 'maxTimeMS' value for an index # Subtest: Given: a 'min' value for an index # Subtest: When: adding a min via option ok 1 - Number of documents correct ok 2 - 'min' correct 1..2 ok 1 - When: adding a min via option # Subtest: When: adding a min via modifiers ok 1 - Number of documents correct ok 2 - 'min' correct 1..2 ok 2 - When: adding a min via modifiers # Subtest: When: adding a min via options and modifiers ok 1 - Number of documents correct ok 2 - 'min' correct 1..2 ok 3 - When: adding a min via options and modifiers 1..3 ok 7 - Given: a 'min' value for an index # Subtest: Given: a 'returnKey' value for an index # Subtest: When: adding a returnKey via option ok 1 - Number of documents correct ok 2 - 'returnKey' correct 1..2 ok 1 - When: adding a returnKey via option # Subtest: When: adding a returnKey via modifiers ok 1 - Number of documents correct ok 2 - 'returnKey' correct 1..2 ok 2 - When: adding a returnKey via modifiers # Subtest: When: adding a returnKey via options and modifiers ok 1 - Number of documents correct ok 2 - 'returnKey' correct 1..2 ok 3 - When: adding a returnKey via options and modifiers 1..3 ok 8 - Given: a 'returnKey' value for an index # Subtest: Given: a 'sort' value for an index # Subtest: When: adding a sort via option ok 1 - Number of documents correct ok 2 - 'sort' correct 1..2 ok 1 - When: adding a sort via option # Subtest: When: adding a sort via modifiers ok 1 - Number of documents correct ok 2 - 'sort' correct 1..2 ok 2 - When: adding a sort via modifiers # Subtest: When: adding a sort via options and modifiers ok 1 - Number of documents correct ok 2 - 'sort' correct 1..2 ok 3 - When: adding a sort via options and modifiers # Subtest: When: adding a sort via cursor method ok 1 - Number of documents correct ok 2 - 'sort' correct 1..2 ok 4 - When: adding a sort via cursor method 1..4 ok 9 - Given: a 'sort' value for an index # Subtest: Given: a 'showRecordId' value for an index # Subtest: When: adding a showRecordId via option ok 1 - Number of documents correct ok 2 - 'showRecordId' correct 1..2 ok 1 - When: adding a showRecordId via option # Subtest: When: adding a showRecordId via modifiers ok 1 - Number of documents correct ok 2 - 'showRecordId' correct 1..2 ok 2 - When: adding a showRecordId via modifiers # Subtest: When: adding a showRecordId via options and modifiers ok 1 - Number of documents correct ok 2 - 'showRecordId' correct 1..2 ok 3 - When: adding a showRecordId via options and modifiers 1..3 ok 10 - Given: a 'showRecordId' value for an index 1..10 ok t/fsync.t .................................. # Subtest: normal fsync ok 1 - fsync returned 'ok' => 1 1..1 ok 1 - normal fsync # Subtest: fsync with lock ok 1 - fsync + lock returned 'ok' => 1 ok 2 - MongoDB is locked. ok 3 - Got 'ok' => 1 from unlock command. ok 4 - MongoDB is no longer locked. 1..4 ok 2 - fsync with lock 1..2 ok t/gridfs_spec.t ............................ # Subtest: Delete when length is 0 ok 1 - Assertion # Subtest: Compare collections ok 1 - chunk[1]._id ok 2 - chunk[1].data ok 3 - chunk[1].files_id ok 4 - chunk[1].n ok 5 - chunk[2]._id ok 6 - chunk[2].data ok 7 - chunk[2].files_id ok 8 - chunk[2].n ok 9 - chunk[3]._id ok 10 - chunk[3].data ok 11 - chunk[3].files_id ok 12 - chunk[3].n ok 13 - chunk[4]._id ok 14 - chunk[4].data ok 15 - chunk[4].files_id ok 16 - chunk[4].n ok 17 - No extra chunks in fs.chunks ok 18 - No extra chunks in expected.chunks ok 19 - files[1]._id ok 20 - files[1].chunkSize ok 21 - files[1].contentType ok 22 - files[1].filename ok 23 - files[1].length ok 24 - files[1].md5 ok 25 - files[1].uploadDate.$date ok 26 - files[2]._id ok 27 - files[2].chunkSize ok 28 - files[2].contentType ok 29 - files[2].filename ok 30 - files[2].length ok 31 - files[2].md5 ok 32 - files[2].uploadDate.$date ok 33 - files[3]._id ok 34 - files[3].chunkSize ok 35 - files[3].contentType ok 36 - files[3].filename ok 37 - files[3].length ok 38 - files[3].md5 ok 39 - files[3].uploadDate.$date ok 40 - No extra files in fs.files ok 41 - No extra files in expected.files 1..41 ok 2 - Compare collections 1..2 ok 1 - Delete when length is 0 # Subtest: Delete when length is 0 and there is one extra empty chunk ok 1 - Assertion # Subtest: Compare collections ok 1 - chunk[1]._id ok 2 - chunk[1].data ok 3 - chunk[1].files_id ok 4 - chunk[1].n ok 5 - chunk[2]._id ok 6 - chunk[2].data ok 7 - chunk[2].files_id ok 8 - chunk[2].n ok 9 - chunk[3]._id ok 10 - chunk[3].data ok 11 - chunk[3].files_id ok 12 - chunk[3].n ok 13 - No extra chunks in fs.chunks ok 14 - No extra chunks in expected.chunks ok 15 - files[1]._id ok 16 - files[1].chunkSize ok 17 - files[1].contentType ok 18 - files[1].filename ok 19 - files[1].length ok 20 - files[1].md5 ok 21 - files[1].uploadDate.$date ok 22 - files[2]._id ok 23 - files[2].chunkSize ok 24 - files[2].contentType ok 25 - files[2].filename ok 26 - files[2].length ok 27 - files[2].md5 ok 28 - files[2].uploadDate.$date ok 29 - files[3]._id ok 30 - files[3].chunkSize ok 31 - files[3].contentType ok 32 - files[3].filename ok 33 - files[3].length ok 34 - files[3].md5 ok 35 - files[3].uploadDate.$date ok 36 - No extra files in fs.files ok 37 - No extra files in expected.files 1..37 ok 2 - Compare collections 1..2 ok 2 - Delete when length is 0 and there is one extra empty chunk # Subtest: Delete when length is 8 ok 1 - Assertion # Subtest: Compare collections ok 1 - chunk[1]._id ok 2 - chunk[1].data ok 3 - chunk[1].files_id ok 4 - chunk[1].n ok 5 - chunk[2]._id ok 6 - chunk[2].data ok 7 - chunk[2].files_id ok 8 - chunk[2].n ok 9 - No extra chunks in fs.chunks ok 10 - No extra chunks in expected.chunks ok 11 - files[1]._id ok 12 - files[1].chunkSize ok 13 - files[1].contentType ok 14 - files[1].filename ok 15 - files[1].length ok 16 - files[1].md5 ok 17 - files[1].uploadDate.$date ok 18 - files[2]._id ok 19 - files[2].chunkSize ok 20 - files[2].contentType ok 21 - files[2].filename ok 22 - files[2].length ok 23 - files[2].md5 ok 24 - files[2].uploadDate.$date ok 25 - files[3]._id ok 26 - files[3].chunkSize ok 27 - files[3].contentType ok 28 - files[3].filename ok 29 - files[3].length ok 30 - files[3].md5 ok 31 - files[3].uploadDate.$date ok 32 - No extra files in fs.files ok 33 - No extra files in expected.files 1..33 ok 2 - Compare collections 1..2 ok 3 - Delete when length is 8 # Subtest: Delete when files entry does not exist ok 1 - Exception: FileNotFound 1..1 ok 4 - Delete when files entry does not exist # Subtest: Delete when files entry does not exist and there are orphaned chunks ok 1 - Exception: FileNotFound # Subtest: Compare collections ok 1 - chunk[1]._id ok 2 - chunk[1].data ok 3 - chunk[1].files_id ok 4 - chunk[1].n ok 5 - chunk[2]._id ok 6 - chunk[2].data ok 7 - chunk[2].files_id ok 8 - chunk[2].n ok 9 - chunk[3]._id ok 10 - chunk[3].data ok 11 - chunk[3].files_id ok 12 - chunk[3].n ok 13 - chunk[4]._id ok 14 - chunk[4].data ok 15 - chunk[4].files_id ok 16 - chunk[4].n ok 17 - No extra chunks in fs.chunks ok 18 - No extra chunks in expected.chunks ok 19 - files[1]._id ok 20 - files[1].chunkSize ok 21 - files[1].contentType ok 22 - files[1].filename ok 23 - files[1].length ok 24 - files[1].md5 ok 25 - files[1].uploadDate.$date ok 26 - files[2]._id ok 27 - files[2].chunkSize ok 28 - files[2].contentType ok 29 - files[2].filename ok 30 - files[2].length ok 31 - files[2].md5 ok 32 - files[2].uploadDate.$date ok 33 - files[3]._id ok 34 - files[3].chunkSize ok 35 - files[3].contentType ok 36 - files[3].filename ok 37 - files[3].length ok 38 - files[3].md5 ok 39 - files[3].uploadDate.$date ok 40 - No extra files in fs.files ok 41 - No extra files in expected.files 1..41 ok 2 - Compare collections 1..2 ok 5 - Delete when files entry does not exist and there are orphaned chunks # Subtest: Download when length is zero ok 1 - Assertion 1..1 ok 6 - Download when length is zero # Subtest: Download when length is zero and there is one empty chunk ok 1 - Assertion 1..1 ok 7 - Download when length is zero and there is one empty chunk # Subtest: Download when there is one chunk ok 1 - Assertion 1..1 ok 8 - Download when there is one chunk # Subtest: Download when there are two chunks ok 1 - Assertion 1..1 ok 9 - Download when there are two chunks # Subtest: Download when there are three chunks ok 1 - Assertion 1..1 ok 10 - Download when there are three chunks # Subtest: Download when files entry does not exist ok 1 - Exception: FileNotFound 1..1 ok 11 - Download when files entry does not exist # Subtest: Download when an intermediate chunk is missing ok 1 - Exception: ChunkIsMissing 1..1 ok 12 - Download when an intermediate chunk is missing # Subtest: Download when final chunk is missing ok 1 - Exception: ChunkIsMissing 1..1 ok 13 - Download when final chunk is missing # Subtest: Download when an intermediate chunk is the wrong size ok 1 - Exception: ChunkIsWrongSize 1..1 ok 14 - Download when an intermediate chunk is the wrong size # Subtest: Download when final chunk is the wrong size ok 1 - Exception: ChunkIsWrongSize 1..1 ok 15 - Download when final chunk is the wrong size # Subtest: Upload when length is 0 # Subtest: Compare collections ok 1 - No extra chunks in fs.chunks ok 2 - No extra chunks in expected.chunks ok 3 - files[1]._id (*result = &result) ok 4 - files[1].chunkSize ok 5 - files[1].filename ok 6 - files[1].length ok 7 - files[1].md5 ok 8 - files[1].uploadDate (Passing with special *actual value) ok 9 - No extra files in fs.files ok 10 - No extra files in expected.files 1..10 ok 1 - Compare collections 1..1 ok 16 - Upload when length is 0 # Subtest: Upload when length is 1 # Subtest: Compare collections ok 1 - chunk[1]._id (Passing with special *actual value) ok 2 - chunk[1].data ok 3 - chunk[1].files_id (*result = &result) ok 4 - chunk[1].n ok 5 - No extra chunks in fs.chunks ok 6 - No extra chunks in expected.chunks ok 7 - files[1]._id (*result = &result) ok 8 - files[1].chunkSize ok 9 - files[1].filename ok 10 - files[1].length ok 11 - files[1].md5 ok 12 - files[1].uploadDate (Passing with special *actual value) ok 13 - No extra files in fs.files ok 14 - No extra files in expected.files 1..14 ok 1 - Compare collections 1..1 ok 17 - Upload when length is 1 # Subtest: Upload when length is 3 # Subtest: Compare collections ok 1 - chunk[1]._id (Passing with special *actual value) ok 2 - chunk[1].data ok 3 - chunk[1].files_id (*result = &result) ok 4 - chunk[1].n ok 5 - No extra chunks in fs.chunks ok 6 - No extra chunks in expected.chunks ok 7 - files[1]._id (*result = &result) ok 8 - files[1].chunkSize ok 9 - files[1].filename ok 10 - files[1].length ok 11 - files[1].md5 ok 12 - files[1].uploadDate (Passing with special *actual value) ok 13 - No extra files in fs.files ok 14 - No extra files in expected.files 1..14 ok 1 - Compare collections 1..1 ok 18 - Upload when length is 3 # Subtest: Upload when length is 4 # Subtest: Compare collections ok 1 - chunk[1]._id (Passing with special *actual value) ok 2 - chunk[1].data ok 3 - chunk[1].files_id (*result = &result) ok 4 - chunk[1].n ok 5 - No extra chunks in fs.chunks ok 6 - No extra chunks in expected.chunks ok 7 - files[1]._id (*result = &result) ok 8 - files[1].chunkSize ok 9 - files[1].filename ok 10 - files[1].length ok 11 - files[1].md5 ok 12 - files[1].uploadDate (Passing with special *actual value) ok 13 - No extra files in fs.files ok 14 - No extra files in expected.files 1..14 ok 1 - Compare collections 1..1 ok 19 - Upload when length is 4 # Subtest: Upload when length is 5 # Subtest: Compare collections ok 1 - chunk[1]._id (Passing with special *actual value) ok 2 - chunk[1].data ok 3 - chunk[1].files_id (*result = &result) ok 4 - chunk[1].n ok 5 - chunk[2]._id (Passing with special *actual value) ok 6 - chunk[2].data ok 7 - chunk[2].files_id (*result = &result) ok 8 - chunk[2].n ok 9 - No extra chunks in fs.chunks ok 10 - No extra chunks in expected.chunks ok 11 - files[1]._id (*result = &result) ok 12 - files[1].chunkSize ok 13 - files[1].filename ok 14 - files[1].length ok 15 - files[1].md5 ok 16 - files[1].uploadDate (Passing with special *actual value) ok 17 - No extra files in fs.files ok 18 - No extra files in expected.files 1..18 ok 1 - Compare collections 1..1 ok 20 - Upload when length is 5 # Subtest: Upload when length is 8 # Subtest: Compare collections ok 1 - chunk[1]._id (Passing with special *actual value) ok 2 - chunk[1].data ok 3 - chunk[1].files_id (*result = &result) ok 4 - chunk[1].n ok 5 - chunk[2]._id (Passing with special *actual value) ok 6 - chunk[2].data ok 7 - chunk[2].files_id (*result = &result) ok 8 - chunk[2].n ok 9 - No extra chunks in fs.chunks ok 10 - No extra chunks in expected.chunks ok 11 - files[1]._id (*result = &result) ok 12 - files[1].chunkSize ok 13 - files[1].filename ok 14 - files[1].length ok 15 - files[1].md5 ok 16 - files[1].uploadDate (Passing with special *actual value) ok 17 - No extra files in fs.files ok 18 - No extra files in expected.files 1..18 ok 1 - Compare collections 1..1 ok 21 - Upload when length is 8 # Subtest: Upload when contentType is provided # Subtest: Compare collections ok 1 - chunk[1]._id (Passing with special *actual value) ok 2 - chunk[1].data ok 3 - chunk[1].files_id (*result = &result) ok 4 - chunk[1].n ok 5 - No extra chunks in fs.chunks ok 6 - No extra chunks in expected.chunks ok 7 - files[1]._id (*result = &result) ok 8 - files[1].chunkSize ok 9 - files[1].contentType ok 10 - files[1].filename ok 11 - files[1].length ok 12 - files[1].md5 ok 13 - files[1].uploadDate (Passing with special *actual value) ok 14 - No extra files in fs.files ok 15 - No extra files in expected.files 1..15 ok 1 - Compare collections 1..1 ok 22 - Upload when contentType is provided # Subtest: Upload when metadata is provided # Subtest: Compare collections ok 1 - chunk[1]._id (Passing with special *actual value) ok 2 - chunk[1].data ok 3 - chunk[1].files_id (*result = &result) ok 4 - chunk[1].n ok 5 - No extra chunks in fs.chunks ok 6 - No extra chunks in expected.chunks ok 7 - files[1]._id (*result = &result) ok 8 - files[1].chunkSize ok 9 - files[1].filename ok 10 - files[1].length ok 11 - files[1].md5 ok 12 - files[1].metadata.x ok 13 - files[1].uploadDate (Passing with special *actual value) ok 14 - No extra files in fs.files ok 15 - No extra files in expected.files 1..15 ok 1 - Compare collections 1..1 ok 23 - Upload when metadata is provided 1..23 ok t/gridfsbucket.t ........................... ok 1 - read preference ok 2 - write concern ok 3 - default bucket name ok 4 - default chunk size bytes ok 5 - upload small file ok 6 - upload small file has 1 chunk ok 7 - upload small file chunk n ok 8 - upload small file data ok 9 - upload small file files document ok 10 - upload small file md5 ok 11 - upload small file length ok 12 - upload small file length ok 13 - upload small file uploadDate ok 14 - upload large file # Subtest: upload large file ok 1 - upload large file chunk 0 n ok 2 - upload large file chunk 0 data ok 3 - upload large file chunk 1 n ok 4 - upload large file chunk 1 data ok 5 - upload large file chunk 2 n ok 6 - upload large file chunk 2 data ok 7 - upload large file chunk 3 n ok 8 - upload large file chunk 3 data ok 9 - upload large file chunk 4 n ok 10 - upload large file chunk 4 data 1..10 ok 15 - upload large file ok 16 - upload large file whole file ok 17 - upload large file files document ok 18 - upload large file md5 ok 19 - upload large file length ok 20 - upload large file filename ok 21 - upload large file uploadDate ok 22 - upload large file metadta ok 23 - upload large file content_type ok 24 - upload large file aliases ok 25 - upload custom id md5 ok 26 - upload custom id length ok 27 - upload custom id filename ok 28 - created file has correct custom file id ok 29 - _id ok 30 - chunkSize ok 31 - filename ok 32 - length ok 33 - md5 ok 34 - uploadDate # Subtest: disable_md5 ok 1 - upload_from_stream_with_id: md5 omitted ok 2 - open_upload_stream_with_id: md5 omitted in returned doc ok 3 - open_upload_stream_with_id: md5 omitted in uploaded doc 1..3 ok 35 - disable_md5 ok 36 - bucket delete files ok 37 - bucket delete chunks ok 38 - delete nonexistant file ok 39 - found file length ok 40 - only one document found ok 41 - drop leaves files empty ok 42 - drop leaves chunks empty ok 43 - new bucket doesn't create indexes ok 44 - unique files index on filename+uploadDate created ok 45 - unique chunks index on files_id+n created ok 46 - upload on same bucket doesn't reindex ok 47 - upload on same bucket doesn't reindex ok 48 - download_to_stream does not close file handle ok 49 - download_to_stream writes to disk ok 50 - simple read ok 51 - read with null byte padding ok 52 - read with negative offset ok 53 - read with large negative offset ok 54 - readline 1 ok 55 - readline 2 ok 56 - readline 3 ok 57 - readline in ltext_ist context ok 58 - readline slurp mode ok 59 - DownloadStream complex read ok 60 - fileno on fh returns -1 ok 61 - simple fh read ok 62 - complex fh read ok 63 - complex fh readline as expected ok 64 - EOF ok 65 - fileno on closed fh returns undef ok 66 - fh readline before close ok 67 - fh readline after close ok 68 - _id ok 69 - chunkSize ok 70 - filename ok 71 - length ok 72 - md5 ok 73 - uploadDate ok 74 - custom chunk size num chunks ok 75 - custom chunk size boundries 1 ok 76 - custom chunk size boundries 2 ok 77 - custom chunk size read ok 78 - custom chunk size download ok 79 - fileno on open fh returns -1 ok 80 - fileno on closed fh returns undef ok 81 - unicode upload ok 82 - unicode upload file length ok 83 - unicode read length ok 84 - unicode read content ok 85 - Uploads >1 ms apart are allowed 1..85 ok t/indexview.t .............................. # Subtest: collection API ok 1 - 'coll->indexes' isa 'MongoDB::IndexView' 1..1 ok 1 - collection API # Subtest: create_many ok 1 - got non-empty result ok 2 - returned list of names ok 3 - exception creating impossible index ok 4 - exception giving unordered docs for keys ok 5 - no exception on single-key hashref ok 6 - create_many with valid collation ok 7 - index created successfully ok 8 - created index has correct locale ok 9 - created index has correct strength 1..9 ok 2 - create_many # Subtest: list indexes ok 1 - 'indexes->list' isa 'MongoDB::QueryResult' ok 2 - list only gives _id_ index ok 3 - added index ok 4 - list finds both indexes 1..4 ok 3 - list indexes # Subtest: create_one ok 1 - created one index on x ok 2 - created unique index on y ok 3 - saw unique property in index info for y ok 4 - exception putting 'keys' in options ok 5 - exception putting 'key' in options ok 6 - exception giving unordered docs for keys ok 7 - no exception on single-key hashref ok 8 - exception creating impossible index ok 9 - create_one with valid collation ok 10 - create_one with invalid collation 1..10 ok 4 - create_one # Subtest: drop_one ok 1 - created index on x ok 2 - result of drop_one is a database result document ok 3 - dropped index on x ok 4 - result of drop_one is a database result document with false, but no exception ok 5 - exception calling drop_one on '*' ok 6 - exception dropping _id_ ok 7 - exception dropping hashref 1..7 ok 5 - drop_one # Subtest: drop_all ok 1 - created three indexes ok 2 - result of drop_all is a database result document ok 3 - dropped all but _id index 1..3 ok 6 - drop_all # Subtest: handling duplicates ok 1 - two identical docs inserted ok 2 - got expected error creating unique index with dups 1..2 ok 7 - handling duplicates # Subtest: 2d index with options ok 1 - created 2d index ok 2 - sparse option set on index ok 3 - bits option set on index 1..3 ok 8 - 2d index with options # Subtest: ensure index arbitrary options ok 1 - 'error from create_one w/ invalid opts' isa 'MongoDB::DatabaseError' 1..1 ok 9 - ensure index arbitrary options # Subtest: indexes w/ same key pattern but different collations ok 1 - both indexes created ok 2 - correct index dropped 1..2 ok 10 - indexes w/ same key pattern but different collations # Subtest: index with dots ok 1 - got index ok 2 - has key field ok 3 - has dotted field in key 1..3 ok 11 - index with dots # Subtest: sparse indexes ok 1 - inserted 20 docs ok 2 - error creating non-sparse index ok 3 - index not found ok 4 - sparse index created 1..4 ok 12 - sparse indexes # Subtest: text indices ok 1 - inserted 10 documents ok 2 - created text index ok 3 - default_language option works ok 4 - language_override option works ok 5 - weights option works 1 ok 6 - weights option works 2 ok 7 - correct number of results found 1..7 ok 13 - text indices # Subtest: index key order ok 1 - Key correct to name x_1_y_1 ok 2 - Key correct to name x_1_z_1 ok 3 - Key correct to name x_1_y_1_z_1 1..3 ok 14 - index key order 1..14 ok t/max_staleness_spec.t ..................... ok 1 - ReplicaSetNoPrimary/DefaultNoMaxStaleness ok 2 - ReplicaSetNoPrimary/Incompatible ok 3 - ReplicaSetNoPrimary/LastUpdateTime ok 4 - ReplicaSetNoPrimary/Nearest ok 5 - ReplicaSetNoPrimary/Nearest2 ok 6 - ReplicaSetNoPrimary/NoKnownServers ok 7 - ReplicaSetNoPrimary/PrimaryPreferred ok 8 - ReplicaSetNoPrimary/PrimaryPreferred_tags ok 9 - ReplicaSetNoPrimary/Secondary ok 10 - ReplicaSetNoPrimary/SecondaryPreferred ok 11 - ReplicaSetNoPrimary/SecondaryPreferred_tags ok 12 - ReplicaSetNoPrimary/ZeroMaxStaleness ok 13 - ReplicaSetWithPrimary/DefaultNoMaxStaleness ok 14 - ReplicaSetWithPrimary/Incompatible ok 15 - ReplicaSetWithPrimary/LastUpdateTime ok 16 - ReplicaSetWithPrimary/LongHeartbeat ok 17 - ReplicaSetWithPrimary/LongHeartbeat2 ok 18 - ReplicaSetWithPrimary/MaxStalenessTooSmall ok 19 - ReplicaSetWithPrimary/MaxStalenessWithModePrimary ok 20 - ReplicaSetWithPrimary/Nearest ok 21 - ReplicaSetWithPrimary/Nearest2 ok 22 - ReplicaSetWithPrimary/Nearest_tags ok 23 - ReplicaSetWithPrimary/PrimaryPreferred ok 24 - ReplicaSetWithPrimary/PrimaryPreferred_incompatible ok 25 - ReplicaSetWithPrimary/SecondaryPreferred ok 26 - ReplicaSetWithPrimary/SecondaryPreferred_tags ok 27 - ReplicaSetWithPrimary/SecondaryPreferred_tags2 ok 28 - ReplicaSetWithPrimary/Secondary_tags ok 29 - ReplicaSetWithPrimary/Secondary_tags2 ok 30 - ReplicaSetWithPrimary/ZeroMaxStaleness ok 31 - Sharded/Incompatible ok 32 - Sharded/SmallMaxStaleness ok 33 - Single/Incompatible ok 34 - Single/SmallMaxStaleness ok 35 - Unknown/SmallMaxStaleness ok 36 - mongodb://host/?readPreference=secondary&maxStalenessSeconds=120 parsed ok 37 - mongodb://host/?maxStalenessSeconds=120 is an error ok 38 - mongodb://host/?readPreference=primary&maxStalenessSeconds=120 is an error ok 39 - mongodb://host/?readPreference=secondary&maxStalenessSeconds=-1 parsed ok 40 - mongodb://host/?readPreference=secondary&maxStalenessSeconds=1 parsed ok 41 - mongodb://host/?maxStalenessSeconds=-1 parsed ok 42 - mongodb://host/?readPreference=primary&maxStalenessSeconds=-1 parsed ok 43 - mongodb://host/?readPreference=secondary&maxStalenessSeconds=0 is an error 1..43 ok t/monitoring.t ............................. # Subtest: Initialize client with monitoring callback ok 1 - got an event ok 2 - correct event 1..2 ok 1 - Initialize client with monitoring callback # Subtest: run_command ok 1 - got 2+ events # Subtest: command_started ok 1 - command_success count ok 2 - databaseName ok 3 - commandName ok 4 - command ok 5 - requestId ok 6 - connectionId 1..6 ok 2 - command_started # Subtest: command_succeeded ok 1 - command_succeeded count ok 2 - databaseName ok 3 - commandName ok 4 - requestId ok 5 - duration ok 6 - connectionId 1..6 ok 3 - command_succeeded # Subtest: command_failed ok 1 - Got exception ok 2 - got 2+ events ok 3 - command_failed count ok 4 - databaseName ok 5 - commandName ok 6 - requestId ok 7 - duration ok 8 - connectionId ok 9 - failure ok 10 - 'reply' isa 'HASH' 1..10 ok 4 - command_failed 1..4 ok 2 - run_command # Subtest: write commands # Subtest: command_started ok 1 - got events ok 2 - saw insert command ok 3 - saw update command ok 4 - saw delete command 1..4 ok 1 - command_started # Subtest: command_succeeded ok 1 - got events ok 2 - saw insert command ok 3 - saw update command ok 4 - saw delete command 1..4 ok 2 - command_succeeded # Subtest: failed write is still command_succeeded ok 1 - Got exception ok 2 - got events ok 3 - saw insert command 1..3 ok 3 - failed write is still command_succeeded 1..3 ok 3 - write commands # Subtest: unack'd writes # Subtest: command_started ok 1 - got events ok 2 - saw insert command ok 3 - saw update command ok 4 - saw delete command 1..4 ok 1 - command_started # Subtest: command_succeeded ok 1 - got events ok 2 - saw insert command ok 3 - saw update command ok 4 - saw delete command 1..4 ok 2 - command_succeeded # Subtest: failed write is still command_succeeded 1..0 # SKIP w:0 won't error ok 3 # skip w:0 won't error 1..3 ok 4 - unack'd writes # Subtest: find and getMore # Subtest: command_started ok 1 - got events ok 2 - find command ok 3 - getMore commands 1..3 ok 1 - command_started # Subtest: command_succeeded ok 1 - got events ok 2 - find command ok 3 - getMore commands 1..3 ok 2 - command_succeeded # Subtest: command_failed ok 1 - Got exception ok 2 - got events ok 3 - find command 1..3 ok 3 - command_failed 1..3 ok 5 - find and getMore # Subtest: exceptions are command_failed # Subtest: insert ok 1 - got exception ok 2 - got events ok 3 - commandName ok 4 - requestId ok 5 - duration ok 6 - connectionId ok 7 - failure msg ok 8 - 'eval_error' isa 'MongoDB::NetworkError' 1..8 ok 1 - insert # Subtest: insert unack'd ok 1 - got exception ok 2 - got events ok 3 - commandName ok 4 - requestId ok 5 - duration ok 6 - connectionId ok 7 - failure msg ok 8 - 'eval_error' isa 'MongoDB::NetworkError' 1..8 ok 2 - insert unack'd # Subtest: find ok 1 - got exception ok 2 - got events ok 3 - commandName ok 4 - requestId ok 5 - duration ok 6 - connectionId ok 7 - failure msg ok 8 - 'eval_error' isa 'MongoDB::NetworkError' 1..8 ok 3 - find 1..3 ok 6 - exceptions are command_failed # Subtest: redactions ok 1 - start event ok 2 - success event ok 3 - command not empty ok 4 - reply not empty ok 5 - no command fields ok 6 - no reply fields 1..6 ok 7 - redactions 1..7 ok t/monitoring_spec.t ........................ # Subtest: deleteMany # Subtest: A successful delete many # Subtest: command_started_event ok 1 - event available ok 2 - is a command_started_event ok 3 - command field 'delete' ok 4 - command field 'deletes' ok 5 - command name ok 6 - database_name defined ok 7 - database_name non-empty 1..7 ok 1 - command_started_event # Subtest: command_succeeded_event ok 1 - event available ok 2 - is a command_succeeded_event ok 3 - command name ok 4 - reply field n ok 5 - reply field ok 1..5 ok 2 - command_succeeded_event ok 3 - no outstanding events 1..3 ok 1 - A successful delete many # Subtest: A successful delete many command with write errors # error from 'delete_many': MongoDB::WriteError: unknown operator: $nothing # Subtest: command_started_event ok 1 - event available ok 2 - is a command_started_event ok 3 - command field 'delete' ok 4 - command field 'deletes' ok 5 - command name ok 6 - database_name defined ok 7 - database_name non-empty 1..7 ok 1 - command_started_event # Subtest: command_succeeded_event ok 1 - event available ok 2 - is a command_succeeded_event ok 3 - command name ok 4 - reply field n ok 5 - reply field ok ok 6 - reply field writeErrors 1..6 ok 2 - command_succeeded_event ok 3 - no outstanding events 1..3 ok 2 - A successful delete many command with write errors 1..2 ok 1 - deleteMany # Subtest: unacknowledgedBulkWrite # Subtest: A successful unordered bulk write with an unacknowledged write concern # Subtest: command_started_event ok 1 - event available ok 2 - is a command_started_event ok 3 - command field 'documents' ok 4 - command field 'insert' ok 5 - command field 'writeConcern' ok 6 - command name ok 7 - database_name defined ok 8 - database_name non-empty 1..8 ok 1 - command_started_event # Subtest: command_succeeded_event ok 1 - event available ok 2 - is a command_succeeded_event ok 3 - command name ok 4 - reply field ok 1..4 ok 2 - command_succeeded_event ok 3 - no outstanding events 1..3 ok 1 - A successful unordered bulk write with an unacknowledged write concern 1..1 ok 2 - unacknowledgedBulkWrite # Subtest: updateOne # Subtest: A successful update one # Subtest: command_started_event ok 1 - event available ok 2 - is a command_started_event ok 3 - command field 'update' ok 4 - command field 'updates' ok 5 - command name ok 6 - database_name defined ok 7 - database_name non-empty 1..7 ok 1 - command_started_event # Subtest: command_succeeded_event ok 1 - event available ok 2 - is a command_succeeded_event ok 3 - command name ok 4 - reply field n ok 5 - reply field ok 1..5 ok 2 - command_succeeded_event ok 3 - no outstanding events 1..3 ok 1 - A successful update one # Subtest: A successful update one with upsert when the upserted id is not an object id # Subtest: command_started_event ok 1 - event available ok 2 - is a command_started_event ok 3 - command field 'update' ok 4 - command field 'updates' ok 5 - command name ok 6 - database_name defined ok 7 - database_name non-empty 1..7 ok 1 - command_started_event # Subtest: command_succeeded_event ok 1 - event available ok 2 - is a command_succeeded_event ok 3 - command name ok 4 - reply field n ok 5 - reply field ok ok 6 - reply field upserted 1..6 ok 2 - command_succeeded_event ok 3 - no outstanding events 1..3 ok 2 - A successful update one with upsert when the upserted id is not an object id # Subtest: A successful update one command with write errors # error from 'update_one': MongoDB::WriteError: Unknown modifier: $nothing # Subtest: command_started_event ok 1 - event available ok 2 - is a command_started_event ok 3 - command field 'update' ok 4 - command field 'updates' ok 5 - command name ok 6 - database_name defined ok 7 - database_name non-empty 1..7 ok 1 - command_started_event # Subtest: command_succeeded_event ok 1 - event available ok 2 - is a command_succeeded_event ok 3 - command name ok 4 - reply field n ok 5 - reply field ok ok 6 - reply field writeErrors 1..6 ok 2 - command_succeeded_event ok 3 - no outstanding events 1..3 ok 3 - A successful update one command with write errors 1..3 ok 3 - updateOne # Subtest: deleteOne # Subtest: A successful delete one # Subtest: command_started_event ok 1 - event available ok 2 - is a command_started_event ok 3 - command field 'delete' ok 4 - command field 'deletes' ok 5 - command name ok 6 - database_name defined ok 7 - database_name non-empty 1..7 ok 1 - command_started_event # Subtest: command_succeeded_event ok 1 - event available ok 2 - is a command_succeeded_event ok 3 - command name ok 4 - reply field n ok 5 - reply field ok 1..5 ok 2 - command_succeeded_event ok 3 - no outstanding events 1..3 ok 1 - A successful delete one # Subtest: A successful delete one command with write errors # error from 'delete_one': MongoDB::WriteError: unknown operator: $nothing # Subtest: command_started_event ok 1 - event available ok 2 - is a command_started_event ok 3 - command field 'delete' ok 4 - command field 'deletes' ok 5 - command name ok 6 - database_name defined ok 7 - database_name non-empty 1..7 ok 1 - command_started_event # Subtest: command_succeeded_event ok 1 - event available ok 2 - is a command_succeeded_event ok 3 - command name ok 4 - reply field n ok 5 - reply field ok ok 6 - reply field writeErrors 1..6 ok 2 - command_succeeded_event ok 3 - no outstanding events 1..3 ok 2 - A successful delete one command with write errors 1..2 ok 4 - deleteOne # Subtest: insertOne # Subtest: A successful insert one # Subtest: command_started_event ok 1 - event available ok 2 - is a command_started_event ok 3 - command field 'documents' ok 4 - command field 'insert' ok 5 - command name ok 6 - database_name defined ok 7 - database_name non-empty 1..7 ok 1 - command_started_event # Subtest: command_succeeded_event ok 1 - event available ok 2 - is a command_succeeded_event ok 3 - command name ok 4 - reply field n ok 5 - reply field ok 1..5 ok 2 - command_succeeded_event ok 3 - no outstanding events 1..3 ok 1 - A successful insert one # Subtest: A successful insert one command with write errors # error from 'insert_one': MongoDB::DuplicateKeyError: E11000 duplicate key error collection: testdb387922406.test_collection index: _id_ dup key: { : 1 } # Subtest: command_started_event ok 1 - event available ok 2 - is a command_started_event ok 3 - command field 'documents' ok 4 - command field 'insert' ok 5 - command name ok 6 - database_name defined ok 7 - database_name non-empty 1..7 ok 1 - command_started_event # Subtest: command_succeeded_event ok 1 - event available ok 2 - is a command_succeeded_event ok 3 - command name ok 4 - reply field n ok 5 - reply field ok ok 6 - reply field writeErrors 1..6 ok 2 - command_succeeded_event ok 3 - no outstanding events 1..3 ok 2 - A successful insert one command with write errors 1..2 ok 5 - insertOne # Subtest: command # Subtest: A successful command # Subtest: command_started_event ok 1 - event available ok 2 - is a command_started_event ok 3 - command field 'count' ok 4 - command field 'query' ok 5 - command name ok 6 - database_name defined ok 7 - database_name non-empty 1..7 ok 1 - command_started_event # Subtest: command_succeeded_event ok 1 - event available ok 2 - is a command_succeeded_event ok 3 - command name ok 4 - reply field n ok 5 - reply field ok 1..5 ok 2 - command_succeeded_event ok 3 - no outstanding events 1..3 ok 1 - A successful command # Subtest: A failed command event # error from 'count': MongoDB::DatabaseError: $or must be an array # Subtest: command_started_event ok 1 - event available ok 2 - is a command_started_event ok 3 - command field 'count' ok 4 - command field 'query' ok 5 - command name ok 6 - database_name defined ok 7 - database_name non-empty 1..7 ok 1 - command_started_event # Subtest: command_failed_event ok 1 - event available ok 2 - is a command_failed_event ok 3 - command name 1..3 ok 2 - command_failed_event ok 3 - no outstanding events 1..3 ok 2 - A failed command event # Subtest: A successful command with a non-primary read preference # Subtest: command_started_event ok 1 - event available ok 2 - is a command_started_event ok 3 - command field 'count' ok 4 - command field 'query' ok 5 - command name ok 6 - database_name defined ok 7 - database_name non-empty 1..7 ok 1 - command_started_event # Subtest: command_succeeded_event ok 1 - event available ok 2 - is a command_succeeded_event ok 3 - command name ok 4 - reply field n ok 5 - reply field ok 1..5 ok 2 - command_succeeded_event ok 3 - no outstanding events 1..3 ok 3 - A successful command with a non-primary read preference 1..3 ok 6 - command # Subtest: updateMany # Subtest: A successful update many # Subtest: command_started_event ok 1 - event available ok 2 - is a command_started_event ok 3 - command field 'update' ok 4 - command field 'updates' ok 5 - command name ok 6 - database_name defined ok 7 - database_name non-empty 1..7 ok 1 - command_started_event # Subtest: command_succeeded_event ok 1 - event available ok 2 - is a command_succeeded_event ok 3 - command name ok 4 - reply field n ok 5 - reply field ok 1..5 ok 2 - command_succeeded_event ok 3 - no outstanding events 1..3 ok 1 - A successful update many # Subtest: A successful update many command with write errors # error from 'update_many': MongoDB::WriteError: Unknown modifier: $nothing # Subtest: command_started_event ok 1 - event available ok 2 - is a command_started_event ok 3 - command field 'update' ok 4 - command field 'updates' ok 5 - command name ok 6 - database_name defined ok 7 - database_name non-empty 1..7 ok 1 - command_started_event # Subtest: command_succeeded_event ok 1 - event available ok 2 - is a command_succeeded_event ok 3 - command name ok 4 - reply field n ok 5 - reply field ok ok 6 - reply field writeErrors 1..6 ok 2 - command_succeeded_event ok 3 - no outstanding events 1..3 ok 2 - A successful update many command with write errors 1..2 ok 7 - updateMany # Subtest: find # Subtest: A successful find event with no options # Subtest: command_started_event ok 1 - event available ok 2 - is a command_started_event ok 3 - command field 'filter' ok 4 - command field 'find' ok 5 - command name ok 6 - database_name defined ok 7 - database_name non-empty 1..7 ok 1 - command_started_event # Subtest: command_succeeded_event ok 1 - event available ok 2 - is a command_succeeded_event ok 3 - command name ok 4 - reply field cursor ok 5 - reply field ok 1..5 ok 2 - command_succeeded_event ok 3 - no outstanding events 1..3 ok 1 - A successful find event with no options # Subtest: A successful find event with options # Subtest: command_started_event ok 1 - event available ok 2 - is a command_started_event ok 3 - command field 'comment' ok 4 - command field 'filter' ok 5 - command field 'find' ok 6 - command field 'hint' ok 7 - command field 'max' ok 8 - command field 'maxTimeMS' ok 9 - command field 'min' ok 10 - command field 'returnKey' ok 11 - command field 'showRecordId' ok 12 - command field 'skip' ok 13 - command field 'sort' ok 14 - command name ok 15 - database_name defined ok 16 - database_name non-empty 1..16 ok 1 - command_started_event # Subtest: command_succeeded_event ok 1 - event available ok 2 - is a command_succeeded_event ok 3 - command name ok 4 - reply field cursor ok 5 - reply field ok 1..5 ok 2 - command_succeeded_event ok 3 - no outstanding events 1..3 ok 2 - A successful find event with options # Subtest: A successful find event with a getmore # Subtest: command_started_event ok 1 - event available ok 2 - is a command_started_event ok 3 - command field 'batchSize' ok 4 - command field 'filter' ok 5 - command field 'find' ok 6 - command field 'sort' ok 7 - command name ok 8 - database_name defined ok 9 - database_name non-empty 1..9 ok 1 - command_started_event # Subtest: command_succeeded_event ok 1 - event available ok 2 - is a command_succeeded_event ok 3 - command name ok 4 - reply field cursor ok 5 - reply field ok 1..5 ok 2 - command_succeeded_event # Subtest: command_started_event ok 1 - event available ok 2 - is a command_started_event ok 3 - command field 'batchSize' ok 4 - command field 'collection' ok 5 - command field 'getMore' ok 6 - command name ok 7 - database_name defined ok 8 - database_name non-empty 1..8 ok 3 - command_started_event # Subtest: command_succeeded_event ok 1 - event available ok 2 - is a command_succeeded_event ok 3 - command name ok 4 - reply field cursor ok 5 - reply field ok 1..5 ok 4 - command_succeeded_event ok 5 - no outstanding events 1..5 ok 3 - A successful find event with a getmore # Subtest: A successful find event with a getmore and killcursors 1..0 # SKIP Ignored for versions above 3.0 ok 4 # skip Ignored for versions above 3.0 # Subtest: A successful find event with a getmore and the server kills the cursor # Subtest: command_started_event ok 1 - event available ok 2 - is a command_started_event ok 3 - command field 'batchSize' ok 4 - command field 'filter' ok 5 - command field 'find' ok 6 - command field 'limit' ok 7 - command field 'sort' ok 8 - command name ok 9 - database_name defined ok 10 - database_name non-empty 1..10 ok 1 - command_started_event # Subtest: command_succeeded_event ok 1 - event available ok 2 - is a command_succeeded_event ok 3 - command name ok 4 - reply field cursor ok 5 - reply field ok 1..5 ok 2 - command_succeeded_event # Subtest: command_started_event ok 1 - event available ok 2 - is a command_started_event ok 3 - command field 'batchSize' ok 4 - command field 'collection' ok 5 - command field 'getMore' ok 6 - command name ok 7 - database_name defined ok 8 - database_name non-empty 1..8 ok 3 - command_started_event # Subtest: command_succeeded_event ok 1 - event available ok 2 - is a command_succeeded_event ok 3 - command name ok 4 - reply field cursor ok 5 - reply field ok 1..5 ok 4 - command_succeeded_event ok 5 - no outstanding events 1..5 ok 5 - A successful find event with a getmore and the server kills the cursor # Subtest: A failed find event # error from 'find': MongoDB::DatabaseError: $or must be an array # Subtest: command_started_event ok 1 - event available ok 2 - is a command_started_event ok 3 - command field 'filter' ok 4 - command field 'find' ok 5 - command name ok 6 - database_name defined ok 7 - database_name non-empty 1..7 ok 1 - command_started_event # Subtest: command_failed_event ok 1 - event available ok 2 - is a command_failed_event ok 3 - command name 1..3 ok 2 - command_failed_event ok 3 - no outstanding events 1..3 ok 6 - A failed find event 1..6 ok 8 - find # Subtest: bulkWrite # Subtest: A successful mixed bulk write # Subtest: command_started_event ok 1 - event available ok 2 - is a command_started_event ok 3 - command field 'documents' ok 4 - command field 'insert' ok 5 - command name ok 6 - database_name defined ok 7 - database_name non-empty 1..7 ok 1 - command_started_event # Subtest: command_succeeded_event ok 1 - event available ok 2 - is a command_succeeded_event ok 3 - command name ok 4 - reply field n ok 5 - reply field ok 1..5 ok 2 - command_succeeded_event # Subtest: command_started_event ok 1 - event available ok 2 - is a command_started_event ok 3 - command field 'update' ok 4 - command field 'updates' ok 5 - command name ok 6 - database_name defined ok 7 - database_name non-empty 1..7 ok 3 - command_started_event # Subtest: command_succeeded_event ok 1 - event available ok 2 - is a command_succeeded_event ok 3 - command name ok 4 - reply field n ok 5 - reply field ok 1..5 ok 4 - command_succeeded_event ok 5 - no outstanding events 1..5 ok 1 - A successful mixed bulk write 1..1 ok 9 - bulkWrite # Subtest: insertMany # Subtest: A successful insert many # Subtest: command_started_event ok 1 - event available ok 2 - is a command_started_event ok 3 - command field 'documents' ok 4 - command field 'insert' ok 5 - command name ok 6 - database_name defined ok 7 - database_name non-empty 1..7 ok 1 - command_started_event # Subtest: command_succeeded_event ok 1 - event available ok 2 - is a command_succeeded_event ok 3 - command name ok 4 - reply field n ok 5 - reply field ok 1..5 ok 2 - command_succeeded_event ok 3 - no outstanding events 1..3 ok 1 - A successful insert many # Subtest: A successful insert many command with write errors # error from 'insert_many': MongoDB::DuplicateKeyError: E11000 duplicate key error collection: testdb387922406.test_collection index: _id_ dup key: { : 1 } # Subtest: command_started_event ok 1 - event available ok 2 - is a command_started_event ok 3 - command field 'documents' ok 4 - command field 'insert' ok 5 - command name ok 6 - database_name defined ok 7 - database_name non-empty 1..7 ok 1 - command_started_event # Subtest: command_succeeded_event ok 1 - event available ok 2 - is a command_succeeded_event ok 3 - command name ok 4 - reply field n ok 5 - reply field ok ok 6 - reply field writeErrors 1..6 ok 2 - command_succeeded_event ok 3 - no outstanding events 1..3 ok 2 - A successful insert many command with write errors # Subtest: A successful unordered insert many # Subtest: command_started_event ok 1 - event available ok 2 - is a command_started_event ok 3 - command field 'documents' ok 4 - command field 'insert' ok 5 - command name ok 6 - database_name defined ok 7 - database_name non-empty 1..7 ok 1 - command_started_event # Subtest: command_succeeded_event ok 1 - event available ok 2 - is a command_succeeded_event ok 3 - command name ok 4 - reply field n ok 5 - reply field ok 1..5 ok 2 - command_succeeded_event ok 3 - no outstanding events 1..3 ok 3 - A successful unordered insert many 1..3 ok 10 - insertMany 1..10 ok t/oid_generation.t ......................... # Subtest: Given default codec # Subtest: When inserting with insert_one ok 1 - inserted_id is BSON::OID 1..1 ok 1 - When inserting with insert_one # Subtest: When inserting with insert_many ok 1 - inserted_id 0 is BSON::OID ok 2 - inserted_id 1 is BSON::OID 1..2 ok 2 - When inserting with insert_many # Subtest: When uploading with GridFSBucket ok 1 - inserted_id is BSON::OID 1..1 ok 3 - When uploading with GridFSBucket 1..3 ok 1 - Given default codec # Subtest: Given TestCodecWrapper codec # Subtest: When inserting with insert_one ok 1 - inserted_id is TestCodecWrapper::OID 1..1 ok 1 - When inserting with insert_one # Subtest: When inserting with insert_many ok 1 - inserted_id 1 is TestCodecWrapper::OID ok 2 - inserted_id 0 is TestCodecWrapper::OID 1..2 ok 2 - When inserting with insert_many # Subtest: When uploading with GridFSBucket ok 1 - inserted_id is TestCodecWrapper::OID 1..1 ok 3 - When uploading with GridFSBucket 1..3 ok 2 - Given TestCodecWrapper codec 1..2 ok t/parallel_scan.t .......................... # Subtest: parallel scan ok 1 - parallel_scan() throws error ok 2 - parallel_scan(0) throws error ok 3 - parallel_scan(-1) throws error ok 4 - parallel_scan(10001) throws error ok 5 - parallel_scan(3) returned <= 3 cursors ok 6 - reset on parallel scan cursor throws error ok 7 - count on parallel scan cursor throws error ok 8 - explain on parallel scan cursor throws error ok 9 - cursor 0 had some results ok 10 - cursors returned right number of docs ok 11 - cursors returned all results # Subtest: replica set 1..0 # SKIP needs a replicaset ok 12 # skip needs a replicaset # Subtest: empty collection ok 1 - cursor 0 had no results ok 2 - cursors returned right number of docs ok 3 - cursors returned all results 1..3 ok 13 - empty collection 1..13 ok 1 - parallel scan 1..1 ok t/readpref.t ............................... # Subtest: read preference connection string ok 1 - mode from ok 2 - tag set list 1..2 ok 1 - read preference connection string # Subtest: read preference mode propagation ok 1 - primary set on MongoDB::MongoClient ok 2 - primary set on MongoDB::Database ok 3 - primary set on MongoDB::Collection ok 4 - primary set on MongoDB::Cursor ok 5 - secondary set on MongoDB::MongoClient ok 6 - secondary set on MongoDB::Database ok 7 - secondary set on MongoDB::Collection ok 8 - secondary set on MongoDB::Cursor ok 9 - primaryPreferred set on MongoDB::MongoClient ok 10 - primaryPreferred set on MongoDB::Database ok 11 - primaryPreferred set on MongoDB::Collection ok 12 - primaryPreferred set on MongoDB::Cursor ok 13 - secondaryPreferred set on MongoDB::MongoClient ok 14 - secondaryPreferred set on MongoDB::Database ok 15 - secondaryPreferred set on MongoDB::Collection ok 16 - secondaryPreferred set on MongoDB::Cursor ok 17 - nearest set on MongoDB::MongoClient ok 18 - nearest set on MongoDB::Database ok 19 - nearest set on MongoDB::Collection ok 20 - nearest set on MongoDB::Cursor 1..20 ok 2 - read preference mode propagation # Subtest: read preference staleness propagation ok 1 - staleness set on MongoDB::MongoClient ok 2 - staleness set on MongoDB::Database ok 3 - staleness set on MongoDB::Collection ok 4 - staleness set on MongoDB::Cursor 1..4 ok 3 - read preference staleness propagation # Subtest: max staleness vs heartbeat frequency 1..0 # SKIP Needs v3.3.8+ replica set ok 4 # skip Needs v3.3.8+ replica set # Subtest: read preference on cursor ok 1 - primary set on MongoDB::Cursor ok 2 - secondary set on MongoDB::Cursor ok 3 - primaryPreferred set on MongoDB::Cursor ok 4 - secondaryPreferred set on MongoDB::Cursor ok 5 - nearest set on MongoDB::Cursor 1..5 ok 5 - read preference on cursor # Subtest: error cases ok 1 - read_preference on client is read-only ok 2 - primary cannot be combined with a tag set list 1..2 ok 6 - error cases # Subtest: commands ok 1 - read pref set to secondary without error ok 2 - generic helper ran with primary read pref 1..2 ok 7 - commands # Subtest: direct connection ok 1 - count_documents on localhost:27017 (Standalone) succeeds 1..1 ok 8 - direct connection 1..8 ok t/retryable-writes-command-construction.t .. skipped: Session support not available t/sdam_spec.t .............................. # Subtest: rs/hosts_differ_from_seeds ok 1 - correct amount of servers ok 2 - b:27017 exists in outcome ok 3 - correct server type ok 4 - correct setName for server ok 5 - correct setName for topology ok 6 - correct topology type ok 7 - correct ls timeout 1..7 ok 1 - rs/hosts_differ_from_seeds # Subtest: rs/discover_primary ok 1 - correct amount of servers ok 2 - b:27017 exists in outcome ok 3 - correct server type ok 4 - correct setName for server ok 5 - a:27017 exists in outcome ok 6 - correct server type ok 7 - correct setName for server ok 8 - correct setName for topology ok 9 - correct topology type ok 10 - correct ls timeout 1..10 ok 2 - rs/discover_primary # Subtest: rs/unexpected_mongos ok 1 - correct amount of servers ok 2 - correct setName for topology ok 3 - correct topology type ok 4 - correct ls timeout 1..4 ok 3 - rs/unexpected_mongos # Subtest: rs/secondary_wrong_set_name_with_primary ok 1 - correct amount of servers ok 2 - a:27017 exists in outcome ok 3 - correct server type ok 4 - correct setName for server ok 5 - b:27017 exists in outcome ok 6 - correct server type ok 7 - correct setName for server ok 8 - correct setName for topology ok 9 - correct topology type ok 10 - correct ls timeout ok 11 - correct amount of servers ok 12 - a:27017 exists in outcome ok 13 - correct server type ok 14 - correct setName for server ok 15 - correct setName for topology ok 16 - correct topology type ok 17 - correct ls timeout 1..17 ok 4 - rs/secondary_wrong_set_name_with_primary # Subtest: rs/new_primary_wrong_set_name ok 1 - correct amount of servers ok 2 - b:27017 exists in outcome ok 3 - correct server type ok 4 - correct setName for server ok 5 - a:27017 exists in outcome ok 6 - correct server type ok 7 - correct setName for server ok 8 - correct setName for topology ok 9 - correct topology type ok 10 - correct ls timeout ok 11 - correct amount of servers ok 12 - a:27017 exists in outcome ok 13 - correct server type ok 14 - correct setName for server ok 15 - correct setName for topology ok 16 - correct topology type ok 17 - correct ls timeout 1..17 ok 5 - rs/new_primary_wrong_set_name # Subtest: rs/response_from_removed ok 1 - correct amount of servers ok 2 - a:27017 exists in outcome ok 3 - correct server type ok 4 - correct setName for server ok 5 - correct setName for topology ok 6 - correct topology type ok 7 - correct ls timeout ok 8 - correct amount of servers ok 9 - a:27017 exists in outcome ok 10 - correct server type ok 11 - correct setName for server ok 12 - correct setName for topology ok 13 - correct topology type ok 14 - correct ls timeout 1..14 ok 6 - rs/response_from_removed # Subtest: rs/normalize_case ok 1 - correct amount of servers ok 2 - c:27017 exists in outcome ok 3 - correct server type ok 4 - correct setName for server ok 5 - a:27017 exists in outcome ok 6 - correct server type ok 7 - correct setName for server ok 8 - b:27017 exists in outcome ok 9 - correct server type ok 10 - correct setName for server ok 11 - correct setName for topology ok 12 - correct topology type ok 13 - correct ls timeout 1..13 ok 7 - rs/normalize_case # Subtest: rs/primary_disconnect_setversion ok 1 - correct amount of servers ok 2 - a:27017 exists in outcome ok 3 - correct server type ok 4 - correct setName for server ok 5 - b:27017 exists in outcome ok 6 - correct server type ok 7 - correct setName for server ok 8 - correct setName for topology ok 9 - correct topology type ok 10 - correct ls timeout ok 11 - correct amount of servers ok 12 - a:27017 exists in outcome ok 13 - correct server type ok 14 - correct setName for server ok 15 - b:27017 exists in outcome ok 16 - correct server type ok 17 - correct setName for server ok 18 - correct setName for topology ok 19 - correct topology type ok 20 - correct ls timeout ok 21 - correct amount of servers ok 22 - a:27017 exists in outcome ok 23 - correct server type ok 24 - correct setName for server ok 25 - b:27017 exists in outcome ok 26 - correct server type ok 27 - correct setName for server ok 28 - correct setName for topology ok 29 - correct topology type ok 30 - correct ls timeout ok 31 - correct amount of servers ok 32 - b:27017 exists in outcome ok 33 - correct server type ok 34 - correct setName for server ok 35 - a:27017 exists in outcome ok 36 - correct server type ok 37 - correct setName for server ok 38 - correct setName for topology ok 39 - correct topology type ok 40 - correct ls timeout ok 41 - correct amount of servers ok 42 - a:27017 exists in outcome ok 43 - correct server type ok 44 - correct setName for server ok 45 - b:27017 exists in outcome ok 46 - correct server type ok 47 - correct setName for server ok 48 - correct setName for topology ok 49 - correct topology type ok 50 - correct ls timeout 1..50 ok 8 - rs/primary_disconnect_setversion # Subtest: rs/member_standalone ok 1 - correct amount of servers ok 2 - a:27017 exists in outcome ok 3 - correct server type ok 4 - correct setName for server ok 5 - correct setName for topology ok 6 - correct topology type ok 7 - correct ls timeout ok 8 - correct amount of servers ok 9 - a:27017 exists in outcome ok 10 - correct server type ok 11 - correct setName for server ok 12 - correct setName for topology ok 13 - correct topology type ok 14 - correct ls timeout 1..14 ok 9 - rs/member_standalone # Subtest: rs/ls_timeout ok 1 - correct amount of servers ok 2 - a:27017 exists in outcome ok 3 - correct server type ok 4 - correct setName for server ok 5 - b:27017 exists in outcome ok 6 - correct server type ok 7 - correct setName for server ok 8 - c:27017 exists in outcome ok 9 - correct server type ok 10 - correct setName for server ok 11 - d:27017 exists in outcome ok 12 - correct server type ok 13 - correct setName for server ok 14 - e:27017 exists in outcome ok 15 - correct server type ok 16 - correct setName for server ok 17 - correct setName for topology ok 18 - correct topology type ok 19 - correct ls timeout ok 20 - correct amount of servers ok 21 - d:27017 exists in outcome ok 22 - correct server type ok 23 - correct setName for server ok 24 - c:27017 exists in outcome ok 25 - correct server type ok 26 - correct setName for server ok 27 - e:27017 exists in outcome ok 28 - correct server type ok 29 - correct setName for server ok 30 - a:27017 exists in outcome ok 31 - correct server type ok 32 - correct setName for server ok 33 - b:27017 exists in outcome ok 34 - correct server type ok 35 - correct setName for server ok 36 - correct setName for topology ok 37 - correct topology type ok 38 - correct ls timeout ok 39 - correct amount of servers ok 40 - e:27017 exists in outcome ok 41 - correct server type ok 42 - correct setName for server ok 43 - c:27017 exists in outcome ok 44 - correct server type ok 45 - correct setName for server ok 46 - d:27017 exists in outcome ok 47 - correct server type ok 48 - correct setName for server ok 49 - b:27017 exists in outcome ok 50 - correct server type ok 51 - correct setName for server ok 52 - a:27017 exists in outcome ok 53 - correct server type ok 54 - correct setName for server ok 55 - correct setName for topology ok 56 - correct topology type ok 57 - correct ls timeout ok 58 - correct amount of servers ok 59 - e:27017 exists in outcome ok 60 - correct server type ok 61 - correct setName for server ok 62 - c:27017 exists in outcome ok 63 - correct server type ok 64 - correct setName for server ok 65 - d:27017 exists in outcome ok 66 - correct server type ok 67 - correct setName for server ok 68 - b:27017 exists in outcome ok 69 - correct server type ok 70 - correct setName for server ok 71 - a:27017 exists in outcome ok 72 - correct server type ok 73 - correct setName for server ok 74 - correct setName for topology ok 75 - correct topology type ok 76 - correct ls timeout ok 77 - correct amount of servers ok 78 - e:27017 exists in outcome ok 79 - correct server type ok 80 - correct setName for server ok 81 - d:27017 exists in outcome ok 82 - correct server type ok 83 - correct setName for server ok 84 - c:27017 exists in outcome ok 85 - correct server type ok 86 - correct setName for server ok 87 - b:27017 exists in outcome ok 88 - correct server type ok 89 - correct setName for server ok 90 - a:27017 exists in outcome ok 91 - correct server type ok 92 - correct setName for server ok 93 - correct setName for topology ok 94 - correct topology type ok 95 - correct ls timeout ok 96 - correct amount of servers ok 97 - e:27017 exists in outcome ok 98 - correct server type ok 99 - correct setName for server ok 100 - d:27017 exists in outcome ok 101 - correct server type ok 102 - correct setName for server ok 103 - c:27017 exists in outcome ok 104 - correct server type ok 105 - correct setName for server ok 106 - b:27017 exists in outcome ok 107 - correct server type ok 108 - correct setName for server ok 109 - a:27017 exists in outcome ok 110 - correct server type ok 111 - correct setName for server ok 112 - correct setName for topology ok 113 - correct topology type ok 114 - correct ls timeout 1..114 ok 10 - rs/ls_timeout # Subtest: rs/primary_disconnect_electionid ok 1 - correct amount of servers ok 2 - a:27017 exists in outcome ok 3 - correct server type ok 4 - correct setName for server ok 5 - b:27017 exists in outcome ok 6 - correct server type ok 7 - correct setName for server ok 8 - correct setName for topology ok 9 - correct topology type ok 10 - correct ls timeout ok 11 - correct amount of servers ok 12 - a:27017 exists in outcome ok 13 - correct server type ok 14 - correct setName for server ok 15 - b:27017 exists in outcome ok 16 - correct server type ok 17 - correct setName for server ok 18 - correct setName for topology ok 19 - correct topology type ok 20 - correct ls timeout ok 21 - correct amount of servers ok 22 - a:27017 exists in outcome ok 23 - correct server type ok 24 - correct setName for server ok 25 - b:27017 exists in outcome ok 26 - correct server type ok 27 - correct setName for server ok 28 - correct setName for topology ok 29 - correct topology type ok 30 - correct ls timeout ok 31 - correct amount of servers ok 32 - a:27017 exists in outcome ok 33 - correct server type ok 34 - correct setName for server ok 35 - b:27017 exists in outcome ok 36 - correct server type ok 37 - correct setName for server ok 38 - correct setName for topology ok 39 - correct topology type ok 40 - correct ls timeout ok 41 - correct amount of servers ok 42 - a:27017 exists in outcome ok 43 - correct server type ok 44 - correct setName for server ok 45 - b:27017 exists in outcome ok 46 - correct server type ok 47 - correct setName for server ok 48 - correct setName for topology ok 49 - correct topology type ok 50 - correct ls timeout 1..50 ok 11 - rs/primary_disconnect_electionid # Subtest: rs/new_primary ok 1 - correct amount of servers ok 2 - a:27017 exists in outcome ok 3 - correct server type ok 4 - correct setName for server ok 5 - b:27017 exists in outcome ok 6 - correct server type ok 7 - correct setName for server ok 8 - correct setName for topology ok 9 - correct topology type ok 10 - correct ls timeout ok 11 - correct amount of servers ok 12 - b:27017 exists in outcome ok 13 - correct server type ok 14 - correct setName for server ok 15 - a:27017 exists in outcome ok 16 - correct server type ok 17 - correct setName for server ok 18 - correct setName for topology ok 19 - correct topology type ok 20 - correct ls timeout 1..20 ok 12 - rs/new_primary # Subtest: rs/wrong_set_name ok 1 - correct amount of servers ok 2 - a:27017 exists in outcome ok 3 - correct server type ok 4 - correct setName for server ok 5 - correct setName for topology ok 6 - correct topology type ok 7 - correct ls timeout 1..7 ok 13 - rs/wrong_set_name # Subtest: rs/too_old ok 1 - correct amount of servers ok 2 - b:27017 exists in outcome ok 3 - correct server type ok 4 - correct setName for server ok 5 - a:27017 exists in outcome ok 6 - correct server type ok 7 - correct setName for server ok 8 - correct setName for topology ok 9 - correct topology type ok 10 - correct ls timeout ok 11 - compatibility correct 1..11 ok 14 - rs/too_old # Subtest: rs/secondary_wrong_set_name ok 1 - correct amount of servers ok 2 - correct setName for topology ok 3 - correct topology type ok 4 - correct ls timeout 1..4 ok 15 - rs/secondary_wrong_set_name # Subtest: rs/new_primary_new_setversion ok 1 - correct amount of servers ok 2 - b:27017 exists in outcome ok 3 - correct server type ok 4 - correct setName for server ok 5 - a:27017 exists in outcome ok 6 - correct server type ok 7 - correct setName for server ok 8 - correct setName for topology ok 9 - correct topology type ok 10 - correct ls timeout ok 11 - correct amount of servers ok 12 - b:27017 exists in outcome ok 13 - correct server type ok 14 - correct setName for server ok 15 - a:27017 exists in outcome ok 16 - correct server type ok 17 - correct setName for server ok 18 - correct setName for topology ok 19 - correct topology type ok 20 - correct ls timeout ok 21 - correct amount of servers ok 22 - b:27017 exists in outcome ok 23 - correct server type ok 24 - correct setName for server ok 25 - a:27017 exists in outcome ok 26 - correct server type ok 27 - correct setName for server ok 28 - correct setName for topology ok 29 - correct topology type ok 30 - correct ls timeout 1..30 ok 16 - rs/new_primary_new_setversion # Subtest: rs/use_setversion_without_electionid ok 1 - correct amount of servers ok 2 - a:27017 exists in outcome ok 3 - correct server type ok 4 - correct setName for server ok 5 - b:27017 exists in outcome ok 6 - correct server type ok 7 - correct setName for server ok 8 - correct setName for topology ok 9 - correct topology type ok 10 - correct ls timeout ok 11 - correct amount of servers ok 12 - a:27017 exists in outcome ok 13 - correct server type ok 14 - correct setName for server ok 15 - b:27017 exists in outcome ok 16 - correct server type ok 17 - correct setName for server ok 18 - correct setName for topology ok 19 - correct topology type ok 20 - correct ls timeout ok 21 - correct amount of servers ok 22 - a:27017 exists in outcome ok 23 - correct server type ok 24 - correct setName for server ok 25 - b:27017 exists in outcome ok 26 - correct server type ok 27 - correct setName for server ok 28 - correct setName for topology ok 29 - correct topology type ok 30 - correct ls timeout 1..30 ok 17 - rs/use_setversion_without_electionid # Subtest: rs/discover_arbiters ok 1 - correct amount of servers ok 2 - a:27017 exists in outcome ok 3 - correct server type ok 4 - correct setName for server ok 5 - b:27017 exists in outcome ok 6 - correct server type ok 7 - correct setName for server ok 8 - correct setName for topology ok 9 - correct topology type ok 10 - correct ls timeout 1..10 ok 18 - rs/discover_arbiters # Subtest: rs/primary_mismatched_me ok 1 - correct amount of servers ok 2 - b:27017 exists in outcome ok 3 - correct server type ok 4 - correct setName for server ok 5 - a:27017 exists in outcome ok 6 - correct server type ok 7 - correct setName for server ok 8 - correct setName for topology ok 9 - correct topology type ok 10 - correct ls timeout 1..10 ok 19 - rs/primary_mismatched_me # Subtest: rs/primary_to_no_primary_mismatched_me ok 1 - correct amount of servers ok 2 - b:27017 exists in outcome ok 3 - correct server type ok 4 - correct setName for server ok 5 - a:27017 exists in outcome ok 6 - correct server type ok 7 - correct setName for server ok 8 - correct setName for topology ok 9 - correct topology type ok 10 - correct ls timeout ok 11 - correct amount of servers ok 12 - d:27017 exists in outcome ok 13 - correct server type ok 14 - correct setName for server ok 15 - c:27017 exists in outcome ok 16 - correct server type ok 17 - correct setName for server ok 18 - correct setName for topology ok 19 - correct topology type ok 20 - correct ls timeout 1..20 ok 20 - rs/primary_to_no_primary_mismatched_me # Subtest: rs/sec_not_auth ok 1 - correct amount of servers ok 2 - a:27017 exists in outcome ok 3 - correct server type ok 4 - correct setName for server ok 5 - b:27017 exists in outcome ok 6 - correct server type ok 7 - correct setName for server ok 8 - correct setName for topology ok 9 - correct topology type ok 10 - correct ls timeout 1..10 ok 21 - rs/sec_not_auth # Subtest: rs/null_election_id ok 1 - correct amount of servers ok 2 - a:27017 exists in outcome ok 3 - correct server type ok 4 - correct setName for server ok 5 - b:27017 exists in outcome ok 6 - correct server type ok 7 - correct setName for server ok 8 - c:27017 exists in outcome ok 9 - correct server type ok 10 - correct setName for server ok 11 - correct setName for topology ok 12 - correct topology type ok 13 - correct ls timeout ok 14 - correct amount of servers ok 15 - c:27017 exists in outcome ok 16 - correct server type ok 17 - correct setName for server ok 18 - a:27017 exists in outcome ok 19 - correct server type ok 20 - correct setName for server ok 21 - b:27017 exists in outcome ok 22 - correct server type ok 23 - correct setName for server ok 24 - correct setName for topology ok 25 - correct topology type ok 26 - correct ls timeout ok 27 - correct amount of servers ok 28 - b:27017 exists in outcome ok 29 - correct server type ok 30 - correct setName for server ok 31 - a:27017 exists in outcome ok 32 - correct server type ok 33 - correct setName for server ok 34 - c:27017 exists in outcome ok 35 - correct server type ok 36 - correct setName for server ok 37 - correct setName for topology ok 38 - correct topology type ok 39 - correct ls timeout ok 40 - correct amount of servers ok 41 - b:27017 exists in outcome ok 42 - correct server type ok 43 - correct setName for server ok 44 - a:27017 exists in outcome ok 45 - correct server type ok 46 - correct setName for server ok 47 - c:27017 exists in outcome ok 48 - correct server type ok 49 - correct setName for server ok 50 - correct setName for topology ok 51 - correct topology type ok 52 - correct ls timeout 1..52 ok 22 - rs/null_election_id # Subtest: rs/primary_disconnect ok 1 - correct amount of servers ok 2 - a:27017 exists in outcome ok 3 - correct server type ok 4 - correct setName for server ok 5 - correct setName for topology ok 6 - correct topology type ok 7 - correct ls timeout ok 8 - correct amount of servers ok 9 - a:27017 exists in outcome ok 10 - correct server type ok 11 - correct setName for server ok 12 - correct setName for topology ok 13 - correct topology type ok 14 - correct ls timeout 1..14 ok 23 - rs/primary_disconnect # Subtest: rs/equal_electionids ok 1 - correct amount of servers ok 2 - a:27017 exists in outcome ok 3 - correct server type ok 4 - correct setName for server ok 5 - b:27017 exists in outcome ok 6 - correct server type ok 7 - correct setName for server ok 8 - correct setName for topology ok 9 - correct topology type ok 10 - correct ls timeout 1..10 ok 24 - rs/equal_electionids # Subtest: rs/primary_becomes_standalone ok 1 - correct amount of servers ok 2 - a:27017 exists in outcome ok 3 - correct server type ok 4 - correct setName for server ok 5 - correct setName for topology ok 6 - correct topology type ok 7 - correct ls timeout ok 8 - correct amount of servers ok 9 - correct setName for topology ok 10 - correct topology type ok 11 - correct ls timeout 1..11 ok 25 - rs/primary_becomes_standalone # Subtest: rs/primary_changes_set_name ok 1 - correct amount of servers ok 2 - a:27017 exists in outcome ok 3 - correct server type ok 4 - correct setName for server ok 5 - correct setName for topology ok 6 - correct topology type ok 7 - correct ls timeout ok 8 - correct amount of servers ok 9 - correct setName for topology ok 10 - correct topology type ok 11 - correct ls timeout 1..11 ok 26 - rs/primary_changes_set_name # Subtest: rs/discovery ok 1 - correct amount of servers ok 2 - c:27017 exists in outcome ok 3 - correct server type ok 4 - correct setName for server ok 5 - a:27017 exists in outcome ok 6 - correct server type ok 7 - correct setName for server ok 8 - b:27017 exists in outcome ok 9 - correct server type ok 10 - correct setName for server ok 11 - correct setName for topology ok 12 - correct topology type ok 13 - correct ls timeout ok 14 - correct amount of servers ok 15 - a:27017 exists in outcome ok 16 - correct server type ok 17 - correct setName for server ok 18 - b:27017 exists in outcome ok 19 - correct server type ok 20 - correct setName for server ok 21 - d:27017 exists in outcome ok 22 - correct server type ok 23 - correct setName for server ok 24 - c:27017 exists in outcome ok 25 - correct server type ok 26 - correct setName for server ok 27 - correct setName for topology ok 28 - correct topology type ok 29 - correct ls timeout ok 30 - correct amount of servers ok 31 - e:27017 exists in outcome ok 32 - correct server type ok 33 - correct setName for server ok 34 - d:27017 exists in outcome ok 35 - correct server type ok 36 - correct setName for server ok 37 - c:27017 exists in outcome ok 38 - correct server type ok 39 - correct setName for server ok 40 - b:27017 exists in outcome ok 41 - correct server type ok 42 - correct setName for server ok 43 - correct setName for topology ok 44 - correct topology type ok 45 - correct ls timeout ok 46 - correct amount of servers ok 47 - e:27017 exists in outcome ok 48 - correct server type ok 49 - correct setName for server ok 50 - c:27017 exists in outcome ok 51 - correct server type ok 52 - correct setName for server ok 53 - d:27017 exists in outcome ok 54 - correct server type ok 55 - correct setName for server ok 56 - b:27017 exists in outcome ok 57 - correct server type ok 58 - correct setName for server ok 59 - correct setName for topology ok 60 - correct topology type ok 61 - correct ls timeout 1..61 ok 27 - rs/discovery # Subtest: rs/secondary_mismatched_me ok 1 - correct amount of servers ok 2 - b:27017 exists in outcome ok 3 - correct server type ok 4 - correct setName for server ok 5 - a:27017 exists in outcome ok 6 - correct server type ok 7 - correct setName for server ok 8 - correct setName for topology ok 9 - correct topology type ok 10 - correct ls timeout 1..10 ok 28 - rs/secondary_mismatched_me # Subtest: rs/setversion_without_electionid ok 1 - correct amount of servers ok 2 - b:27017 exists in outcome ok 3 - correct server type ok 4 - correct setName for server ok 5 - a:27017 exists in outcome ok 6 - correct server type ok 7 - correct setName for server ok 8 - correct setName for topology ok 9 - correct topology type ok 10 - correct ls timeout ok 11 - correct amount of servers ok 12 - a:27017 exists in outcome ok 13 - correct server type ok 14 - correct setName for server ok 15 - b:27017 exists in outcome ok 16 - correct server type ok 17 - correct setName for server ok 18 - correct setName for topology ok 19 - correct topology type ok 20 - correct ls timeout 1..20 ok 29 - rs/setversion_without_electionid # Subtest: rs/discover_passives ok 1 - correct amount of servers ok 2 - a:27017 exists in outcome ok 3 - correct server type ok 4 - correct setName for server ok 5 - b:27017 exists in outcome ok 6 - correct server type ok 7 - correct setName for server ok 8 - correct setName for topology ok 9 - correct topology type ok 10 - correct ls timeout ok 11 - correct amount of servers ok 12 - a:27017 exists in outcome ok 13 - correct server type ok 14 - correct setName for server ok 15 - b:27017 exists in outcome ok 16 - correct server type ok 17 - correct setName for server ok 18 - correct setName for topology ok 19 - correct topology type ok 20 - correct ls timeout 1..20 ok 30 - rs/discover_passives # Subtest: rs/discover_secondary ok 1 - correct amount of servers ok 2 - b:27017 exists in outcome ok 3 - correct server type ok 4 - correct setName for server ok 5 - a:27017 exists in outcome ok 6 - correct server type ok 7 - correct setName for server ok 8 - correct setName for topology ok 9 - correct topology type ok 10 - correct ls timeout 1..10 ok 31 - rs/discover_secondary # Subtest: rs/compatible ok 1 - correct amount of servers ok 2 - a:27017 exists in outcome ok 3 - correct server type ok 4 - correct setName for server ok 5 - b:27017 exists in outcome ok 6 - correct server type ok 7 - correct setName for server ok 8 - correct setName for topology ok 9 - correct topology type ok 10 - correct ls timeout ok 11 - compatibility correct 1..11 ok 32 - rs/compatible # Subtest: rs/new_primary_new_electionid ok 1 - correct amount of servers ok 2 - a:27017 exists in outcome ok 3 - correct server type ok 4 - correct setName for server ok 5 - b:27017 exists in outcome ok 6 - correct server type ok 7 - correct setName for server ok 8 - correct setName for topology ok 9 - correct topology type ok 10 - correct ls timeout ok 11 - correct amount of servers ok 12 - b:27017 exists in outcome ok 13 - correct server type ok 14 - correct setName for server ok 15 - a:27017 exists in outcome ok 16 - correct server type ok 17 - correct setName for server ok 18 - correct setName for topology ok 19 - correct topology type ok 20 - correct ls timeout ok 21 - correct amount of servers ok 22 - b:27017 exists in outcome ok 23 - correct server type ok 24 - correct setName for server ok 25 - a:27017 exists in outcome ok 26 - correct server type ok 27 - correct setName for server ok 28 - correct setName for topology ok 29 - correct topology type ok 30 - correct ls timeout 1..30 ok 33 - rs/new_primary_new_electionid # Subtest: rs/stepdown_change_set_name ok 1 - correct amount of servers ok 2 - a:27017 exists in outcome ok 3 - correct server type ok 4 - correct setName for server ok 5 - correct setName for topology ok 6 - correct topology type ok 7 - correct ls timeout ok 8 - correct amount of servers ok 9 - correct setName for topology ok 10 - correct topology type ok 11 - correct ls timeout 1..11 ok 34 - rs/stepdown_change_set_name # Subtest: rs/rsother_discovered ok 1 - correct amount of servers ok 2 - b:27017 exists in outcome ok 3 - correct server type ok 4 - correct setName for server ok 5 - a:27017 exists in outcome ok 6 - correct server type ok 7 - correct setName for server ok 8 - d:27017 exists in outcome ok 9 - correct server type ok 10 - correct setName for server ok 11 - c:27017 exists in outcome ok 12 - correct server type ok 13 - correct setName for server ok 14 - correct setName for topology ok 15 - correct topology type ok 16 - correct ls timeout 1..16 ok 35 - rs/rsother_discovered # Subtest: rs/non_rs_member ok 1 - correct amount of servers ok 2 - a:27017 exists in outcome ok 3 - correct server type ok 4 - correct setName for server ok 5 - correct setName for topology ok 6 - correct topology type ok 7 - correct ls timeout 1..7 ok 36 - rs/non_rs_member # Subtest: rs/normalize_case_me ok 1 - correct amount of servers ok 2 - b:27017 exists in outcome ok 3 - correct server type ok 4 - correct setName for server ok 5 - a:27017 exists in outcome ok 6 - correct server type ok 7 - correct setName for server ok 8 - c:27017 exists in outcome ok 9 - correct server type ok 10 - correct setName for server ok 11 - correct setName for topology ok 12 - correct topology type ok 13 - correct ls timeout ok 14 - correct amount of servers ok 15 - c:27017 exists in outcome ok 16 - correct server type ok 17 - correct setName for server ok 18 - b:27017 exists in outcome ok 19 - correct server type ok 20 - correct setName for server ok 21 - a:27017 exists in outcome ok 22 - correct server type ok 23 - correct setName for server ok 24 - correct setName for topology ok 25 - correct topology type ok 26 - correct ls timeout 1..26 ok 37 - rs/normalize_case_me # Subtest: rs/ghost_discovered ok 1 - correct amount of servers ok 2 - a:27017 exists in outcome ok 3 - correct server type ok 4 - correct setName for server ok 5 - b:27017 exists in outcome ok 6 - correct server type ok 7 - correct setName for server ok 8 - correct setName for topology ok 9 - correct topology type ok 10 - correct ls timeout 1..10 ok 38 - rs/ghost_discovered # Subtest: rs/primary_wrong_set_name ok 1 - correct amount of servers ok 2 - correct setName for topology ok 3 - correct topology type ok 4 - correct ls timeout 1..4 ok 39 - rs/primary_wrong_set_name # Subtest: rs/primary_reports_new_member ok 1 - correct amount of servers ok 2 - a:27017 exists in outcome ok 3 - correct server type ok 4 - correct setName for server ok 5 - b:27017 exists in outcome ok 6 - correct server type ok 7 - correct setName for server ok 8 - correct setName for topology ok 9 - correct topology type ok 10 - correct ls timeout ok 11 - correct amount of servers ok 12 - a:27017 exists in outcome ok 13 - correct server type ok 14 - correct setName for server ok 15 - b:27017 exists in outcome ok 16 - correct server type ok 17 - correct setName for server ok 18 - correct setName for topology ok 19 - correct topology type ok 20 - correct ls timeout ok 21 - correct amount of servers ok 22 - b:27017 exists in outcome ok 23 - correct server type ok 24 - correct setName for server ok 25 - a:27017 exists in outcome ok 26 - correct server type ok 27 - correct setName for server ok 28 - c:27017 exists in outcome ok 29 - correct server type ok 30 - correct setName for server ok 31 - correct setName for topology ok 32 - correct topology type ok 33 - correct ls timeout ok 34 - correct amount of servers ok 35 - a:27017 exists in outcome ok 36 - correct server type ok 37 - correct setName for server ok 38 - b:27017 exists in outcome ok 39 - correct server type ok 40 - correct setName for server ok 41 - c:27017 exists in outcome ok 42 - correct server type ok 43 - correct setName for server ok 44 - correct setName for topology ok 45 - correct topology type ok 46 - correct ls timeout 1..46 ok 40 - rs/primary_reports_new_member # Subtest: rs/too_new ok 1 - correct amount of servers ok 2 - b:27017 exists in outcome ok 3 - correct server type ok 4 - correct setName for server ok 5 - a:27017 exists in outcome ok 6 - correct server type ok 7 - correct setName for server ok 8 - correct setName for topology ok 9 - correct topology type ok 10 - correct ls timeout ok 11 - compatibility correct 1..11 ok 41 - rs/too_new # Subtest: rs/member_reconfig ok 1 - correct amount of servers ok 2 - a:27017 exists in outcome ok 3 - correct server type ok 4 - correct setName for server ok 5 - b:27017 exists in outcome ok 6 - correct server type ok 7 - correct setName for server ok 8 - correct setName for topology ok 9 - correct topology type ok 10 - correct ls timeout ok 11 - correct amount of servers ok 12 - a:27017 exists in outcome ok 13 - correct server type ok 14 - correct setName for server ok 15 - correct setName for topology ok 16 - correct topology type ok 17 - correct ls timeout 1..17 ok 42 - rs/member_reconfig # Subtest: sharded/normalize_uri_case ok 1 - correct amount of servers ok 2 - b:27017 exists in outcome ok 3 - correct server type ok 4 - correct setName for server ok 5 - a:27017 exists in outcome ok 6 - correct server type ok 7 - correct setName for server ok 8 - correct setName for topology ok 9 - correct topology type ok 10 - correct ls timeout 1..10 ok 43 - sharded/normalize_uri_case # Subtest: sharded/too_new ok 1 - correct amount of servers ok 2 - a:27017 exists in outcome ok 3 - correct server type ok 4 - correct setName for server ok 5 - b:27017 exists in outcome ok 6 - correct server type ok 7 - correct setName for server ok 8 - correct setName for topology ok 9 - correct topology type ok 10 - correct ls timeout ok 11 - compatibility correct 1..11 ok 44 - sharded/too_new # Subtest: sharded/mongos_disconnect ok 1 - correct amount of servers ok 2 - a:27017 exists in outcome ok 3 - correct server type ok 4 - correct setName for server ok 5 - b:27017 exists in outcome ok 6 - correct server type ok 7 - correct setName for server ok 8 - correct setName for topology ok 9 - correct topology type ok 10 - correct ls timeout ok 11 - correct amount of servers ok 12 - b:27017 exists in outcome ok 13 - correct server type ok 14 - correct setName for server ok 15 - a:27017 exists in outcome ok 16 - correct server type ok 17 - correct setName for server ok 18 - correct setName for topology ok 19 - correct topology type ok 20 - correct ls timeout ok 21 - correct amount of servers ok 22 - a:27017 exists in outcome ok 23 - correct server type ok 24 - correct setName for server ok 25 - b:27017 exists in outcome ok 26 - correct server type ok 27 - correct setName for server ok 28 - correct setName for topology ok 29 - correct topology type ok 30 - correct ls timeout 1..30 ok 45 - sharded/mongos_disconnect # Subtest: sharded/compatible ok 1 - correct amount of servers ok 2 - b:27017 exists in outcome ok 3 - correct server type ok 4 - correct setName for server ok 5 - a:27017 exists in outcome ok 6 - correct server type ok 7 - correct setName for server ok 8 - correct setName for topology ok 9 - correct topology type ok 10 - correct ls timeout ok 11 - compatibility correct 1..11 ok 46 - sharded/compatible # Subtest: sharded/multiple_mongoses ok 1 - correct amount of servers ok 2 - b:27017 exists in outcome ok 3 - correct server type ok 4 - correct setName for server ok 5 - a:27017 exists in outcome ok 6 - correct server type ok 7 - correct setName for server ok 8 - correct setName for topology ok 9 - correct topology type ok 10 - correct ls timeout 1..10 ok 47 - sharded/multiple_mongoses # Subtest: sharded/ls_timeout_mongos ok 1 - correct amount of servers ok 2 - b:27017 exists in outcome ok 3 - correct server type ok 4 - correct setName for server ok 5 - a:27017 exists in outcome ok 6 - correct server type ok 7 - correct setName for server ok 8 - correct setName for topology ok 9 - correct topology type ok 10 - correct ls timeout ok 11 - correct amount of servers ok 12 - a:27017 exists in outcome ok 13 - correct server type ok 14 - correct setName for server ok 15 - b:27017 exists in outcome ok 16 - correct server type ok 17 - correct setName for server ok 18 - correct setName for topology ok 19 - correct topology type ok 20 - correct ls timeout 1..20 ok 48 - sharded/ls_timeout_mongos # Subtest: sharded/too_old ok 1 - correct amount of servers ok 2 - b:27017 exists in outcome ok 3 - correct server type ok 4 - correct setName for server ok 5 - a:27017 exists in outcome ok 6 - correct server type ok 7 - correct setName for server ok 8 - correct setName for topology ok 9 - correct topology type ok 10 - correct ls timeout ok 11 - compatibility correct 1..11 ok 49 - sharded/too_old # Subtest: sharded/non_mongos_removed ok 1 - correct amount of servers ok 2 - a:27017 exists in outcome ok 3 - correct server type ok 4 - correct setName for server ok 5 - correct setName for topology ok 6 - correct topology type ok 7 - correct ls timeout 1..7 ok 50 - sharded/non_mongos_removed # Subtest: single/direct_connection_rssecondary ok 1 - correct amount of servers ok 2 - a:27017 exists in outcome ok 3 - correct server type ok 4 - correct setName for server ok 5 - correct setName for topology ok 6 - correct topology type ok 7 - correct ls timeout 1..7 ok 51 - single/direct_connection_rssecondary # Subtest: single/direct_connection_rsprimary ok 1 - correct amount of servers ok 2 - a:27017 exists in outcome ok 3 - correct server type ok 4 - correct setName for server ok 5 - correct setName for topology ok 6 - correct topology type ok 7 - correct ls timeout 1..7 ok 52 - single/direct_connection_rsprimary # Subtest: single/direct_connection_mongos ok 1 - correct amount of servers ok 2 - a:27017 exists in outcome ok 3 - correct server type ok 4 - correct setName for server ok 5 - correct setName for topology ok 6 - correct topology type ok 7 - correct ls timeout 1..7 ok 53 - single/direct_connection_mongos # Subtest: single/direct_connection_external_ip ok 1 - correct amount of servers ok 2 - a:27017 exists in outcome ok 3 - correct server type ok 4 - correct setName for server ok 5 - correct setName for topology ok 6 - correct topology type ok 7 - correct ls timeout 1..7 ok 54 - single/direct_connection_external_ip # Subtest: single/direct_connection_rsarbiter ok 1 - correct amount of servers ok 2 - a:27017 exists in outcome ok 3 - correct server type ok 4 - correct setName for server ok 5 - correct setName for topology ok 6 - correct topology type ok 7 - correct ls timeout 1..7 ok 55 - single/direct_connection_rsarbiter # Subtest: single/unavailable_seed ok 1 - correct amount of servers ok 2 - a:27017 exists in outcome ok 3 - correct server type ok 4 - correct setName for server ok 5 - correct setName for topology ok 6 - correct topology type ok 7 - correct ls timeout 1..7 ok 56 - single/unavailable_seed # Subtest: single/direct_connection_slave ok 1 - correct amount of servers ok 2 - a:27017 exists in outcome ok 3 - correct server type ok 4 - correct setName for server ok 5 - correct setName for topology ok 6 - correct topology type ok 7 - correct ls timeout 1..7 ok 57 - single/direct_connection_slave # Subtest: single/compatible ok 1 - correct amount of servers ok 2 - a:27017 exists in outcome ok 3 - correct server type ok 4 - correct setName for server ok 5 - correct setName for topology ok 6 - correct topology type ok 7 - correct ls timeout ok 8 - compatibility correct 1..8 ok 58 - single/compatible # Subtest: single/too_new ok 1 - correct amount of servers ok 2 - a:27017 exists in outcome ok 3 - correct server type ok 4 - correct setName for server ok 5 - correct setName for topology ok 6 - correct topology type ok 7 - correct ls timeout ok 8 - compatibility correct 1..8 ok 59 - single/too_new # Subtest: single/not_ok_response ok 1 - correct amount of servers ok 2 - a:27017 exists in outcome ok 3 - correct server type ok 4 - correct setName for server ok 5 - correct setName for topology ok 6 - correct topology type ok 7 - correct ls timeout 1..7 ok 60 - single/not_ok_response # Subtest: single/ls_timeout_standalone ok 1 - correct amount of servers ok 2 - a:27017 exists in outcome ok 3 - correct server type ok 4 - correct setName for server ok 5 - correct setName for topology ok 6 - correct topology type ok 7 - correct ls timeout 1..7 ok 61 - single/ls_timeout_standalone # Subtest: single/direct_connection_standalone ok 1 - correct amount of servers ok 2 - a:27017 exists in outcome ok 3 - correct server type ok 4 - correct setName for server ok 5 - correct setName for topology ok 6 - correct topology type ok 7 - correct ls timeout 1..7 ok 62 - single/direct_connection_standalone # Subtest: single/standalone_removed ok 1 - correct amount of servers ok 2 - b:27017 exists in outcome ok 3 - correct server type ok 4 - correct setName for server ok 5 - correct setName for topology ok 6 - correct topology type ok 7 - correct ls timeout 1..7 ok 63 - single/standalone_removed # Subtest: single/too_old ok 1 - correct amount of servers ok 2 - a:27017 exists in outcome ok 3 - correct server type ok 4 - correct setName for server ok 5 - correct setName for topology ok 6 - correct topology type ok 7 - correct ls timeout ok 8 - compatibility correct 1..8 ok 64 - single/too_old 1..64 ok t/sessions-cursors.t ....................... skipped: Session support not available t/sessions-driver.t ........................ skipped: Session support not available t/sessions-end.t ........................... skipped: Session support not available t/sessions-unacknowledged-write.t .......... skipped: Session support not available t/ss_spec.t ................................ # Subtest: rtt tests ok 1 - first_value ok 2 - first_value_zero ok 3 - value_test_1 ok 4 - value_test_2 ok 5 - value_test_3 ok 6 - value_test_4 ok 7 - value_test_5 ok 8 - negative RTT times throw an excepton 1..8 ok 1 - rtt tests # Subtest: server selection tests ok 1 - ReplicaSetNoPrimary/read/Nearest ok 2 - ReplicaSetNoPrimary/read/Nearest_multiple ok 3 - ReplicaSetNoPrimary/read/Nearest_non_matching ok 4 - ReplicaSetNoPrimary/read/PossiblePrimary ok 5 - ReplicaSetNoPrimary/read/PossiblePrimaryNearest ok 6 - ReplicaSetNoPrimary/read/Primary ok 7 - ReplicaSetNoPrimary/read/PrimaryPreferred ok 8 - ReplicaSetNoPrimary/read/PrimaryPreferred_non_matching ok 9 - ReplicaSetNoPrimary/read/Secondary ok 10 - ReplicaSetNoPrimary/read/SecondaryPreferred ok 11 - ReplicaSetNoPrimary/read/SecondaryPreferred_non_matching ok 12 - ReplicaSetNoPrimary/read/Secondary_multi_tags ok 13 - ReplicaSetNoPrimary/read/Secondary_multi_tags2 ok 14 - ReplicaSetNoPrimary/read/Secondary_non_matching ok 15 - ReplicaSetNoPrimary/write/SecondaryPreferred ok 16 - ReplicaSetWithPrimary/read/Nearest ok 17 - ReplicaSetWithPrimary/read/Nearest_multiple ok 18 - ReplicaSetWithPrimary/read/Nearest_non_matching ok 19 - ReplicaSetWithPrimary/read/Primary ok 20 - ReplicaSetWithPrimary/read/PrimaryPreferred ok 21 - ReplicaSetWithPrimary/read/PrimaryPreferred_non_matching ok 22 - ReplicaSetWithPrimary/read/Secondary ok 23 - ReplicaSetWithPrimary/read/SecondaryPreferred ok 24 - ReplicaSetWithPrimary/read/SecondaryPreferred_non_matching ok 25 - ReplicaSetWithPrimary/read/SecondaryPreferred_tags ok 26 - ReplicaSetWithPrimary/read/Secondary_non_matching ok 27 - ReplicaSetWithPrimary/write/SecondaryPreferred ok 28 - Sharded/read/Nearest ok 29 - Sharded/read/Primary ok 30 - Sharded/read/PrimaryPreferred ok 31 - Sharded/read/Secondary ok 32 - Sharded/read/SecondaryPreferred ok 33 - Sharded/write/Nearest ok 34 - Sharded/write/Primary ok 35 - Sharded/write/PrimaryPreferred ok 36 - Sharded/write/Secondary ok 37 - Sharded/write/SecondaryPreferred ok 38 - Single/read/SecondaryPreferred ok 39 - Single/write/SecondaryPreferred ok 40 - Unknown/read/SecondaryPreferred ok 41 - Unknown/write/SecondaryPreferred 1..41 ok 2 - server selection tests # Subtest: random selection ok 1 - servers randomly selected 1..1 ok 3 - random selection 1..3 ok All tests successful. Files=40, Tests=679, 43 wallclock secs ( 0.47 usr 0.10 sys + 29.85 cusr 2.59 csys = 33.01 CPU) Result: PASS