diff options
Diffstat (limited to 'build.zig')
| -rw-r--r-- | build.zig | 27 |
1 files changed, 27 insertions, 0 deletions
@@ -230,6 +230,8 @@ pub fn build(b: *std.Build) void { core_mods_len += 1; }; const core_mods = core_mods_buf[0..core_mods_len]; + const cloud9 = b.dependency("cloud9", .{ .target = target, .optimize = optimize }).module("cloud9"); + for (core_mods) |mod| mod.addImport("cloud9", cloud9); const core_shells = core_shells_buf[0..core_mods_len]; for (core_mods) |mod| mod.addOptions("9p_options", ninep_options); const quic_test_step = b.step("quic-test", "test optional QUIC transport (-Dquic=true)"); @@ -253,6 +255,7 @@ pub fn build(b: *std.Build) void { .link_libc = true, }); quic_module.addImport("openssl", openssl); + quic_module.addImport("cloud9", cloud9); const tests = b.addTest(.{ .root_module = quic_module, .filters = test_filters }); if (test_nonce) |nonce| tests.root_module.addImport("test_rebuild_nonce", nonce); test_build.dependOn(&tests.step); @@ -868,6 +871,7 @@ pub fn build(b: *std.Build) void { .target = target, .optimize = optimize, .ghostty_vt = ghostty_vt_for_snap, + .cloud9 = cloud9, }); const image_harness = b.addExecutable(.{ @@ -1203,6 +1207,28 @@ pub fn build(b: *std.Build) void { pane_test_step.dependOn(&run_pane_tests.step); if (testMatch(b, unit_profile, test_filters, pane_test_step)) |check| check.addArtifactArg(pane_tests); + // Keep native transport integration reachable even when the core's + // anonymous test-import block is filtered out by Zig. + const ninep_io_module = b.createModule(.{ + .root_source_file = b.path("src/9p_io.zig"), + .target = target, + .optimize = optimize, + .link_libc = true, + }); + ninep_io_module.link_objects.appendSlice(b.allocator, core_module.link_objects.items) catch @panic("OOM"); + var ninep_imports = core_module.import_table.iterator(); + while (ninep_imports.next()) |entry| ninep_io_module.addImport(entry.key_ptr.*, entry.value_ptr.*); + if (enable_quic) { + ninep_io_module.linkSystemLibrary("ssl", .{}); + ninep_io_module.linkSystemLibrary("crypto", .{}); + } + const ninep_io_tests = b.addTest(.{ + .root_module = ninep_io_module, + .filters = &.{ "Unix TCP", "one fetch", "expired sessions" }, + }); + b.step("9p-io-test", "run native 9P transport and client integration tests") + .dependOn(&b.addRunArtifact(ninep_io_tests).step); + const protocol_step = b.step("9p-test", "run freestanding 9P protocol tests"); const history_step = b.step("history-test", "test historical comparisons and regression gates"); const protocol_match = testMatch(b, unit_profile, test_filters, protocol_step); @@ -1224,6 +1250,7 @@ pub fn build(b: *std.Build) void { }), .filters = test_filters, }); + tests.root_module.addImport("cloud9", cloud9); if (test_nonce) |nonce| tests.root_module.addImport("test_rebuild_nonce", nonce); test_build.dependOn(&tests.step); const run_tests = b.addRunArtifact(tests); |
