test: prove package initialization semantics

This commit is contained in:
2026-08-14 19:02:49 +09:00
parent c6bec0914d
commit 763bbc8f25
24 changed files with 2243 additions and 349 deletions

View File

@@ -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;
};

View File

@@ -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]);

View File

@@ -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; };

View File

@@ -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]);

View File

@@ -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]);

View File

@@ -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;

View File

@@ -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]);

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;