mirror of
https://github.com/logos-storage/nim-datastore.git
synced 2026-01-02 13:43:11 +00:00
* set up leveldb-datastore * Adds test for leveldb * pulls in nim-leveldb by url and hash * Fixes basic tests for leveldbds * Implements query iterator * Fixes include path for defaultImpl * Review comments by Tomasz
64 lines
1.3 KiB
Nim
64 lines
1.3 KiB
Nim
import std/options
|
|
import std/os
|
|
import std/sequtils
|
|
from std/algorithm import sort, reversed
|
|
|
|
import pkg/asynctest
|
|
import pkg/chronos
|
|
import pkg/stew/results
|
|
import pkg/stew/byteutils
|
|
|
|
import pkg/datastore
|
|
import pkg/datastore/key
|
|
import pkg/datastore/leveldb/leveldbds
|
|
|
|
import ../dscommontests
|
|
import ../modifycommontests
|
|
import ../querycommontests
|
|
import ../typeddscommontests
|
|
|
|
suite "Test Basic LevelDbDatastore":
|
|
let
|
|
tempDir = getTempDir() / "testleveldbds"
|
|
ds = LevelDbDatastore.new(tempDir).tryGet()
|
|
key = Key.init("a:b/c/d:e").tryGet()
|
|
bytes = "some bytes".toBytes
|
|
otherBytes = "some other bytes".toBytes
|
|
|
|
setupAll:
|
|
createdir(tempDir)
|
|
|
|
teardownAll:
|
|
(await ds.close()).tryGet()
|
|
removeDir(tempDir)
|
|
|
|
basicStoreTests(ds, key, bytes, otherBytes)
|
|
modifyTests(ds, key)
|
|
typedDsTests(ds, key)
|
|
|
|
suite "Test LevelDB Query":
|
|
let tempDir = getTempDir() / "testleveldbds"
|
|
var ds: LevelDbDatastore
|
|
|
|
setup:
|
|
createdir(tempDir)
|
|
ds = LevelDbDatastore.new(tempDir).tryGet()
|
|
|
|
teardown:
|
|
(await ds.close()).tryGet
|
|
removeDir(tempDir)
|
|
|
|
queryTests(ds,
|
|
testLimitsAndOffsets = true,
|
|
testSortOrder = false
|
|
)
|
|
|
|
suite "Test LevelDB Typed Query":
|
|
let
|
|
ds = SQLiteDatastore.new(Memory).tryGet()
|
|
|
|
teardownAll:
|
|
(await ds.close()).tryGet
|
|
|
|
typedDsQueryTests(ds)
|