summaryrefslogtreecommitdiff
path: root/jstests/core/big_object1.js
diff options
context:
space:
mode:
Diffstat (limited to 'jstests/core/big_object1.js')
-rw-r--r--jstests/core/big_object1.js55
1 files changed, 55 insertions, 0 deletions
diff --git a/jstests/core/big_object1.js b/jstests/core/big_object1.js
new file mode 100644
index 00000000000..be61dbd3041
--- /dev/null
+++ b/jstests/core/big_object1.js
@@ -0,0 +1,55 @@
+
+t = db.big_object1
+t.drop();
+
+if ( db.adminCommand( "buildinfo" ).bits == 64 ){
+
+ var large = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
+ var s = large;
+ while ( s.length < 850 * 1024 ){
+ s += large;
+ }
+ x = 0;
+ while ( true ){
+ var result;
+ n = { _id : x , a : [] }
+ for ( i=0; i<14+x; i++ )
+ n.a.push( s )
+ try {
+ result = t.insert( n )
+ o = n
+ }
+ catch ( e ){
+ break;
+ }
+
+ if ( result.hasWriteErrors() )
+ break;
+ x++;
+ }
+
+ printjson( t.stats(1024*1024) )
+
+ assert.lt( 15 * 1024 * 1024 , Object.bsonsize( o ) , "A1" )
+ assert.gt( 17 * 1024 * 1024 , Object.bsonsize( o ) , "A2" )
+
+ assert.eq( x , t.count() , "A3" )
+
+ for ( i=0; i<x; i++ ){
+ o = t.findOne( { _id : i } )
+ try {
+ // test large mongo -> js conversion
+ var a = o.a;
+ } catch(e) {
+ assert(false, "Caught exception trying to insert during iteration " + i + ": " + e);
+ }
+ assert( o , "B" + i );
+ }
+
+ t.drop()
+}
+else {
+ print( "skipping big_object1 b/c not 64-bit" )
+}
+
+print("SUCCESS");