unit_test.js 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. // Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
  2. assert = require('assert')
  3. RDB = require('./build/Release/rdb').DBWrapper
  4. exec = require('child_process').exec
  5. util = require('util')
  6. DB_NAME = '/tmp/rocksdbtest-' + process.getuid()
  7. a = RDB()
  8. assert.equal(a.open(DB_NAME, ['b']), false)
  9. exec(
  10. util.format(
  11. "node -e \"RDB = require('./build/Release/rdb').DBWrapper; \
  12. a = RDB('%s'); a.createColumnFamily('b')\"",
  13. DB_NAME
  14. ).exitCode, null
  15. )
  16. exec(
  17. util.format(
  18. "node -e \"RDB = require('./build/Release/rdb').DBWrapper; \
  19. a = RDB('%s', ['b'])\"",
  20. DB_NAME
  21. ).exitCode, null
  22. )
  23. exec('rm -rf ' + DB_NAME)
  24. a = RDB()
  25. assert.equal(a.open(DB_NAME, ['a']), false)
  26. assert(a.open(DB_NAME), true)
  27. assert(a.createColumnFamily('temp'))
  28. b = RDB()
  29. assert.equal(b.open(DB_NAME), false)
  30. exec('rm -rf ' + DB_NAME)
  31. DB_NAME += 'b'
  32. a = RDB()
  33. assert(a.open(DB_NAME))
  34. assert.equal(a.constructor.name, 'DBWrapper')
  35. assert.equal(a.createColumnFamily(), false)
  36. assert.equal(a.createColumnFamily(1), false)
  37. assert.equal(a.createColumnFamily(['']), false)
  38. assert(a.createColumnFamily('b'))
  39. assert.equal(a.createColumnFamily('b'), false)
  40. // Get and Put
  41. assert.equal(a.get(1), null)
  42. assert.equal(a.get(['a']), null)
  43. assert.equal(a.get('a', 1), null)
  44. assert.equal(a.get(1, 'a'), null)
  45. assert.equal(a.get(1, 1), null)
  46. assert.equal(a.put(1), false)
  47. assert.equal(a.put(['a']), false)
  48. assert.equal(a.put('a', 1), false)
  49. assert.equal(a.put(1, 'a'), false)
  50. assert.equal(a.put(1, 1), false)
  51. assert.equal(a.put('a', 'a', 1), false)
  52. assert.equal(a.put('a', 1, 'a'), false)
  53. assert.equal(a.put(1, 'a', 'a'), false)
  54. assert.equal(a.put('a', 1, 1), false)
  55. assert.equal(a.put(1, 'a', 1), false)
  56. assert.equal(a.put(1, 1, 'a'), false)
  57. assert.equal(a.put(1, 1, 1), false)
  58. assert.equal(a.get(), null)
  59. assert.equal(a.get('a'), null)
  60. assert.equal(a.get('a', 'c'), null)
  61. assert.equal(a.put(), false)
  62. assert.equal(a.put('a'), false)
  63. assert.equal(a.get('a', 'b', 'c'), null)
  64. assert(a.put('a', 'axe'))
  65. assert(a.put('a', 'first'))
  66. assert.equal(a.get('a'), 'first')
  67. assert.equal(a.get('a', 'b'), null)
  68. assert.equal(a.get('a', 'c'), null)
  69. assert(a.put('a', 'apple', 'b'))
  70. assert.equal(a.get('a', 'b'), 'apple')
  71. assert.equal(a.get('a'), 'first')
  72. assert(a.put('b', 'butter', 'b'), 'butter')
  73. assert(a.put('b', 'banana', 'b'))
  74. assert.equal(a.get('b', 'b'), 'banana')
  75. assert.equal(a.get('b'), null)
  76. assert.equal(a.get('b', 'c'), null)
  77. // Delete
  78. assert.equal(a.delete(1), false)
  79. assert.equal(a.delete('a', 1), false)
  80. assert.equal(a.delete(1, 'a'), false)
  81. assert.equal(a.delete(1, 1), false)
  82. assert.equal(a.delete('b'), true)
  83. assert(a.delete('a'))
  84. assert.equal(a.get('a'), null)
  85. assert.equal(a.get('a', 'b'), 'apple')
  86. assert.equal(a.delete('c', 'c'), false)
  87. assert.equal(a.delete('c', 'b'), true)
  88. assert(a.delete('b', 'b'))
  89. assert.equal(a.get('b', 'b'), null)
  90. // Dump
  91. console.log("MARKER 1")
  92. assert(a.dump())
  93. console.log("Should be no output between 'MARKER 1' and here\n")
  94. console.log('Next line should be "a" => "apple"')
  95. assert(a.dump('b'))
  96. console.log("\nMARKER 2")
  97. assert.equal(a.dump('c'), false)
  98. console.log("Should be no output between 'MARKER 2' and here\n")
  99. // WriteBatch
  100. // Clean up test database
  101. exec('rm -rf ' + DB_NAME)