test: prove package initialization semantics
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
//ww:run-exit 42
|
||||
package main;
|
||||
type bs = struct { rbuf: []u8, mark: i32 };
|
||||
fn init(b: *bs, rbuf: []u8) void = { b.rbuf = rbuf; b.mark = 9; };
|
||||
fn setup(b: *bs, rbuf: []u8) void = { b.rbuf = rbuf; b.mark = 9; };
|
||||
fn main() i32 = {
|
||||
let raw: [8]u8; raw[0] = 0u8; let b: bs; init(&b, raw[0:5]);
|
||||
let raw: [8]u8; raw[0] = 0u8; let b: bs; setup(&b, raw[0:5]);
|
||||
if (b.rbuf.len != 5) { return 1; }; if (b.rbuf.cap != 8) { return 2; };
|
||||
if (b.mark != 9) { return 3; }; return 42;
|
||||
};
|
||||
|
||||
@@ -16,7 +16,7 @@ export fn main() i32 = {
|
||||
if (sel == 0) { src = &mstB.vt; };
|
||||
let rbuf: [4]u8;
|
||||
let wbuf: [4]u8;
|
||||
let bc: bufio.stream = bufio.init(src, rbuf[0:4], wbuf[0:4]);
|
||||
let bc: bufio.stream = bufio.newstream(src, rbuf[0:4], wbuf[0:4]);
|
||||
let vs: io.stream = &bc.vt;
|
||||
let out: [4]u8;
|
||||
let rd = io.read(vs, out[0:4]);
|
||||
|
||||
@@ -10,7 +10,7 @@ export fn main() i32 = {
|
||||
let msrc: io.stream = &mst.vt;
|
||||
let rbuf: [4]u8;
|
||||
let wbuf: [4]u8;
|
||||
let bc: bufio.stream = bufio.init(msrc, rbuf[0:4], wbuf[0:4]);
|
||||
let bc: bufio.stream = bufio.newstream(msrc, rbuf[0:4], wbuf[0:4]);
|
||||
let vs: io.stream = &bc.vt;
|
||||
if (!bufio.isbuffered(vs)) { return 91; };
|
||||
if (bufio.isbuffered(msrc)) { return 92; };
|
||||
|
||||
@@ -10,7 +10,7 @@ export fn main() i32 = {
|
||||
let msrc: io.stream = &mst.vt;
|
||||
let rbuf: [4]u8;
|
||||
let wbuf: [4]u8;
|
||||
let b: bufio.stream = bufio.init(msrc, rbuf[0:4], wbuf[0:4]);
|
||||
let b: bufio.stream = bufio.newstream(msrc, rbuf[0:4], wbuf[0:4]);
|
||||
let vsbuf: io.stream = &b.vt;
|
||||
let buf2: [4]u8;
|
||||
let st2: memio.stream = memio.fixed(buf2[0:4]);
|
||||
|
||||
@@ -12,7 +12,7 @@ export fn main() i32 = {
|
||||
let msrc: io.stream = &mst.vt;
|
||||
let rbuf: [8]u8;
|
||||
let wbuf: [4]u8;
|
||||
let b: bufio.stream = bufio.init(msrc, rbuf[0:8], wbuf[0:4]);
|
||||
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]);
|
||||
|
||||
@@ -10,7 +10,7 @@ export fn main() i32 = {
|
||||
let sinkvs: io.stream = &sink.vt;
|
||||
let rb: [4]u8;
|
||||
let wb: [8]u8;
|
||||
let b: bufio.stream = bufio.init(sinkvs, rb[0:4], wb[0:8]);
|
||||
let b: bufio.stream = bufio.newstream(sinkvs, rb[0:4], wb[0:8]);
|
||||
let bvs: io.stream = &b.vt;
|
||||
let semi: [1]u8;
|
||||
semi[0] = 59u8;
|
||||
|
||||
@@ -11,7 +11,7 @@ export fn main() i32 = {
|
||||
let vs: io.stream = &mst.vt;
|
||||
let rbuf: [4]u8;
|
||||
let wbuf: [4]u8;
|
||||
let b: bufio.stream = bufio.init(vs, rbuf[0:4], wbuf[0:4]);
|
||||
let b: bufio.stream = bufio.newstream(vs, rbuf[0:4], wbuf[0:4]);
|
||||
let bvs: io.stream = &b.vt;
|
||||
let out: [4]u8;
|
||||
let rd = io.read(bvs, out[0:3]);
|
||||
|
||||
@@ -10,7 +10,7 @@ export fn main() i32 = {
|
||||
let msrc: io.stream = &mst.vt;
|
||||
let rbuf: [8]u8;
|
||||
let wbuf: [8]u8;
|
||||
let b: bufio.stream = bufio.init(msrc, rbuf[0:8], wbuf[0:8]);
|
||||
let b: bufio.stream = bufio.newstream(msrc, rbuf[0:8], wbuf[0:8]);
|
||||
let vs: io.stream = &b.vt;
|
||||
let payload: [5]u8;
|
||||
payload[0] = 104u8; payload[1] = 105u8;
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
package main;
|
||||
import math.random;
|
||||
export fn main() int = {
|
||||
let g: random.random = random.init(1u64);
|
||||
let g: random.random = random.fromseed(1u64);
|
||||
let x: u32 = random.u32n(&g, 1u32);
|
||||
if (x >= 1u32) { return 1; };
|
||||
return 0;
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
package main;
|
||||
import math.random;
|
||||
export fn main() int = {
|
||||
let g: random.random = random.init(1u64);
|
||||
let g: random.random = random.fromseed(1u64);
|
||||
let x: u32 = random.u32n(&g, 10u32);
|
||||
if (x >= 10u32) { return 1; };
|
||||
return 0;
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
package main;
|
||||
import math.random;
|
||||
export fn main() int = {
|
||||
let g: random.random = random.init(1u64);
|
||||
let g: random.random = random.fromseed(1u64);
|
||||
let x: u64 = random.u64n(&g, 1u64);
|
||||
if (x >= 1u64) { return 1; };
|
||||
return 0;
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
package main;
|
||||
import math.random;
|
||||
export fn main() int = {
|
||||
let g: random.random = random.init(1u64);
|
||||
let g: random.random = random.fromseed(1u64);
|
||||
let x: u64 = random.u64n(&g, 10u64);
|
||||
if (x >= 10u64) { return 1; };
|
||||
return 0;
|
||||
|
||||
Reference in New Issue
Block a user