53 lines
1.1 KiB
JavaScript
53 lines
1.1 KiB
JavaScript
|
|
t = db.big_object1;
|
|
t.drop();
|
|
|
|
if (db.adminCommand("buildinfo").bits == 64) {
|
|
var large = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
|
|
var s = large;
|
|
while (s.length < 850 * 1024) {
|
|
s += large;
|
|
}
|
|
x = 0;
|
|
while (true) {
|
|
var result;
|
|
n = {_id: x, a: []};
|
|
for (i = 0; i < 14 + x; i++)
|
|
n.a.push(s);
|
|
try {
|
|
result = t.insert(n);
|
|
o = n;
|
|
} catch (e) {
|
|
break;
|
|
}
|
|
|
|
if (result.hasWriteError())
|
|
break;
|
|
x++;
|
|
}
|
|
|
|
printjson(t.stats(1024 * 1024));
|
|
|
|
assert.lt(15 * 1024 * 1024, Object.bsonsize(o), "A1");
|
|
assert.gt(17 * 1024 * 1024, Object.bsonsize(o), "A2");
|
|
|
|
assert.eq(x, t.count(), "A3");
|
|
|
|
for (i = 0; i < x; i++) {
|
|
o = t.findOne({_id: i});
|
|
try {
|
|
// test large mongo -> js conversion
|
|
var a = o.a;
|
|
} catch (e) {
|
|
assert(false, "Caught exception trying to insert during iteration " + i + ": " + e);
|
|
}
|
|
assert(o, "B" + i);
|
|
}
|
|
|
|
t.drop();
|
|
} else {
|
|
print("skipping big_object1 b/c not 64-bit");
|
|
}
|
|
|
|
print("SUCCESS");
|