0
0
mirror of https://github.com/mongodb/mongo.git synced 2024-12-01 09:32:32 +01:00
mongodb/jstests/slow1/memory.js
Mathias Stearn 43d933a286 SERVER-13391 Move slowest tests from noPassthrough* (formerly slow{Weekly,Nightly}) to slow*
slow1 and slow2 are new suites to hold very slow tests. The idea is that we
can create slow3, slow4, etc to keep the time to run the longest suite down.
2014-03-27 17:35:16 -04:00

43 lines
1.4 KiB
JavaScript

var col = db.memoryTest;
// test creating many collections to make sure no internal cache goes OOM
for (var i = 0; i < 10000; ++i) {
name = "memoryTest" + i;
if ((i % 1000) == 0) print("Processing " + name);
db.eval(function(col) { for (var i = 0; i < 100; ++i) {db[col + "_" + i].find();} }, name);
}
// test recovery of JS engine after out of memory
db.system.js.save( { "_id" : "f1", "value" : function(n) {
a = [];
b = [];
c = [];
for (i = 0; i < n; i++) {
a.push(Math.random());
b.push(Math.random());
c.push(Math.random());
}
} })
// do mix of calls to make sure OOM is handled with no permanent damage
db.eval("f1(10)");
assert.throws(function() { db.eval("f1(100000000)"); } );
db.eval("f1(10)");
assert.throws(function() { db.eval("f1(1000000000)"); } );
db.eval("f1(1000000)");
db.eval("f1(1000000)");
db.eval("f1(1000000)");
assert.throws(function() { db.eval("f1(100000000)"); } );
db.eval("f1(10)");
db.eval("f1(1000000)");
db.eval("f1(1000000)");
db.eval("f1(1000000)");
// also test $where
col.drop();
col.insert({a: 1});
col.findOne({$where: "var arr = []; for (var i = 0; i < 1000000; ++i) {arr.push(0);}"});
assert.throws(function() { col.findOne({$where: "var arr = []; for (var i = 0; i < 1000000000; ++i) {arr.push(0);}"}); });
col.findOne({$where: "var arr = []; for (var i = 0; i < 1000000; ++i) {arr.push(0);}"});