//ww:run-exit 47 // Migrated from 778_bufio_vstream_run row stream_read_unread. package main; import bufio; import memio; import io; export fn main() i32 = { let raw: [8]u8; raw[0] = 65u8; raw[1] = 66u8; raw[2] = 67u8; raw[3] = 68u8; raw[4] = 69u8; raw[5] = 70u8; raw[6] = 71u8; raw[7] = 72u8; let mst: memio.stream = memio.fixed(raw[0:8]); let msrc: io.stream = &mst.vt; let rbuf: [8]u8; let wbuf: [4]u8; let b: bufio.stream = bufio.newstream(msrc, rbuf[0:8], wbuf[0:4]); let vs: io.stream = &b.vt; let out: [4]u8; let rd1 = io.read(vs, out[0:3]); let n1: size = 0; if (rd1 is size) { n1 = rd1 as size; }; if (n1 != 3: size) { return 91; }; if (out[0] != 65u8 || out[2] != 67u8) { return 92; }; let rd2 = io.read(vs, out[0:4]); let n2: size = 0; if (rd2 is size) { n2 = rd2 as size; }; if (n2 != 4: size) { return 93; }; if (out[0] != 68u8 || out[3] != 71u8) { return 94; }; return 47; };