fork of https://github.com/oxigraph/rocksdb and https://github.com/facebook/rocksdb for nextgraph and oxigraph
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
124 lines
3.1 KiB
124 lines
3.1 KiB
assert = require('assert')
|
|
RDB = require('./build/Release/rdb').DBWrapper
|
|
exec = require('child_process').exec
|
|
util = require('util')
|
|
|
|
DB_NAME = '/tmp/rocksdbtest-' + process.getuid()
|
|
|
|
a = RDB()
|
|
assert.equal(a.open(DB_NAME, ['b']), false)
|
|
|
|
exec(
|
|
util.format(
|
|
"node -e \"RDB = require('./build/Release/rdb').DBWrapper; \
|
|
a = RDB('%s'); a.createColumnFamily('b')\"",
|
|
DB_NAME
|
|
).exitCode, null
|
|
)
|
|
|
|
|
|
exec(
|
|
util.format(
|
|
"node -e \"RDB = require('./build/Release/rdb').DBWrapper; \
|
|
a = RDB('%s', ['b'])\"",
|
|
DB_NAME
|
|
).exitCode, null
|
|
)
|
|
|
|
exec('rm -rf ' + DB_NAME)
|
|
|
|
a = RDB()
|
|
assert.equal(a.open(DB_NAME, ['a']), false)
|
|
assert(a.open(DB_NAME), true)
|
|
assert(a.createColumnFamily('temp'))
|
|
|
|
b = RDB()
|
|
assert.equal(b.open(DB_NAME), false)
|
|
|
|
exec('rm -rf ' + DB_NAME)
|
|
|
|
DB_NAME += 'b'
|
|
|
|
a = RDB()
|
|
assert(a.open(DB_NAME))
|
|
assert.equal(a.constructor.name, 'DBWrapper')
|
|
assert.equal(a.createColumnFamily(), false)
|
|
assert.equal(a.createColumnFamily(1), false)
|
|
assert.equal(a.createColumnFamily(['']), false)
|
|
assert(a.createColumnFamily('b'))
|
|
assert.equal(a.createColumnFamily('b'), false)
|
|
|
|
// Get and Put
|
|
assert.equal(a.get(1), null)
|
|
assert.equal(a.get(['a']), null)
|
|
assert.equal(a.get('a', 1), null)
|
|
assert.equal(a.get(1, 'a'), null)
|
|
assert.equal(a.get(1, 1), null)
|
|
|
|
assert.equal(a.put(1), false)
|
|
assert.equal(a.put(['a']), false)
|
|
assert.equal(a.put('a', 1), false)
|
|
assert.equal(a.put(1, 'a'), false)
|
|
assert.equal(a.put(1, 1), false)
|
|
assert.equal(a.put('a', 'a', 1), false)
|
|
assert.equal(a.put('a', 1, 'a'), false)
|
|
assert.equal(a.put(1, 'a', 'a'), false)
|
|
assert.equal(a.put('a', 1, 1), false)
|
|
assert.equal(a.put(1, 'a', 1), false)
|
|
assert.equal(a.put(1, 1, 'a'), false)
|
|
assert.equal(a.put(1, 1, 1), false)
|
|
|
|
|
|
assert.equal(a.get(), null)
|
|
assert.equal(a.get('a'), null)
|
|
assert.equal(a.get('a', 'c'), null)
|
|
assert.equal(a.put(), false)
|
|
assert.equal(a.put('a'), false)
|
|
assert.equal(a.get('a', 'b', 'c'), null)
|
|
|
|
assert(a.put('a', 'axe'))
|
|
assert(a.put('a', 'first'))
|
|
assert.equal(a.get('a'), 'first')
|
|
assert.equal(a.get('a', 'b'), null)
|
|
assert.equal(a.get('a', 'c'), null)
|
|
|
|
assert(a.put('a', 'apple', 'b'))
|
|
assert.equal(a.get('a', 'b'), 'apple')
|
|
assert.equal(a.get('a'), 'first')
|
|
assert(a.put('b', 'butter', 'b'), 'butter')
|
|
assert(a.put('b', 'banana', 'b'))
|
|
assert.equal(a.get('b', 'b'), 'banana')
|
|
assert.equal(a.get('b'), null)
|
|
assert.equal(a.get('b', 'c'), null)
|
|
|
|
// Delete
|
|
assert.equal(a.delete(1), false)
|
|
assert.equal(a.delete('a', 1), false)
|
|
assert.equal(a.delete(1, 'a'), false)
|
|
assert.equal(a.delete(1, 1), false)
|
|
|
|
assert.equal(a.delete('b'), true)
|
|
assert(a.delete('a'))
|
|
assert.equal(a.get('a'), null)
|
|
assert.equal(a.get('a', 'b'), 'apple')
|
|
assert.equal(a.delete('c', 'c'), false)
|
|
assert.equal(a.delete('c', 'b'), true)
|
|
assert(a.delete('b', 'b'))
|
|
assert.equal(a.get('b', 'b'), null)
|
|
|
|
// Dump
|
|
console.log("MARKER 1")
|
|
assert(a.dump())
|
|
console.log("Should be no output between 'MARKER 1' and here\n")
|
|
console.log('Next line should be "a" => "apple"')
|
|
assert(a.dump('b'))
|
|
|
|
console.log("\nMARKER 2")
|
|
assert.equal(a.dump('c'), false)
|
|
console.log("Should be no output between 'MARKER 2' and here\n")
|
|
|
|
// WriteBatch
|
|
|
|
|
|
// Clean up test database
|
|
exec('rm -rf ' + DB_NAME)
|
|
|