2023-05-20 12:53:21 +00:00
|
|
|
# SPDX-FileCopyrightText: 2021 ☭ Emery Hemingway
|
|
|
|
# SPDX-License-Identifier: Unlicense
|
|
|
|
|
2023-08-05 19:22:43 +00:00
|
|
|
import std/unittest
|
2023-05-20 12:53:21 +00:00
|
|
|
import preserves
|
|
|
|
|
|
|
|
suite "BufferedDecoder":
|
|
|
|
|
|
|
|
test "half-string":
|
|
|
|
var
|
|
|
|
buf = newBufferedDecoder()
|
|
|
|
pr = Preserve[void](kind: pkByteString, bytes: newSeq[byte](23))
|
|
|
|
ok: bool
|
|
|
|
for i, _ in pr.bytes:
|
|
|
|
pr.bytes[i] = byte(i)
|
|
|
|
let bin = encode(pr)
|
|
|
|
for i in 0..32:
|
|
|
|
checkpoint $i
|
|
|
|
let j = (i+2) and 0xf
|
|
|
|
feed(buf, bin[0..<j])
|
|
|
|
feed(buf, bin[j..bin.high])
|
|
|
|
(ok, pr) = decode(buf)
|
|
|
|
assert ok
|