diff options
author | Siyuan Zhou <siyuan.zhou@mongodb.com> | 2014-02-19 12:45:53 -0500 |
---|---|---|
committer | Matt Kangas <matt.kangas@mongodb.com> | 2014-03-03 22:54:10 -0500 |
commit | 3660343e0b4627d2fee4afb89b74d32644d16d18 (patch) | |
tree | ffa571e0b73ce56d73c2ae23f458f0db772ef782 /jstests/core/padding.js | |
parent | 9fae141a1f3fe652fa6002e47722c5ceb051cffb (diff) | |
download | mongo-3660343e0b4627d2fee4afb89b74d32644d16d18.tar.gz |
SERVER-12127 migrate js tests to jscore suite when not related to writes
Migrate js tests starting from j-z.
Include SERVER-12920 Update use_power_of_2.js
Signed-off-by: Matt Kangas <matt.kangas@mongodb.com>
Diffstat (limited to 'jstests/core/padding.js')
-rw-r--r-- | jstests/core/padding.js | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/jstests/core/padding.js b/jstests/core/padding.js new file mode 100644 index 00000000000..1872574d80f --- /dev/null +++ b/jstests/core/padding.js @@ -0,0 +1,66 @@ +p = db.getCollection("padding"); +p.drop(); + +// this test requires usePowerOf2Sizes to be off +db.createCollection( p.getName(), { "usePowerOf2Sizes" : false } ); +assert.eq(0, p.stats().userFlags); + +for (var i = 0; i < 1000; i++) { + p.insert({ x: 1, y: "aaaaaaaaaaaaaaa" }); +} + +assert.eq(p.stats().paddingFactor, 1, "Padding Not 1"); + +for (var i = 0; i < 1000; i++) { + var x = p.findOne(); + x.y = x.y + "aaaaaaaaaaaaaaaa"; + p.update({}, x); + if (i % 100 == 0) + + print(p.stats().paddingFactor); +} + +assert.gt(p.stats().paddingFactor, 1.9, "Padding not > 1.9"); + +// this should make it go down +for (var i = 0; i < 1000; i++) { + p.update({}, { $inc: { x: 1} }); + if (i % 100 == 0) + print(p.stats().paddingFactor); +} +assert.lt(p.stats().paddingFactor, 1.7, "Padding not < 1.7"); + +for (var i = 0; i < 1000; i++) { + if (i % 2 == 0) { + p.update({}, { $inc: { x: 1} }); + } + else { + var x = p.findOne(); + x.y = x.y + "aaaaaaaaaaaaaaaa"; + p.update({}, x); + } + if( i % 100 == 0 ) + print(p.stats().paddingFactor); +} +var ps = p.stats().paddingFactor; +assert.gt(ps, 1.7, "Padding not greater than 1.7"); +assert.lt(ps, 1.9, "Padding not less than 1.9"); + +// 50/50 inserts and nonfitting updates +for (var i = 0; i < 1000; i++) { + if (i % 2 == 0) { + p.insert({}); + } + else { + var x = p.findOne(); + x.y = x.y + "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; + p.update({}, x); + } + if (i % 100 == 0) + print(p.stats().paddingFactor); +} + +// should have trended somewhat higher over the above. +// speed of increase would be higher with more indexes. +assert.gt(p.stats().paddingFactor, ps + 0.02 , "padding factor not greater than value (+.02)"); +p.drop(); |