UNPKG

bdb-fork-grimen

Version:

Berkeley DB(5.X) bindings for node

50 lines (41 loc) 1.57 kB
// Copyright 2011 Mark Cavage <mcavage@gmail.com> All rights reserved. var assert = require('assert'); var Buffer = require('buffer').Buffer; var exec = require('child_process').exec; var fs = require('fs'); var BDB = require('..'); var helper = require('./helper'); // setup var env_location = "/tmp/" + helper.uuid(); fs.mkdirSync(env_location, 0750); process.on('uncaughtException', function(err) { console.log(err.message + ':\n' + err.stack); exec("rm -fr " + env_location, function(err, stdout, stderr) {}); }); var env = new BDB.DbEnv(); var stat = env.openSync({home:env_location}); assert.equal(0, stat.code, stat.message); var db = new BDB.Db(env); stat = db.openSync({env: env, file: helper.uuid()}); assert.equal(0, stat.code, stat.message); var key = new Buffer(helper.uuid()); var val = new Buffer(helper.uuid()); db.put({key: key, val: val}, function(res) { assert.equal(0, res.code, res.message); db.cursorGet({key: key}, function(res, objects) { if (res.code != 0 && res.code != BDB.FLAGS.DB_NOTFOUND) { assert.ok(false, 'Return code failure'); } assert.ok(objects, "no data from get"); assert.equal(1, objects.length, "wrong number of objects: " + objects.length); assert.equal(key.toString(encoding='utf8'), objects[0].key.toString(encoding='utf8'), "key mismatch"); assert.equal(val.toString(encoding='utf8'), objects[0].value.toString(encoding='utf8'), "val mismatch"); exec("rm -fr " + env_location, function(err, stdout, stderr) {}); console.log('test_cursor: PASSED'); }); });