summaryrefslogtreecommitdiff
path: root/src/mongo/gotools/test/qa-tests/jstests/restore/15k_collections.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/gotools/test/qa-tests/jstests/restore/15k_collections.js')
-rw-r--r--src/mongo/gotools/test/qa-tests/jstests/restore/15k_collections.js38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/mongo/gotools/test/qa-tests/jstests/restore/15k_collections.js b/src/mongo/gotools/test/qa-tests/jstests/restore/15k_collections.js
new file mode 100644
index 00000000000..7bdbaceab60
--- /dev/null
+++ b/src/mongo/gotools/test/qa-tests/jstests/restore/15k_collections.js
@@ -0,0 +1,38 @@
+// this tests that we can restore a large number of collections, resolving
+// an issue raised by TOOLS-1088
+// @tags: [requires_many_files, requires_large_ram]
+(function() {
+ if (typeof getToolTest === 'undefined') {
+ load('jstests/configs/plain_28.config.js');
+ }
+
+ var toolTest = getToolTest('15k_collections');
+ var commonToolArgs = getCommonToolArguments();
+
+ var dbOne = toolTest.db.getSiblingDB('dbOne');
+
+ for (var i=0; i<=15000; i++) {
+ collName = "Coll" + i;
+ dbOne.createCollection(collName);
+ }
+
+ // dump it
+ var dumpTarget = '15k_collections_dump';
+ resetDbpath(dumpTarget);
+ var ret = toolTest.runTool.apply(toolTest, ['dump']
+ .concat(getDumpTarget(dumpTarget))
+ .concat(commonToolArgs));
+ assert.eq(0, ret);
+
+ // drop the database so it's empty
+ dbOne.dropDatabase();
+
+ // restore it
+ ret = toolTest.runTool.apply(toolTest, ['restore']
+ .concat(getRestoreTarget(dumpTarget))
+ .concat(commonToolArgs));
+ assert.eq(0, ret, "restore to empty DB should have returned successfully");
+
+ // success
+ toolTest.stop();
+}());