The r-prefixed waves absorb the runtime, reject, and byte-compare rows of the migrated native carriers; each fixture is one directory with one case.ww and a //ww:error, //ww:compile, //ww:run, or //ww:run-exit directive covering both frontends.
27 lines
729 B
Plaintext
27 lines
729 B
Plaintext
//ww:run-exit 95
|
|
// Migrated from 775_io_vtable_run row branched_readers.
|
|
package main;
|
|
import io;
|
|
fn r1(s: io.stream, buf: []u8) (size | io.eof | io.error) = {
|
|
return 1: size;
|
|
};
|
|
fn r2(s: io.stream, buf: []u8) (size | io.eof | io.error) = {
|
|
return 2: size;
|
|
};
|
|
export fn main() i32 = {
|
|
let vt1: io.vtable;
|
|
let vt2: io.vtable;
|
|
vt1.reader = (&r1): *io.reader;
|
|
vt2.reader = (&r2): *io.reader;
|
|
let buf: [4]u8;
|
|
let bs: []u8 = buf[0:4];
|
|
let a = io.read(&vt1, bs);
|
|
let b = io.read(&vt2, bs);
|
|
let asz: size = 0;
|
|
let bsz: size = 0;
|
|
if (a is size) { asz = a as size; };
|
|
if (b is size) { bsz = b as size; };
|
|
if (asz == 1: size && bsz == 2: size) { return 95; };
|
|
return 99;
|
|
};
|