summaryrefslogtreecommitdiff
path: root/jstests/update.js
diff options
context:
space:
mode:
Diffstat (limited to 'jstests/update.js')
-rw-r--r--jstests/update.js40
1 files changed, 40 insertions, 0 deletions
diff --git a/jstests/update.js b/jstests/update.js
new file mode 100644
index 00000000000..37bf6378c64
--- /dev/null
+++ b/jstests/update.js
@@ -0,0 +1,40 @@
+
+asdf = db.getCollection( "asdf" );
+asdf.drop();
+
+var txt = "asdf";
+for(var i=0; i<10; i++) {
+ txt = txt + txt;
+}
+
+var iterations = _isWindows() ? 2500 : 5000
+
+// fill db
+for(var i=1; i<=iterations; i++) {
+ var obj = {txt : txt};
+ asdf.save(obj);
+
+ var obj2 = {txt: txt, comments: [{num: i, txt: txt}, {num: [], txt: txt}, {num: true, txt: txt}]};
+ asdf.update(obj, obj2);
+
+ if(i%100 == 0) {
+ var c = asdf.count();
+ assert.eq(c , i);
+ }
+}
+
+assert(asdf.validate().valid);
+
+var stats = db.runCommand({ collstats: "asdf" });
+
+// some checks. want to check that padding factor is working; in addition this lets us do a little basic
+// testing of the collstats command at the same time
+assert(stats.count == iterations);
+assert(stats.size < 140433012 * 5 && stats.size > 1000000);
+assert(stats.numExtents < 20);
+assert(stats.nindexes == 1);
+var pf = stats.paddingFactor;
+print("update.js padding factor: " + pf);
+assert(pf > 1.7 && pf <= 2);
+
+asdf.drop();