]> git.proxmox.com Git - ceph.git/blob - ceph/src/rocksdb/tools/rdb/unit_test.js
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / rocksdb / tools / rdb / unit_test.js
1 assert = require('assert')
2 RDB = require('./build/Release/rdb').DBWrapper
3 exec = require('child_process').exec
4 util = require('util')
5
6 DB_NAME = '/tmp/rocksdbtest-' + process.getuid()
7
8 a = RDB()
9 assert.equal(a.open(DB_NAME, ['b']), false)
10
11 exec(
12 util.format(
13 "node -e \"RDB = require('./build/Release/rdb').DBWrapper; \
14 a = RDB('%s'); a.createColumnFamily('b')\"",
15 DB_NAME
16 ).exitCode, null
17 )
18
19
20 exec(
21 util.format(
22 "node -e \"RDB = require('./build/Release/rdb').DBWrapper; \
23 a = RDB('%s', ['b'])\"",
24 DB_NAME
25 ).exitCode, null
26 )
27
28 exec('rm -rf ' + DB_NAME)
29
30 a = RDB()
31 assert.equal(a.open(DB_NAME, ['a']), false)
32 assert(a.open(DB_NAME), true)
33 assert(a.createColumnFamily('temp'))
34
35 b = RDB()
36 assert.equal(b.open(DB_NAME), false)
37
38 exec('rm -rf ' + DB_NAME)
39
40 DB_NAME += 'b'
41
42 a = RDB()
43 assert(a.open(DB_NAME))
44 assert.equal(a.constructor.name, 'DBWrapper')
45 assert.equal(a.createColumnFamily(), false)
46 assert.equal(a.createColumnFamily(1), false)
47 assert.equal(a.createColumnFamily(['']), false)
48 assert(a.createColumnFamily('b'))
49 assert.equal(a.createColumnFamily('b'), false)
50
51 // Get and Put
52 assert.equal(a.get(1), null)
53 assert.equal(a.get(['a']), null)
54 assert.equal(a.get('a', 1), null)
55 assert.equal(a.get(1, 'a'), null)
56 assert.equal(a.get(1, 1), null)
57
58 assert.equal(a.put(1), false)
59 assert.equal(a.put(['a']), false)
60 assert.equal(a.put('a', 1), false)
61 assert.equal(a.put(1, 'a'), false)
62 assert.equal(a.put(1, 1), false)
63 assert.equal(a.put('a', 'a', 1), false)
64 assert.equal(a.put('a', 1, 'a'), false)
65 assert.equal(a.put(1, 'a', 'a'), false)
66 assert.equal(a.put('a', 1, 1), false)
67 assert.equal(a.put(1, 'a', 1), false)
68 assert.equal(a.put(1, 1, 'a'), false)
69 assert.equal(a.put(1, 1, 1), false)
70
71
72 assert.equal(a.get(), null)
73 assert.equal(a.get('a'), null)
74 assert.equal(a.get('a', 'c'), null)
75 assert.equal(a.put(), false)
76 assert.equal(a.put('a'), false)
77 assert.equal(a.get('a', 'b', 'c'), null)
78
79 assert(a.put('a', 'axe'))
80 assert(a.put('a', 'first'))
81 assert.equal(a.get('a'), 'first')
82 assert.equal(a.get('a', 'b'), null)
83 assert.equal(a.get('a', 'c'), null)
84
85 assert(a.put('a', 'apple', 'b'))
86 assert.equal(a.get('a', 'b'), 'apple')
87 assert.equal(a.get('a'), 'first')
88 assert(a.put('b', 'butter', 'b'), 'butter')
89 assert(a.put('b', 'banana', 'b'))
90 assert.equal(a.get('b', 'b'), 'banana')
91 assert.equal(a.get('b'), null)
92 assert.equal(a.get('b', 'c'), null)
93
94 // Delete
95 assert.equal(a.delete(1), false)
96 assert.equal(a.delete('a', 1), false)
97 assert.equal(a.delete(1, 'a'), false)
98 assert.equal(a.delete(1, 1), false)
99
100 assert.equal(a.delete('b'), true)
101 assert(a.delete('a'))
102 assert.equal(a.get('a'), null)
103 assert.equal(a.get('a', 'b'), 'apple')
104 assert.equal(a.delete('c', 'c'), false)
105 assert.equal(a.delete('c', 'b'), true)
106 assert(a.delete('b', 'b'))
107 assert.equal(a.get('b', 'b'), null)
108
109 // Dump
110 console.log("MARKER 1")
111 assert(a.dump())
112 console.log("Should be no output between 'MARKER 1' and here\n")
113 console.log('Next line should be "a" => "apple"')
114 assert(a.dump('b'))
115
116 console.log("\nMARKER 2")
117 assert.equal(a.dump('c'), false)
118 console.log("Should be no output between 'MARKER 2' and here\n")
119
120 // WriteBatch
121
122
123 // Clean up test database
124 exec('rm -rf ' + DB_NAME)