summaryrefslogtreecommitdiff
path: root/jstests/parallel
diff options
context:
space:
mode:
Diffstat (limited to 'jstests/parallel')
-rw-r--r--jstests/parallel/del.js79
-rw-r--r--jstests/parallel/repl.js4
2 files changed, 81 insertions, 2 deletions
diff --git a/jstests/parallel/del.js b/jstests/parallel/del.js
new file mode 100644
index 0000000..c6eb500
--- /dev/null
+++ b/jstests/parallel/del.js
@@ -0,0 +1,79 @@
+
+
+N = 1000;
+
+HOST = db.getMongo().host
+
+DONE = false;
+
+function del1( dbname ){
+ var m = new Mongo( HOST )
+ var db = m.getDB( "foo" + dbname );
+ var t = db.del
+
+ while ( ! DONE ){
+ var r = Math.random();
+ var n = Math.floor( Math.random() * N );
+ if ( r < .9 ){
+ t.insert( { x : n } )
+ }
+ else if ( r < .98 ){
+ t.remove( { x : n } );
+ }
+ else if ( r < .99 ){
+ t.remove( { x : { $lt : n } } )
+ }
+ else {
+ t.remove( { x : { $gt : n } } );
+ }
+ if ( r > .9999 )
+ print( t.count() )
+ }
+}
+
+function del2( dbname ){
+ var m = new Mongo( HOST )
+ var db = m.getDB( "foo" + dbname );
+ var t = db.del
+
+ while ( ! DONE ){
+ var r = Math.random();
+ var n = Math.floor( Math.random() * N );
+ var s = Math.random() > .5 ? 1 : -1;
+
+ if ( r < .5 ){
+ t.findOne( { x : n } )
+ }
+ else if ( r < .75 ){
+ t.find( { x : { $lt : n } } ).sort( { x : s } ).itcount();
+ }
+ else {
+ t.find( { x : { $gt : n } } ).sort( { x : s } ).itcount();
+ }
+ }
+}
+
+all = []
+
+all.push( fork( del1 , "a" ) )
+all.push( fork( del2 , "a" ) )
+all.push( fork( del1 , "b" ) )
+all.push( fork( del2 , "b" ) )
+
+for ( i=0; i<all.length; i++ )
+ all[i].start()
+
+a = db.getSisterDB( "fooa" )
+b = db.getSisterDB( "foob" )
+
+for ( i=0; i<10; i++ ){
+ sleep( 2000 )
+ print( "dropping" )
+ a.dropDatabase();
+ b.dropDatabase();
+}
+
+DONE = true;
+
+all[0].join()
+
diff --git a/jstests/parallel/repl.js b/jstests/parallel/repl.js
index cb9b770..919b0d7 100644
--- a/jstests/parallel/repl.js
+++ b/jstests/parallel/repl.js
@@ -1,4 +1,4 @@
-// test all operations in parallel
+// test basic operations in parallel, with replication
baseName = "parallel_repl"
@@ -25,7 +25,7 @@ for( id = 0; id < 10; ++id ) {
g.addRemove( { _id:Random.randInt( 1000 ) } );
break;
case 2: // update
- g.addUpdate( {_id:{$lt:1000}}, {a:{$inc:5}} );
+ g.addUpdate( {_id:{$lt:1000}}, {$inc:{a:5}} );
break;
default:
assert( false, "Invalid op code" );