╭ changed ───╮ │src/test.zig│ ╰────────────╯ ╭───────────╮ │← all files│ ╰───────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────╮ │14 try testFetch(.xit, .xit, .{ .wire = .http }, 3005, true, io, allocator); │ │15 if (.windows != builtin.os.tag) { │ │16 try testFetch(.xit, .xit, .{ .wire = .ssh }, 3006, false, io, allocator);│ │17 + try testFetch(.xit, .xit, .{ .wire = .ssh }, 3007, true, io, allocator); │ │18 } │ │19 } │ │20 │ ╰─────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────╮ │25 try testPush(.xit, .xit, .{ .wire = .http }, 3011, true, io, allocator); │ │26 if (.windows != builtin.os.tag) { │ │27 try testPush(.xit, .xit, .{ .wire = .ssh }, 3012, false, io, allocator);│ │28 + try testPush(.xit, .xit, .{ .wire = .ssh }, 3013, true, io, allocator); │ │29 } │ │30 } │ │31 │ ╰────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────╮ │32 test "clone small" { │ │33 const io = std.testing.io; │ │34 const allocator = std.testing.allocator; │ │33 - try testClone(.xit, .xit, .{ .wire = .http }, 3016, false, false, io, allocator); │ │34 - try testClone(.xit, .xit, .{ .wire = .http }, 3017, false, true, io, allocator); │ │35 + try testClone(.xit, .xit, .{ .wire = .http }, 3020, false, false, io, allocator); │ │36 + try testClone(.xit, .xit, .{ .wire = .http }, 3021, false, true, io, allocator); │ │37 if (.windows != builtin.os.tag) { │ │36 - try testClone(.xit, .xit, .{ .wire = .ssh }, 3018, false, false, io, allocator);│ │38 + try testClone(.xit, .xit, .{ .wire = .ssh }, 3022, false, false, io, allocator);│ │39 + try testClone(.xit, .xit, .{ .wire = .ssh }, 3023, false, true, io, allocator); │ │40 } │ │41 } │ │42 │ ╰────────────────────────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────────────────────────────────────╮ │43 test "clone small subprocess" { │ │44 const io = std.testing.io; │ │45 const allocator = std.testing.allocator; │ │43 - try testClone(.git, .xit, .{ .wire = .http }, 3031, true, false, io, allocator); │ │44 - try testClone(.git, .xit, .{ .wire = .http }, 3032, true, true, io, allocator); │ │46 + try testClone(.git, .xit, .{ .wire = .http }, 3030, true, false, io, allocator); │ │47 + try testClone(.git, .xit, .{ .wire = .http }, 3031, true, true, io, allocator); │ │48 if (.windows != builtin.os.tag) { │ │46 - try testClone(.git, .xit, .{ .wire = .ssh }, 3033, true, false, io, allocator);│ │49 + try testClone(.git, .xit, .{ .wire = .ssh }, 3032, true, false, io, allocator);│ │50 + try testClone(.git, .xit, .{ .wire = .ssh }, 3033, true, true, io, allocator); │ │51 } │ │52 } │ │53 │ ╰───────────────────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────────╮ │54 test "fetch large" { │ │55 const io = std.testing.io; │ │56 const allocator = std.testing.allocator; │ │53 - try testFetchLarge(.git, .git, .{ .wire = .http }, 3019, false, false, io, allocator); │ │57 + try testFetchLarge(.git, .git, .{ .wire = .http }, 3040, false, false, io, allocator); │ │58 if (.windows != builtin.os.tag) { │ │55 - try testFetchLarge(.git, .git, .{ .wire = .ssh }, 3021, false, false, io, allocator);│ │59 + try testFetchLarge(.git, .git, .{ .wire = .ssh }, 3041, false, false, io, allocator);│ │60 } │ │61 } │ │62 │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────╮ │63 test "fetch large subprocess" { │ │64 const io = std.testing.io; │ │65 const allocator = std.testing.allocator; │ │62 - try testFetchLarge(.git, .xit, .{ .wire = .http }, 3022, true, false, io, allocator); │ │63 - try testFetchLarge(.git, .xit, .{ .wire = .http }, 3023, true, true, io, allocator); │ │66 + try testFetchLarge(.git, .xit, .{ .wire = .http }, 3050, true, false, io, allocator); │ │67 + try testFetchLarge(.git, .xit, .{ .wire = .http }, 3051, true, true, io, allocator); │ │68 if (.windows != builtin.os.tag) { │ │65 - try testFetchLarge(.git, .xit, .{ .wire = .ssh }, 3024, true, false, io, allocator);│ │69 + try testFetchLarge(.git, .xit, .{ .wire = .ssh }, 3052, true, false, io, allocator);│ │70 + try testFetchLarge(.git, .xit, .{ .wire = .ssh }, 3053, true, true, io, allocator); │ │71 } │ │72 } │ │73 │ ╰────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────╮ │74 test "push large" { │ │75 const io = std.testing.io; │ │76 const allocator = std.testing.allocator; │ │72 - try testPushLarge(.git, .git, .{ .wire = .http }, 3025, false, false, io, allocator); │ │77 + try testPushLarge(.git, .git, .{ .wire = .http }, 3060, false, false, io, allocator); │ │78 if (.windows != builtin.os.tag) { │ │74 - try testPushLarge(.git, .git, .{ .wire = .ssh }, 3027, false, false, io, allocator);│ │79 + try testPushLarge(.git, .git, .{ .wire = .ssh }, 3061, false, false, io, allocator);│ │80 } │ │81 } │ │82 │ ╰────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────────────────────────────────────────╮ │78 -test "git push large subprocess" { │ │83 +test "push large subprocess" { │ │84 const io = std.testing.io; │ │85 const allocator = std.testing.allocator; │ │81 - try testPushLarge(.git, .xit, .{ .wire = .http }, 3028, true, false, io, allocator); │ │82 - try testPushLarge(.git, .xit, .{ .wire = .http }, 3029, true, true, io, allocator); │ │86 + try testPushLarge(.git, .xit, .{ .wire = .http }, 3070, true, false, io, allocator); │ │87 + try testPushLarge(.git, .xit, .{ .wire = .http }, 3071, true, true, io, allocator); │ │88 if (.windows != builtin.os.tag) { │ │84 - try testPushLarge(.git, .xit, .{ .wire = .ssh }, 3030, true, false, io, allocator);│ │89 + try testPushLarge(.git, .xit, .{ .wire = .ssh }, 3072, true, false, io, allocator);│ │90 + try testPushLarge(.git, .xit, .{ .wire = .ssh }, 3073, true, true, io, allocator); │ │91 } │ │92 } │ │93 │ ╰───────────────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────╮ │117 server_thread: std.Thread, │ │118 }, │ │119 .raw => unreachable, │ │114 - .ssh => struct { │ │120 + .ssh => if (use_serve_command) struct {│ │121 + io: std.Io, │ │122 + allocator: std.mem.Allocator, │ │123 + sshd_process: ?std.process.Child, │ │124 + serve_process: ?std.process.Child, │ │125 + } else struct { │ │126 io: std.Io, │ │127 process: ?std.process.Child, │ │128 }, │ ╰────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────╮ │274 } │ │275 } │ │276 │ │266 - return .{ │ │267 - .core = .{ .io = io, .process = null }, │ │268 - }; │ │277 + if (use_serve_command) { │ │278 + comptime { │ │279 + std.debug.assert(server_repo_kind == .xit);│ │280 + } │ │281 + return .{ │ │282 + .core = .{ │ │283 + .io = io, │ │284 + .allocator = allocator, │ │285 + .sshd_process = null, │ │286 + .serve_process = null, │ │287 + }, │ │288 + }; │ │289 + } else { │ │290 + return .{ │ │291 + .core = .{ .io = io, .process = null }, │ │292 + }; │ │293 + } │ │294 }, │ │295 }, │ │296 } │ ╰────────────────────────────────────────────────────────────────────────────────╯ ╭──────╮ │next →│ ╰──────╯