Skip to content

Commit

Permalink
Reworking code to allow for testing with both the pure js bson parser…
Browse files Browse the repository at this point in the history
… and the native bson parser
  • Loading branch information
christkv committed May 22, 2011
1 parent 4db0fdc commit 602a1f4
Show file tree
Hide file tree
Showing 22 changed files with 370 additions and 212 deletions.
22 changes: 16 additions & 6 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@

NODE = node
NODEUNIT = nodeunit
name = all

total: build_native
Expand All @@ -10,14 +11,23 @@ build_native:
clean_native:
$(MAKE) -C ./external-libs/bson clean

test: build_native test_integration_pure test_integration_native
@$(NODE) spec/spec.node.js
test: build_native test_nodeunit_pure test_nodeunit_native

test_integration_pure:
@$(NODE) integration/integration_tests.js pure $(name)
test_nodeunit_pure:
@echo "\n == Execute Test Suite using Pure JS BSON Parser == "
@$(NODEUNIT) test/ test/gridstore

test_integration_native:
@$(NODE) integration/integration_tests.js native $(name)
test_nodeunit_replicaset_pure:
@echo "\n == Execute Test Suite using Pure JS BSON Parser == "
@$(NODEUNIT) test/replicaset

test_nodeunit_native:
@echo "\n == Execute Test Suite using Native BSON Parser == "
@TEST_NATIVE=TRUE $(NODEUNIT) test/ test/gridstore

test_nodeunit_replicaset_native:
@echo "\n == Execute Test Suite using Native BSON Parser == "
@TEST_NATIVE=TRUE $(NODEUNIT) test/replicaset

clean:
rm ./external-libs/bson/bson.node
Expand Down
2 changes: 1 addition & 1 deletion external-libs/bson/test_full_bson.js
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,7 @@ var deserialized_data = BSON.deserialize(serialized_data);
assert.equal(doc.doc.value(), deserialized_data.doc.value())

// Should Correctly Serialize and Deserialize a big Binary object
var data = fs.readFileSync("../../integration/test_gs_weird_bug.png", 'binary');
var data = fs.readFileSync("../../test/gridstore/test_gs_weird_bug.png", 'binary');
var bin = new Binary()
bin.write(data)
var doc = {doc: bin}
Expand Down
31 changes: 20 additions & 11 deletions test/admin_test.js
Original file line number Diff line number Diff line change
@@ -1,22 +1,31 @@
var mongodb = process.env['TEST_NATIVE'] != null ? require('../lib/mongodb').native() : require('../lib/mongodb').pure();

var testCase = require('nodeunit').testCase,
debug = require('util').debug
inspect = require('util').inspect,
nodeunit = require('nodeunit'),
Db = require('../lib/mongodb').Db,
Server = require('../lib/mongodb').Server;
Db = mongodb.Db,
Cursor = mongodb.Cursor,
Collection = mongodb.Collection,
Server = mongodb.Server;

var MONGODB = 'integration_tests';
var client = new Db(MONGODB, new Server("127.0.0.1", 27017, {auto_reconnect: false}));
var client = new Db(MONGODB, new Server("127.0.0.1", 27017, {auto_reconnect: false, native_parser: (process.env['TEST_NATIVE'] != null) ? true : false}));

