30 lines
974 B
Plaintext
30 lines
974 B
Plaintext
//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;
|
|
};
|