This commit is contained in:
Jaremy Creechley 2023-08-28 21:56:29 -07:00 committed by Dmitriy Ryajov
parent 51683be0e5
commit 03830cef8f
No known key found for this signature in database
GPG Key ID: DA8C680CE7C657A4
3 changed files with 14 additions and 55 deletions

View File

@ -17,12 +17,11 @@ import ./fsds
import pretty
export key, query, ThreadBackend
export key, query
push: {.upraises: [].}
type
SharedDatastore* = ref object of Datastore
# stores*: Table[Key, SharedDatastore]
tds: ThreadDatastorePtr

View File

@ -31,38 +31,12 @@ type
TResult*[T] = SharedPtr[ThreadResult[T]]
ThreadBackendKind* {.pure.} = enum
NoBackend
TestBackend
FSBackend
SQliteBackend
ThreadBackend* = object
case kind*: ThreadBackendKind
of FSBackend:
root*: StringBuffer
depth*: int
caseSensitive*: bool
ignoreProtected*: bool
of SQliteBackend:
discard
of TestBackend:
count*: int
of NoBackend:
discard
ThreadDatastore* = object
tp*: Taskpool
backend*: ThreadBackendKind
ds*: Datastore
ThreadDatastorePtr* = SharedPtr[ThreadDatastore]
Test* = object
count*: ThreadBackendKind
TestPtr* = SharedPtr[Test]
proc newThreadResult*[T](
tp: typedesc[T]
): Result[TResult[T], ref CatchableError] =
@ -76,7 +50,6 @@ proc newThreadResult*[T](
proc getTask*(
ret: TResult[DataBuffer],
backend: ThreadBackendKind,
key: KeyBuffer,
) =
# return ok(DataBuffer.new())
@ -98,13 +71,12 @@ proc get*(
let bkey = StringBuffer.new(key.id())
print "bkey: ", bkey
tds[].tp.spawn getTask(ret, tds[].backend, bkey)
tds[].tp.spawn getTask(ret, bkey)
import os
proc putTask*(
ret: TResult[void],
backend: ThreadBackendKind,
key: KeyBuffer,
data: DataBuffer,
) =
@ -127,4 +99,4 @@ proc put*(
print "bkey: ", bkey
print "bval: ", bval
tds[].tp.spawn putTask(ret, tds[].backend, bkey, bval)
tds[].tp.spawn putTask(ret, bkey, bval)

View File

@ -22,9 +22,6 @@ suite "Test Basic SharedDatastore":
var sds: SharedDatastore
let backend = ThreadBackend(
kind: TestBackend,
)
let mem = MemoryDatastore.new()
let res = await newSharedDataStore(mem)
check res.isOk()
@ -50,30 +47,21 @@ suite "Test Basic SharedDatastore":
res3.cancel()
# print "res3: ", res3
# suite "Test Basic FSDatastore":
# let
# path = currentSourcePath() # get this file's name
# basePath = "tests_data"
# basePathAbs = path.parentDir / basePath
# key = Key.init("/a/b").tryGet()
# bytes = "some bytes".toBytes
# otherBytes = "some other bytes".toBytes
suite "Test Basic FSDatastore":
# var
# fsStore: FSDatastore
var
memStore: MemoryDatastore
key = Key.init("/a/b").tryGet()
bytes = "some bytes".toBytes
otherBytes = "some other bytes".toBytes
# setupAll:
# removeDir(basePathAbs)
# require(not dirExists(basePathAbs))
# createDir(basePathAbs)
setupAll:
memStore = MemoryDatastore.new()
# fsStore = FSDatastore.new(root = basePathAbs, depth = 3).tryGet()
teardownAll:
(await memStore.close()).get()
# teardownAll:
# removeDir(basePathAbs)
# require(not dirExists(basePathAbs))
# basicStoreTests(fsStore, key, bytes, otherBytes)
basicStoreTests(memStore, key, bytes, otherBytes)
# suite "Test Misc FSDatastore":
# let