✓
Passing This code compiles and runs correctly.
Code
// Test: Resource bridge - external handle pool persists handles
~import std/runtime
~import std/io
const std = @import("std");
const HandlePool = @import("root").koru_std.koru_interpreter.HandlePool;
// External pool (simulates bridge)
var test_pool = HandlePool.init(std.heap.page_allocator);
// Events with obligations
~pub event open { path: []const u8 }
| opened []const u8<opened!>
~open => opened "file_1"
~pub event close { handle: []const u8<!opened> }
~proc close|zig {
std.debug.print("close() called\n", .{});
}
~std/runtime:register(scope: "test") {
open(10)
close(1)
}
const TEST_SOURCE = "~open(path: \"test.txt\")\n| opened f |> result { path: \"test.txt\" }";
~std/runtime:run(source: TEST_SOURCE, scope: "test", budget: 100, handle_pool: &test_pool, auto_discharge: false)
| result r |> std/io:print.ln("PASS: external pool has {{ r.handles:d }} handle(s)")
| exhausted _ |> std/io:print.ln("FAIL: exhausted")
| parse-error _ |> std/io:print.ln("FAIL: parse_error")
| validation-error _ |> std/io:print.ln("FAIL: validation_error")
| shape-error _ |> std/io:print.ln("FAIL: shape_error")
| event-denied _ |> std/io:print.ln("FAIL: event_denied")
| dispatch-error _ |> std/io:print.ln("FAIL: dispatch_error")
| scope-not-found _ |> std/io:print.ln("FAIL: scope_not_found")
Actual
PASS: external pool has 1 handle(s)
Test Configuration
MUST_RUN