diff options
author | Matt Dannenberg <matt.dannenberg@10gen.com> | 2013-09-26 15:13:26 -0400 |
---|---|---|
committer | Matt Dannenberg <matt.dannenberg@10gen.com> | 2013-10-11 18:38:46 -0400 |
commit | 6ba8fc2f0ee77cffd2270556afc5984e44c1b243 (patch) | |
tree | b167614f0539a5fee3398e6bd6b55d7665a183fa /jstests/replsets/pipelineout.js | |
parent | 3b2050ef315f39314909509dcfa9676a971ff988 (diff) | |
download | mongo-6ba8fc2f0ee77cffd2270556afc5984e44c1b243.tar.gz |
SERVER-3253 expand $out testing
Diffstat (limited to 'jstests/replsets/pipelineout.js')
-rw-r--r-- | jstests/replsets/pipelineout.js | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/jstests/replsets/pipelineout.js b/jstests/replsets/pipelineout.js new file mode 100644 index 00000000000..037cf718bd3 --- /dev/null +++ b/jstests/replsets/pipelineout.js @@ -0,0 +1,35 @@ +// test $out in a replicated environment +var name = "pipelineout"; +var replTest = new ReplSetTest( {name: name, nodes: 2} ); +var nodes = replTest.nodeList(); + +replTest.startSet(); +replTest.initiate({"_id" : name, + "members" : [ + {"_id" : 0, "host" : nodes[0], "priority" : 5}, + {"_id" : 1, "host" : nodes[1]} + ]}); + +var primary = replTest.getMaster().getDB(name); +var secondary = replTest.liveNodes.slaves[0].getDB(name); + +// populate the collection +for (i=0; i<5; i++) { + primary.in.insert({x:i}); +} +replTest.awaitReplication(); + +// make sure $out cannot be run on a secondary +assert.throws(function() { + secondary.in.aggregate({$out: "out"}).itcount; + }); +// even if slaveOk +secondary.setSlaveOk(); +assert.throws(function() { + secondary.in.aggregate({$out: "out"}).itcount; + }); + +// run one and check for proper replication +primary.in.aggregate({$out: "out"}).itcount; +replTest.awaitReplication(); +assert.eq(primary.out.find().toArray(), secondary.out.find().toArray()); |