pec-0.2.0: test_cases/TestStrBuf.pec
module TestStrBuf
// String buffers, like char sbuf[N] in C except we don't have to worry about a missing null terminator
imports
Prelude
Data.StrBuf
where
main :: () -> I32
main () = do
putLn "test StrBuf"
p = new (strbuf #6) // will hold strings of length 5
assert (strlen p == 0)
put p
assert (to_strbuf "BL" p) // to_strbuf returns True if all the characters were copied
put p
assert (strlen p == 2)
assert (to_strbuf "Brett" p)
assert (strlen p == 5)
put p
assert (not (to_strbuf "Letner" p)) // to_strbuf returns False if not all the characters were able to be copied.
assert (strlen p == 5)
put p
q = new (strbuf #7)
assert (to_strbuf "Letner" q)
assert (strlen q == 6)
put q
switch strcmp p q of
LT -> assert True
EQ -> assert False
GT -> assert False
assert (to_strbuf "Letne" q)
put p
put q
switch strcmp p q of
EQ -> assert True
_ -> assert False
assert (to_strbuf "foo" p)
put p
put q
assert (strcpy p q)
put q
assert (strcmp p q == EQ)
putLn "done"
0