summaryrefslogtreecommitdiff
path: root/jstests
diff options
context:
space:
mode:
Diffstat (limited to 'jstests')
-rw-r--r--jstests/batch_write_protocol.js240
-rw-r--r--jstests/sharding/sharded_batch_write_protocol.js257
2 files changed, 0 insertions, 497 deletions
diff --git a/jstests/batch_write_protocol.js b/jstests/batch_write_protocol.js
deleted file mode 100644
index 773abe1fdb5..00000000000
--- a/jstests/batch_write_protocol.js
+++ /dev/null
@@ -1,240 +0,0 @@
-//
-// Ensures that mongod respects the basic batch write protocols
-//
-
-var coll = db.getCollection("batch_write_protocol");
-
-var PRESENT = "PRESENT";
-var ABSENT = "ABSENT";
-
-var assertHasFields = function(docA, docB) {
- print("checking " + tojson(docA) + " vs. " + tojson(docB));
-
- for ( var field in docB) {
- if (docB[field] === PRESENT && docA[field] === undefined)
- assert(false, "field is absent that shouldn't be: " + field);
- }
-
- for ( var field in docA) {
- if (docB[field] === undefined) continue;
- if (docB[field] === ABSENT) assert(false, "field is present that shouldn't be: " + field);
- if (docB[field] === PRESENT) continue;
- assert.eq(docA[field], docB[field]);
- }
-};
-
-var request;
-var response;
-
-//
-// INSERT
-//
-
-jsTest.log("Starting insert tests...");
-
-coll.remove({});
-
-// Only check the parsing lightly, we do this elsewhere
-// NO DOCS
-request = {insert : coll + "", writeConcern : {}, continueOnError : true};
-response = {ok : false, errCode : PRESENT, errMessage : PRESENT};
-assertHasFields(coll.runCommand(request), response);
-
-// NO WC
-request = {insert : coll + "", documents : [{a : 1}], continueOnError : true};
-response = {ok : false, errCode : PRESENT, errMessage : PRESENT};
-assertHasFields(coll.runCommand(request), response);
-
-// NO COE
-request = {insert : coll + "", documents : [{a : 1}], writeConcern : {}};
-response = {ok : false, errCode : PRESENT, errMessage : PRESENT};
-assertHasFields(coll.runCommand(request), response);
-
-// Correct single insert
-request = {insert : coll + "", documents : [{a : 1}], writeConcern : {}, continueOnError : true};
-response = {ok : true, errCode : ABSENT, errMessage : ABSENT, n : 1};
-assertHasFields(coll.runCommand(request), response);
-assert.eq(coll.count(), 1);
-
-// Correct multi insert
-request = {insert : coll + "",
- documents : [{a : 2}, {a : 3}],
- writeConcern : {},
- continueOnError : true};
-response = {ok : true, errCode : ABSENT, errMessage : ABSENT, n : 2};
-assertHasFields(coll.runCommand(request), response);
-assert.eq(coll.count(), 3);
-
-// Error on single insert
-coll.ensureIndex({a : 1}, {unique : true});
-request = {insert : coll + "", documents : [{a : 1}], writeConcern : {}, continueOnError : true};
-response = {ok : false, errCode : PRESENT, errMessage : PRESENT};
-assertHasFields(coll.runCommand(request), response);
-assert.eq(coll.count(), 3);
-
-// Error on multi insert
-request = {insert : coll + "",
- documents : [{a : 1}, {a : 4}],
- writeConcern : {},
- continueOnError : true};
-response = {ok : false, errCode : PRESENT, errMessage : PRESENT, errDetails : PRESENT};
-assertHasFields(coll.runCommand(request), response);
-assert.eq(coll.count(), 4);
-
-// Error on multi insert, no COE
-request = {insert : coll + "",
- documents : [{a : 1}, {a : 5}],
- writeConcern : {},
- continueOnError : false};
-response = {ok : false, errCode : PRESENT, errMessage : PRESENT, errDetails : PRESENT};
-assertHasFields(coll.runCommand(request), response);
-assert.eq(coll.count(), 4);
-
-//
-// Update
-//
-
-jsTest.log("Starting update tests...");
-
-coll.remove({});
-
-// Correct single update
-request = {update : coll + "",
- updates : [{q : {a : 1}, u : {a : 1}}],
- writeConcern : {},
- continueOnError : true};
-response = {ok : true, errCode : ABSENT, errMessage : ABSENT, n : 0, upserted : 0};
-assertHasFields(coll.runCommand(request), response);
-assert.eq(coll.count(), 0);
-
-// Correct single upsert
-request = {update : coll + "",
- updates : [{q : {a : 1}, u : {a : 1}, upsert : true}],
- writeConcern : {},
- continueOnError : true};
-response = {ok : true, errCode : ABSENT, errMessage : ABSENT, n : 0, upserted : 1};
-assertHasFields(coll.runCommand(request), response);
-assert.eq(coll.count(), 1);
-
-// Correct multiple upsert
-request = {update : coll + "",
- updates : [{q : {a : 2}, u : {a : 2}, upsert : true},
- {q : {a : 3}, u : {a : 3}, upsert : true}],
- writeConcern : {},
- continueOnError : true};
-response = {ok : true, errCode : ABSENT, errMessage : ABSENT, n : 0, upserted : 2};
-assertHasFields(coll.runCommand(request), response);
-assert.eq(coll.count(), 3);
-
-// Correct multiple update
-request = {update : coll + "",
- updates : [{q : {}, u : {$set : {b : 1}}, multi : true}],
- writeConcern : {},
- continueOnError : true};
-response = {ok : true, errCode : ABSENT, errMessage : ABSENT, n : 3, upserted : 0};
-assertHasFields(coll.runCommand(request), response);
-assert.eq(coll.count(), 3);
-
-// Error on single update
-request = {update : coll + "",
- updates : [{q : {}, u : {b : 1}, multi : true}],
- writeConcern : {},
- continueOnError : true};
-response = {ok : false, errCode : PRESENT, errMessage : PRESENT};
-assertHasFields(coll.runCommand(request), response);
-assert.eq(coll.count(), 3);
-
-// Error on multiple update
-request = {update : coll + "",
- updates : [{q : {}, u : {b : 1}, multi : true},
- {q : {}, u : {$set : {b : 2}}, multi : true}],
- writeConcern : {},
- continueOnError : true};
-response = {ok : false,
- errCode : PRESENT,
- errMessage : PRESENT,
- errDetails : PRESENT,
- n : 3,
- upserted : 0};
-assertHasFields(coll.runCommand(request), response);
-assert.eq(coll.count(), 3);
-
-// Error on multiple update, no COE
-request = {update : coll + "",
- updates : [{q : {}, u : {b : 1}, multi : true},
- {q : {}, u : {$set : {b : 2}}, multi : true}],
- writeConcern : {},
- continueOnError : false};
-response = {ok : false,
- errCode : PRESENT,
- errMessage : PRESENT,
- errDetails : PRESENT,
- n : 0,
- upserted : 0};
-assertHasFields(coll.runCommand(request), response);
-assert.eq(coll.count(), 3);
-
-//
-// Delete
-//
-
-jsTest.log( "Starting delete tests..." );
-
-// Correct single delete
-request = {delete : coll + "",
- deletes : [{q : {a : 1}}],
- writeConcern : {},
- continueOnError : true};
-response = {ok : true, errCode : ABSENT, errMessage : ABSENT, n : 1, upserted : 0};
-assertHasFields(coll.runCommand(request), response);
-assert.eq(coll.count(), 2);
-
-// Correct multi delete
-request = {delete : coll + "",
- deletes : [{q : {a : 2}}, { q : { a : 10}}],
- writeConcern : {},
- continueOnError : true};
-response = {ok : true, errCode : ABSENT, errMessage : ABSENT, n : 1, upserted : 0};
-assertHasFields(coll.runCommand(request), response);
-assert.eq(coll.count(), 1);
-
-// Error on single delete
-request = {delete : coll + "",
- deletes : [{q : {$set : {a : 2}}}],
- writeConcern : {},
- continueOnError : true};
-response = {ok : false, errCode : PRESENT, errMessage : PRESENT};
-assertHasFields(coll.runCommand(request), response);
-assert.eq(coll.count(), 1);
-
- // Error on multi delete
-request = {delete : coll + "",
- deletes : [{q : {$set : {a : 2}}},
- { q : { a : 3 } }],
- writeConcern : {},
- continueOnError : true};
- response = {ok : false,
- errCode : PRESENT,
- errMessage : PRESENT,
- errDetails : PRESENT,
- n : 1,
- upserted : 0};
- assertHasFields(coll.runCommand(request), response);
- assert.eq(coll.count(), 0);
-
-// Error on multi delete, no COE
-coll.insert({ a : 3 });
-request = {delete : coll + "",
- deletes : [{q : {$set : {a : 2}}},
- {q : { a : 3 }}],
- writeConcern : {},
- continueOnError : false};
-response = {ok : false,
- errCode : PRESENT,
- errMessage : PRESENT,
- errDetails : PRESENT,
- n : 0,
- upserted : 0};
-assertHasFields(coll.runCommand(request), response);
-assert.eq(coll.count(), 1);
-
diff --git a/jstests/sharding/sharded_batch_write_protocol.js b/jstests/sharding/sharded_batch_write_protocol.js
deleted file mode 100644
index f8819018009..00000000000
--- a/jstests/sharding/sharded_batch_write_protocol.js
+++ /dev/null
@@ -1,257 +0,0 @@
-//
-// Tests batch writes in a sharded cluster
-//
-
-var options = {separateConfig : true};
-
-var st = new ShardingTest({shards : 1, mongos : 1, other : options});
-st.stopBalancer();
-
-var mongos = st.s0;
-var shards = mongos.getDB("config").shards.find().toArray();
-var admin = mongos.getDB("admin");
-var coll = mongos.getCollection("foo.bar");
-
-assert(admin.runCommand({enableSharding : coll.getDB() + ""}).ok);
-printjson(admin.runCommand({movePrimary : coll.getDB() + "", to : shards[0]._id}));
-
-var PRESENT = "PRESENT";
-var ABSENT = "ABSENT";
-
-var assertHasFields = function(docA, docB) {
- print("checking " + tojson(docA) + " vs. " + tojson(docB));
-
- for ( var field in docB) {
- if (docB[field] === PRESENT && docA[field] === undefined)
- assert(false, "field is absent that shouldn't be: " + field);
- }
-
- for ( var field in docA) {
- if (docB[field] === undefined) continue;
- if (docB[field] === ABSENT) assert(false, "field is present that shouldn't be: " + field);
- if (docB[field] === PRESENT) continue;
- assert.eq(docA[field], docB[field]);
- }
-};
-
-var request;
-var response;
-
-//
-// INSERT
-//
-
-jsTest.log("Starting insert tests...");
-
-coll.remove({});
-assert.eq( null, coll.getDB().getLastError() );
-assert(admin.runCommand({ shardCollection : coll + "", key : {a : 1} }).ok);
-
-// Only check the parsing lightly, we do this elsewhere
-// NO DOCS
-request = {insert : coll + "", writeConcern : {}, continueOnError : true};
-response = {ok : false, errCode : PRESENT, errMessage : PRESENT};
-assertHasFields(coll.runCommand(request), response);
-
-// NO WC
-request = {insert : coll + "", documents : [{a : 1}], continueOnError : true};
-response = {ok : false, errCode : PRESENT, errMessage : PRESENT};
-assertHasFields(coll.runCommand(request), response);
-
-// NO COE
-request = {insert : coll + "", documents : [{a : 1}], writeConcern : {}};
-response = {ok : false, errCode : PRESENT, errMessage : PRESENT};
-assertHasFields(coll.runCommand(request), response);
-
-// Correct single insert
-request = {insert : coll + "", documents : [{a : 1}], writeConcern : {}, continueOnError : true};
-response = {ok : true, errCode : ABSENT, errMessage : ABSENT, n : 1};
-assertHasFields(coll.runCommand(request), response);
-assert.eq(coll.count(), 1);
-
-// Correct multi insert
-request = {insert : coll + "",
- documents : [{a : 2}, {a : 3}],
- writeConcern : {},
- continueOnError : true};
-response = {ok : true, errCode : ABSENT, errMessage : ABSENT, n : 2};
-assertHasFields(coll.runCommand(request), response);
-assert.eq(coll.count(), 3);
-
-// Error on single insert
-st.shard0.getCollection( coll + "" ).dropIndex({a : 1});
-st.shard0.getCollection( coll + "" ).ensureIndex({a : 1}, {unique : true});
-request = {insert : coll + "", documents : [{a : 1}], writeConcern : {}, continueOnError : true};
-response = {ok : false, errCode : PRESENT, errMessage : PRESENT};
-assertHasFields(coll.runCommand(request), response);
-assert.eq(coll.count(), 3);
-
-// Error on multi insert
-request = {insert : coll + "",
- documents : [{a : 1}, {a : 4}],
- writeConcern : {},
- continueOnError : true};
-response = {ok : false, errCode : PRESENT, errMessage : PRESENT, errDetails : PRESENT};
-assertHasFields(coll.runCommand(request), response);
-assert.eq(coll.count(), 4);
-
-// Error on multi insert, no COE
-request = {insert : coll + "",
- documents : [{a : 1}, {a : 5}],
- writeConcern : {},
- continueOnError : false};
-response = {ok : false, errCode : PRESENT, errMessage : PRESENT, errDetails : PRESENT};
-assertHasFields(coll.runCommand(request), response);
-assert.eq(coll.count(), 4);
-
-//
-// Update
-//
-
-jsTest.log("Starting update tests...");
-
-coll.remove({});
-assert.eq( null, coll.getDB().getLastError() );
-st.shard0.getCollection( coll + "" ).dropIndex({a : 1});
-st.shard0.getCollection( coll + "" ).ensureIndex({a : 1});
-
-// Correct single update
-request = {update : coll + "",
- updates : [{q : {a : 1}, u : {a : 1}}],
- writeConcern : {},
- continueOnError : true};
-response = {ok : true, errCode : ABSENT, errMessage : ABSENT, n : 0, upserted : 0};
-assertHasFields(coll.runCommand(request), response);
-assert.eq(coll.count(), 0);
-
-// Correct single upsert
-request = {update : coll + "",
- updates : [{q : {a : 1}, u : {a : 1}, upsert : true}],
- writeConcern : {},
- continueOnError : true};
-response = {ok : true, errCode : ABSENT, errMessage : ABSENT, n : 0, upserted : 1};
-assertHasFields(coll.runCommand(request), response);
-assert.eq(coll.count(), 1);
-
-// Correct multiple upsert
-request = {update : coll + "",
- updates : [{q : {a : 2}, u : {a : 2}, upsert : true},
- {q : {a : 3}, u : {a : 3}, upsert : true}],
- writeConcern : {},
- continueOnError : true};
-response = {ok : true, errCode : ABSENT, errMessage : ABSENT, n : 0, upserted : 2};
-assertHasFields(coll.runCommand(request), response);
-assert.eq(coll.count(), 3);
-
-// Correct multiple update
-request = {update : coll + "",
- updates : [{q : {}, u : {$set : {b : 1}}, multi : true}],
- writeConcern : {},
- continueOnError : true};
-response = {ok : true, errCode : ABSENT, errMessage : ABSENT, n : 3, upserted : 0};
-assertHasFields(coll.runCommand(request), response);
-assert.eq(coll.count(), 3);
-
-// Error on single update
-request = {update : coll + "",
- updates : [{q : {}, u : {b : 1}, multi : true}],
- writeConcern : {},
- continueOnError : true};
-response = {ok : false, errCode : PRESENT, errMessage : PRESENT};
-assertHasFields(coll.runCommand(request), response);
-assert.eq(coll.count(), 3);
-
-// Error on multiple update
-request = {update : coll + "",
- updates : [{q : {}, u : {b : 1}, multi : true},
- {q : {}, u : {$set : {b : 2}}, multi : true}],
- writeConcern : {},
- continueOnError : true};
-response = {ok : false,
- errCode : PRESENT,
- errMessage : PRESENT,
- errDetails : PRESENT,
- n : 3,
- upserted : 0};
-assertHasFields(coll.runCommand(request), response);
-assert.eq(coll.count(), 3);
-
-// Error on multiple update, no COE
-request = {update : coll + "",
- updates : [{q : {}, u : {b : 1}, multi : true},
- {q : {}, u : {$set : {b : 2}}, multi : true}],
- writeConcern : {},
- continueOnError : false};
-response = {ok : false,
- errCode : PRESENT,
- errMessage : PRESENT,
- errDetails : PRESENT,
- n : 0,
- upserted : 0};
-assertHasFields(coll.runCommand(request), response);
-assert.eq(coll.count(), 3);
-
-//
-// Delete
-//
-
-jsTest.log( "Starting delete tests..." );
-
-// Correct single delete
-request = {delete : coll + "",
- deletes : [{q : {a : 1}}],
- writeConcern : {},
- continueOnError : true};
-response = {ok : true, errCode : ABSENT, errMessage : ABSENT, n : 1, upserted : 0};
-assertHasFields(coll.runCommand(request), response);
-assert.eq(coll.count(), 2);
-
-// Correct multi delete
-request = {delete : coll + "",
- deletes : [{q : {a : 2}}, { q : { a : 10}}],
- writeConcern : {},
- continueOnError : true};
-response = {ok : true, errCode : ABSENT, errMessage : ABSENT, n : 1, upserted : 0};
-assertHasFields(coll.runCommand(request), response);
-assert.eq(coll.count(), 1);
-
-// Error on single delete
-request = {delete : coll + "",
- deletes : [{q : {$set : {a : 2}}}],
- writeConcern : {},
- continueOnError : true};
-response = {ok : false, errCode : PRESENT, errMessage : PRESENT};
-assertHasFields(coll.runCommand(request), response);
-assert.eq(coll.count(), 1);
-
-// Error on multi delete
-request = {delete : coll + "",
- deletes : [{q : {$set : {a : 2}}},
- { q : { a : 3 } }],
- writeConcern : {},
- continueOnError : true};
-response = {ok : false,
- errCode : PRESENT,
- errMessage : PRESENT,
- errDetails : PRESENT,
- n : 1,
- upserted : 0};
-assertHasFields(coll.runCommand(request), response);
-assert.eq(coll.count(), 0);
-
-// Error on multi delete, no COE
-coll.insert({ a : 3 });
-assert.eq( null, coll.getDB().getLastError() );
-request = {delete : coll + "",
- deletes : [{q : {$set : {a : 2}}},
- {q : { a : 3 }}],
- writeConcern : {},
- continueOnError : false};
-response = {ok : false,
- errCode : PRESENT,
- errMessage : PRESENT,
- errDetails : PRESENT,
- n : 0,
- upserted : 0};
-assertHasFields(coll.runCommand(request), response);
-assert.eq(coll.count(), 1);