summaryrefslogtreecommitdiff
path: root/src/mongo/gotools/src/github.com/mongodb/mongo-tools/test/qa-tests/jstests/import/import_write_concern_mongos.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/gotools/src/github.com/mongodb/mongo-tools/test/qa-tests/jstests/import/import_write_concern_mongos.js')
-rw-r--r--src/mongo/gotools/src/github.com/mongodb/mongo-tools/test/qa-tests/jstests/import/import_write_concern_mongos.js80
1 files changed, 80 insertions, 0 deletions
diff --git a/src/mongo/gotools/src/github.com/mongodb/mongo-tools/test/qa-tests/jstests/import/import_write_concern_mongos.js b/src/mongo/gotools/src/github.com/mongodb/mongo-tools/test/qa-tests/jstests/import/import_write_concern_mongos.js
new file mode 100644
index 00000000000..ed15ffd4639
--- /dev/null
+++ b/src/mongo/gotools/src/github.com/mongodb/mongo-tools/test/qa-tests/jstests/import/import_write_concern_mongos.js
@@ -0,0 +1,80 @@
+(function() {
+
+ load("jstests/configs/replset_28.config.js");
+
+ var name = 'import_write_concern';
+ var toolTest = new ToolTest(name, null);
+ var dbName = "foo";
+ var colName = "bar";
+ var fileTarget = "wc_mongos.csv";
+ var st = new ShardingTest({
+ shards: {
+ rs0: {
+ nodes: 3,
+ useHostName: true,
+ settings: {chainingAllowed: false},
+ },
+ },
+ mongos: 1,
+ config: 1,
+ configReplSetTestOptions: {
+ settings: {chainingAllowed: false},
+ },
+ });
+ var rs = st.rs0;
+ rs.awaitReplication();
+ toolTest.port = st.s.port;
+
+ var commonToolArgs = getCommonToolArguments();
+ var db = st.s.getDB(dbName);
+
+ function writeConcernTestFunc(exitCode, writeConcern, name) {
+ jsTest.log(name);
+ var ret = toolTest.runTool.apply(toolTest, ['import',
+ '--file', fileTarget,
+ '-d', dbName,
+ '-c', colName]
+ .concat(writeConcern)
+ .concat(commonToolArgs));
+ assert.eq(exitCode, ret, name);
+ }
+
+ function testSetup() {
+ db.dropDatabase();
+ }
+
+ function startProgramNoConnect() {
+ return startMongoProgramNoConnect.apply(null, ['mongoimport',
+ '--writeConcern={w:3}',
+ '--host', st.s.host,
+ '--file', fileTarget]
+ .concat(commonToolArgs));
+ }
+
+ // create a test collection
+ var data = [];
+ for (var i=0; i<=100; i++) {
+ data.push({_id: i, x: i*i});
+ }
+ db.getCollection(colName).insertMany(data);
+ rs.awaitReplication();
+
+ // setup: export the data that we'll use
+ var ret = toolTest.runTool.apply(toolTest, ['export',
+ '--out', fileTarget,
+ '-d', dbName,
+ '-c', colName]
+ .concat(commonToolArgs));
+ assert.eq(0, ret);
+
+ // drop the database so it's empty
+ db.dropDatabase();
+
+ // load and run the write concern suite
+ load('jstests/libs/wc_framework.js');
+ runWCTest("mongoimport", rs, toolTest, writeConcernTestFunc, startProgramNoConnect, testSetup);
+
+ db.dropDatabase();
+ rs.stopSet();
+ toolTest.stop();
+}());