// Define the tests, we want them to run as a nested test so we only clean up the
// db connection once
var tests = testCase({
setUp: function(callback) {
client.open(function(err, db_p) {
// Save reference to db
client = db_p;
// Start tests
callback();
if(numberOfTestsRun == 0) {
client.dropDatabase(function(err, done) {
client.close();
callback();
});
} else {
// Start tests
callback();
}
});
},

Expand All @@ -35,7 +44,7 @@ var tests = testCase({
},

shouldCorrectlyCallValidateCollection : function(test) {
var fs_client = new Db(MONGODB, new Server("127.0.0.1", 27017, {auto_reconnect: false}));
var fs_client = new Db(MONGODB, new Server("127.0.0.1", 27017, {auto_reconnect: false, native_parser: (process.env['TEST_NATIVE'] != null) ? true : false}));
fs_client.bson_deserializer = client.bson_deserializer;
fs_client.bson_serializer = client.bson_serializer;
fs_client.pkFactory = client.pkFactory;
Expand All @@ -60,7 +69,7 @@ var tests = testCase({
},

shouldCorrectlySetDefaultProfilingLevel : function(test) {
var fs_client = new Db(MONGODB, new Server("127.0.0.1", 27017, {auto_reconnect: false}));
var fs_client = new Db(MONGODB, new Server("127.0.0.1", 27017, {auto_reconnect: false, native_parser: (process.env['TEST_NATIVE'] != null) ? true : false}));
fs_client.bson_deserializer = client.bson_deserializer;
fs_client.bson_serializer = client.bson_serializer;
fs_client.pkFactory = client.pkFactory;
Expand All @@ -84,7 +93,7 @@ var tests = testCase({
},

shouldCorrectlyChangeProfilingLevel : function(test) {
var fs_client = new Db(MONGODB, new Server("127.0.0.1", 27017, {auto_reconnect: false}));
var fs_client = new Db(MONGODB, new Server("127.0.0.1", 27017, {auto_reconnect: false, native_parser: (process.env['TEST_NATIVE'] != null) ? true : false}));
fs_client.bson_deserializer = client.bson_deserializer;
fs_client.bson_serializer = client.bson_serializer;
fs_client.pkFactory = client.pkFactory;
Expand Down Expand Up @@ -127,7 +136,7 @@ var tests = testCase({
},

shouldCorrectlySetAndExtractProfilingInfo : function(test) {
var fs_client = new Db(MONGODB, new Server("127.0.0.1", 27017, {auto_reconnect: false}));
var fs_client = new Db(MONGODB, new Server("127.0.0.1", 27017, {auto_reconnect: false, native_parser: (process.env['TEST_NATIVE'] != null) ? true : false}));
fs_client.bson_deserializer = client.bson_deserializer;
fs_client.bson_serializer = client.bson_serializer;
fs_client.pkFactory = client.pkFactory;
Expand Down
26 changes: 18 additions & 8 deletions test/authentication_test.js
Original file line number Diff line number Diff line change
@@ -1,21 +1,31 @@
var mongodb = process.env['TEST_NATIVE'] != null ? require('../lib/mongodb').native() : require('../lib/mongodb').pure();

var testCase = require('nodeunit').testCase,
debug = require('util').debug
inspect = require('util').inspect,
nodeunit = require('nodeunit'),
Db = require('../lib/mongodb').Db,
Server = require('../lib/mongodb').Server;
Db = mongodb.Db,
Cursor = mongodb.Cursor,
Collection = mongodb.Collection,
Server = mongodb.Server;

var client = new Db('integration_tests', new Server("127.0.0.1", 27017, {auto_reconnect: false}));
var MONGODB = 'integration_tests';
var client = new Db(MONGODB, new Server("127.0.0.1", 27017, {auto_reconnect: false, native_parser: (process.env['TEST_NATIVE'] != null) ? true : false}));

// Define the tests, we want them to run as a nested test so we only clean up the
// db connection once
var tests = testCase({
setUp: function(callback) {
client.open(function(err, db_p) {
// Save reference to db
client = db_p;
// Start tests
callback();
if(numberOfTestsRun == 0) {
client.dropDatabase(function(err, done) {
client.close();
callback();
});
} else {
// Start tests
callback();
}
});
},

Expand Down Expand Up @@ -55,7 +65,7 @@ var tests = testCase({
var user_name = 'spongebob2';
var password = 'password';

var p_client = new Db('integration_tests', new Server("127.0.0.1", 27017, {auto_reconnect: true}), {});
var p_client = new Db(MONGODB, new Server("127.0.0.1", 27017, {auto_reconnect: true, native_parser: (process.env['TEST_NATIVE'] != null) ? true : false}), {});
p_client.bson_deserializer = client.bson_deserializer;
p_client.bson_serializer = client.bson_serializer;
p_client.pkFactory = client.pkFactory;
Expand Down
31 changes: 19 additions & 12 deletions test/collection_test.js
Original file line number Diff line number Diff line change
@@ -1,24 +1,31 @@
var mongodb = process.env['TEST_NATIVE'] != null ? require('../lib/mongodb').native() : require('../lib/mongodb').pure();

var testCase = require('nodeunit').testCase,
debug = require('util').debug
inspect = require('util').inspect,
nodeunit = require('nodeunit'),
Db = require('../lib/mongodb').Db,
Cursor = require('../lib/mongodb').Cursor,
Collection = require('../lib/mongodb').Collection,
Server = require('../lib/mongodb').Server;
Db = mongodb.Db,
Cursor = mongodb.Cursor,
Collection = mongodb.Collection,
Server = mongodb.Server;

var MONGODB = 'integration_tests';
var client = new Db(MONGODB, new Server("127.0.0.1", 27017, {auto_reconnect: false}));
var client = new Db(MONGODB, new Server("127.0.0.1", 27017, {auto_reconnect: false, native_parser: (process.env['TEST_NATIVE'] != null) ? true : false}));

// Define the tests, we want them to run as a nested test so we only clean up the
// db connection once
var tests = testCase({
setUp: function(callback) {
client.open(function(err, db_p) {
// Save reference to db
client = db_p;
// Start tests
callback();
if(numberOfTestsRun == 0) {
client.dropDatabase(function(err, done) {
client.close();
callback();
});
} else {
// Start tests
callback();
}
});
},

Expand Down Expand Up @@ -209,7 +216,7 @@ var tests = testCase({
},

shouldEnsureStrictAccessCollection : function(test) {
var error_client = new Db(MONGODB, new Server("127.0.0.1", 27017, {auto_reconnect: false}), {strict:true});
var error_client = new Db(MONGODB, new Server("127.0.0.1", 27017, {auto_reconnect: false, native_parser: (process.env['TEST_NATIVE'] != null) ? true : false}), {strict:true});
error_client.bson_deserializer = client.bson_deserializer;
error_client.bson_serializer = client.bson_serializer;
error_client.pkFactory = client.pkFactory;
Expand All @@ -233,7 +240,7 @@ var tests = testCase({
},

shouldPerformStrictCreateCollection : function(test) {
var error_client = new Db(MONGODB, new Server("127.0.0.1", 27017, {auto_reconnect: false}), {strict:true});
var error_client = new Db(MONGODB, new Server("127.0.0.1", 27017, {auto_reconnect: false, native_parser: (process.env['TEST_NATIVE'] != null) ? true : false}), {strict:true});
error_client.bson_deserializer = client.bson_deserializer;
error_client.bson_serializer = client.bson_serializer;
error_client.pkFactory = client.pkFactory;
Expand Down Expand Up @@ -530,7 +537,7 @@ var tests = testCase({
},

shouldCorrectlySaveDocumentWithNestedArray : function(test) {
var db = new Db(MONGODB, new Server('localhost', 27017, {auto_reconnect: true}));
var db = new Db(MONGODB, new Server('localhost', 27017, {auto_reconnect: true, native_parser: (process.env['TEST_NATIVE'] != null) ? true : false}));
db.bson_deserializer = client.bson_deserializer;
db.bson_serializer = client.bson_serializer;
db.pkFactory = client.pkFactory;
Expand Down
13 changes: 9 additions & 4 deletions test/cursor_test.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,15 @@ var client = new Db(MONGODB, new Server("127.0.0.1", 27017, {auto_reconnect: fal
var tests = testCase({
setUp: function(callback) {
client.open(function(err, db_p) {
// Save reference to db
client = db_p;
// Start tests
callback();
if(numberOfTestsRun == 0) {
client.dropDatabase(function(err, done) {
client.close();
callback();
});
} else {
// Start tests
callback();
}
});
},

Expand Down
26 changes: 17 additions & 9 deletions test/custom_pk_test.js
Original file line number Diff line number Diff line change
@@ -1,23 +1,31 @@
var mongodb = process.env['TEST_NATIVE'] != null ? require('../lib/mongodb').native() : require('../lib/mongodb').pure();

var testCase = require('nodeunit').testCase,
debug = require('util').debug
inspect = require('util').inspect,
nodeunit = require('nodeunit'),
Db = require('../lib/mongodb').Db,
Server = require('../lib/mongodb').Server,
ServerPair = require('../lib/mongodb').ServerPair;
Db = mongodb.Db,
Cursor = mongodb.Cursor,
Collection = mongodb.Collection,
Server = mongodb.Server;

var MONGODB = 'integration_tests';
var client = new Db(MONGODB, new Server("127.0.0.1", 27017, {auto_reconnect: false}));
var client = new Db(MONGODB, new Server("127.0.0.1", 27017, {auto_reconnect: false, native_parser: (process.env['TEST_NATIVE'] != null) ? true : false}));

// Define the tests, we want them to run as a nested test so we only clean up the
// db connection once
var tests = testCase({
setUp: function(callback) {
client.open(function(err, db_p) {
// Save reference to db
client = db_p;
// Start tests
callback();
if(numberOfTestsRun == 0) {
client.dropDatabase(function(err, done) {
client.close();
callback();
});
} else {
// Start tests
callback();
}
});
},

Expand All @@ -43,7 +51,7 @@ var tests = testCase({
return new client.bson_serializer.ObjectID("aaaaaaaaaaaa");
}

var p_client = new Db(MONGODB, new Server("127.0.0.1", 27017, {}), {'pk':CustomPKFactory});
var p_client = new Db(MONGODB, new Server("127.0.0.1", 27017, {native_parser: (process.env['TEST_NATIVE'] != null) ? true : false}), {'pk':CustomPKFactory});
p_client.bson_deserializer = client.bson_deserializer;
p_client.bson_serializer = client.bson_serializer;

Expand Down
33 changes: 21 additions & 12 deletions test/db_test.js
Original file line number Diff line number Diff line change
@@ -1,23 +1,32 @@
var mongodb = process.env['TEST_NATIVE'] != null ? require('../lib/mongodb').native() : require('../lib/mongodb').pure();

var testCase = require('nodeunit').testCase,
debug = require('util').debug
inspect = require('util').inspect,
nodeunit = require('nodeunit'),
Db = require('../lib/mongodb').Db,
Server = require('../lib/mongodb').Server,
ServerPair = require('../lib/mongodb').ServerPair;
Db = mongodb.Db,
Cursor = mongodb.Cursor,
Collection = mongodb.Collection,
ServerPair = mongodb.ServerPair,
Server = mongodb.Server;

var MONGODB = 'integration_tests';
var client = new Db(MONGODB, new Server("127.0.0.1", 27017, {auto_reconnect: false}));
var client = new Db(MONGODB, new Server("127.0.0.1", 27017, {auto_reconnect: false, native_parser: (process.env['TEST_NATIVE'] != null) ? true : false}));

// Define the tests, we want them to run as a nested test so we only clean up the
// db connection once
var tests = testCase({
setUp: function(callback) {
client.open(function(err, db_p) {
// Save reference to db
client = db_p;
// Start tests
callback();
if(numberOfTestsRun == 0) {
client.dropDatabase(function(err, done) {
client.close();
callback();
});
} else {
// Start tests
callback();
}
});
},

Expand All @@ -37,7 +46,7 @@ var tests = testCase({

// Test the auto connect functionality of the db
shouldCorrectlyPerformAutomaticConnect : function(test) {
var automatic_connect_client = new Db(MONGODB, new Server("127.0.0.1", 27017, {auto_reconnect: true}), {});
var automatic_connect_client = new Db(MONGODB, new Server("127.0.0.1", 27017, {auto_reconnect: true, native_parser: (process.env['TEST_NATIVE'] != null) ? true : false}), {});
automatic_connect_client.bson_deserializer = client.bson_deserializer;
automatic_connect_client.bson_serializer = client.bson_serializer;
automatic_connect_client.pkFactory = client.pkFactory;
Expand Down Expand Up @@ -73,7 +82,7 @@ var tests = testCase({
shouldCorrectlyHandleConnectionErrors : function(test) {
// Test error handling for single server connection
var serverConfig = new Server("127.0.0.1", 21017, {auto_reconnect: true});
var error_client = new Db(MONGODB, serverConfig, {});
var error_client = new Db(MONGODB, serverConfig, {native_parser: (process.env['TEST_NATIVE'] != null) ? true : false});

error_client.on("error", function(err) {});
error_client.on("close", function(connection) {
Expand All @@ -88,7 +97,7 @@ var tests = testCase({
var serverConfig = new Server("127.0.0.1", 20017, {});
var normalServer = new Server("127.0.0.1", 27017);
var serverPairConfig = new ServerPair(normalServer, serverConfig);
var error_client_pair = new Db(MONGODB, serverPairConfig, {});
var error_client_pair = new Db(MONGODB, serverPairConfig, {native_parser: (process.env['TEST_NATIVE'] != null) ? true : false});

var closeListener = function(connection) {
test.ok(typeof connection == typeof serverConfig);
Expand Down Expand Up @@ -269,7 +278,7 @@ var tests = testCase({
},

shouldCorrectlyHandleFailedConnection : function(test) {
var fs_client = new Db(MONGODB, new Server("127.0.0.1", 27117, {auto_reconnect: false}));
var fs_client = new Db(MONGODB, new Server("127.0.0.1", 27117, {auto_reconnect: false, native_parser: (process.env['TEST_NATIVE'] != null) ? true : false}));
fs_client.bson_deserializer = client.bson_deserializer;
fs_client.bson_serializer = client.bson_serializer;
fs_client.pkFactory = client.pkFactory;
Expand Down
Loading

0 comments on commit 602a1f4

Please sign in to comment.