diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | lib/bio/test/bio-skipto.myr | 26 | ||||
-rw-r--r-- | lib/bio/test/bld.sub | 8 | ||||
-rw-r--r-- | lib/bio/test/data/bio-skipto | 1 |
4 files changed, 36 insertions, 0 deletions
@@ -31,5 +31,6 @@ lib/regex/redump # test outputs *.log **/test/* +!**/test/data/* !**/test/*.myr !**/test/runtest.sh diff --git a/lib/bio/test/bio-skipto.myr b/lib/bio/test/bio-skipto.myr new file mode 100644 index 0000000..6a66d9c --- /dev/null +++ b/lib/bio/test/bio-skipto.myr @@ -0,0 +1,26 @@ +use std +use bio + +const main = { + var buf : byte[16] + var f + + /* use the expected write data as read data */ + f = std.try(bio.open("data/bio-skipto", bio.Rd)) + + /* read bar from foobar */ + bio.skipto(f, "foo") + bio.read(f, buf[:3]) + std.assert(std.eq(buf[:3], "bar"), "did not read bar afer foo") + + /* we're past foobar, read to eof */ + bio.skipto(f, "foo") + match bio.read(f, buf[:3]) + | `std.Err `bio.Eof: /* ok */ + | `std.Ok _: std.fatal("expected EOF") + | `std.Err e: std.fatal("expected EOF, got {}\n", e) + ;; + + std.put("success: all reads matched\n") +} + diff --git a/lib/bio/test/bld.sub b/lib/bio/test/bld.sub index 0874277..66e44e6 100644 --- a/lib/bio/test/bld.sub +++ b/lib/bio/test/bld.sub @@ -56,3 +56,11 @@ bin write {test} = lib @/lib/bio:bio ;; + +bin skipto {test} = + bio-skipto.myr + lib @/lib/std:std + lib @/lib/sys:sys + lib @/lib/bio:bio +;; + diff --git a/lib/bio/test/data/bio-skipto b/lib/bio/test/data/bio-skipto new file mode 100644 index 0000000..3ddc867 --- /dev/null +++ b/lib/bio/test/data/bio-skipto @@ -0,0 +1 @@ +asdffoobarbaz |