fix databuffer tests

This commit is contained in:
Dmitriy Ryajov 2023-09-14 18:42:58 -06:00
parent 600dca6148
commit 783ecc3ab3
No known key found for this signature in database
GPG Key ID: DA8C680CE7C657A4

View File

@ -7,8 +7,9 @@ import pkg/stew/byteutils
import pkg/unittest2 import pkg/unittest2
import pkg/questionable import pkg/questionable
import pkg/questionable/results import pkg/questionable/results
import pkg/datastore/key
include ../../datastore/databuffer include ../../datastore/threads/databuffer
var var
shareVal: DataBuffer shareVal: DataBuffer
@ -44,7 +45,7 @@ proc thread2(val: int) {.thread.} =
echo "thread2: receiving " echo "thread2: receiving "
let msg: DataBuffer = shareVal let msg: DataBuffer = shareVal
echo "thread2: received: ", msg echo "thread2: received: ", msg
check msg.toSeq(char) == @"hello world" check string.fromBytes(msg.toSeq()) == "hello world"
# os.sleep(100) # os.sleep(100)
proc runBasicTest() = proc runBasicTest() =
@ -60,13 +61,19 @@ proc runBasicTest() =
joinThreads(threads) joinThreads(threads)
suite "Share buffer test": suite "Share buffer test":
var
k1: Key
k2: Key
a: DataBuffer
b: DataBuffer
c: DataBuffer
setup: setup:
let k1 {.used.} = Key.init("/a/b").get() k1 = Key.init("/a/b").tryGet()
let k2 {.used.} = Key.init("/a").get() k2 = Key.init("/a").tryGet()
let a {.used.} = KeyBuffer.new(k1) a = DataBuffer.new($k1)
let b {.used.} = KeyBuffer.new(Key.init("/a/b").get) b = DataBuffer.new($Key.init("/a/b").tryGet())
let c {.used.} = KeyBuffer.new(k2) c = DataBuffer.new($k2)
test "creation": test "creation":
let db = DataBuffer.new("abc") let db = DataBuffer.new("abc")
@ -74,21 +81,27 @@ suite "Share buffer test":
check db[].buf[0].char == 'a' check db[].buf[0].char == 'a'
check db[].buf[1].char == 'b' check db[].buf[1].char == 'b'
check db[].buf[2].char == 'c' check db[].buf[2].char == 'c'
test "equality": test "equality":
check a == b check a == b
test "toString": test "toString":
check a.toString() == "/a/b" check $a == "/a/b"
test "hash": test "hash":
check a.hash() == b.hash() check a.hash() == b.hash()
test "hashes differ": test "hashes differ":
check a.hash() != c.hash() check a.hash() != c.hash()
test "key conversion": test "key conversion":
check a.toKey().get() == k1 check Key.init(a).tryGet == k1
test "seq conversion": test "seq conversion":
check a.toSeq(char) == @"/a/b" check string.fromBytes(a.toSeq()) == "/a/b"
test "seq conversion": test "seq conversion":
check a.toSeq(byte) == "/a/b".toBytes check a.toSeq() == "/a/b".toBytes
test "basic thread test": test "basic thread test":
runBasicTest() runBasicTest()