summaryrefslogtreecommitdiff
path: root/build.zig
diff options
context:
space:
mode:
Diffstat (limited to 'build.zig')
-rw-r--r--build.zig16
1 files changed, 16 insertions, 0 deletions
diff --git a/build.zig b/build.zig
index c67caf20..f8dc3e82 100644
--- a/build.zig
+++ b/build.zig
@@ -1739,6 +1739,22 @@ pub fn build(b: *std.Build) void {
.link_libc = true,
}) });
unit_step.dependOn(&b.addRunArtifact(nested_test).step);
+ // The 9P2000 codec and its sans-io server. Its own module for the
+ // reason spelled out above rather than as a convention, and a stronger
+ // one than its neighbours have: 9p.zig is FREESTANDING — it imports
+ // `std` and nothing else, so that the same source compiles for
+ // wasm32- and riscv32-freestanding — and its only host-side importer
+ // is src/fs9_service.zig, which reaches pardes.zig. Compiling it here
+ // as its own root is therefore also the check that the freestanding
+ // promise still holds: NO `link_libc`, and an import of anything
+ // OS-shaped would fail this step rather than passing quietly inside
+ // the core's graph.
+ const ninep_test = b.addTest(.{ .root_module = b.createModule(.{
+ .target = target,
+ .optimize = optimize,
+ .root_source_file = b.path("src/9p.zig"),
+ }) });
+ unit_step.dependOn(&b.addRunArtifact(ninep_test).step);
// The board's input-rescue policy: drain the receiver while spinning on a full transmitter.
// A measured bug — a 200-byte burst typed into a long frame lost 88 bytes on the die — so
// it gets a test that fails without the fix, and it runs HERE rather than only on hardware.