diff options
Diffstat (limited to 'jstests/update.js')
-rw-r--r-- | jstests/update.js | 40 |
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(); |