Skip to content

Commit 549135b

Browse files
committed
command/yes: add more tests
1 parent c5966cb commit 549135b

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

src/commands/yes.zig

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,51 @@ const impl = struct {
8787
try command.testVersion();
8888
}
8989

90+
test "yes no args" {
91+
var stdout: std.ArrayList(u8) = .init(std.testing.allocator);
92+
defer stdout.deinit();
93+
94+
try command.testExecute(&.{}, .{ .stdout = stdout.writer().any() });
95+
96+
const expected = blk: {
97+
var expected: std.ArrayList(u8) = .init(std.testing.allocator);
98+
errdefer expected.deinit();
99+
100+
for (0..10) |_| {
101+
try expected.appendSlice("y\n");
102+
}
103+
104+
break :blk try expected.toOwnedSlice();
105+
};
106+
defer std.testing.allocator.free(expected);
107+
108+
try std.testing.expectEqualStrings(expected, stdout.items);
109+
}
110+
111+
test "yes with args" {
112+
var stdout: std.ArrayList(u8) = .init(std.testing.allocator);
113+
defer stdout.deinit();
114+
115+
try command.testExecute(
116+
&.{ "arg1", "arg2" },
117+
.{ .stdout = stdout.writer().any() },
118+
);
119+
120+
const expected = blk: {
121+
var expected: std.ArrayList(u8) = .init(std.testing.allocator);
122+
errdefer expected.deinit();
123+
124+
for (0..10) |_| {
125+
try expected.appendSlice("arg1 arg2\n");
126+
}
127+
128+
break :blk try expected.toOwnedSlice();
129+
};
130+
defer std.testing.allocator.free(expected);
131+
132+
try std.testing.expectEqualStrings(expected, stdout.items);
133+
}
134+
90135
test "yes fuzz" {
91136
try command.testFuzz(.{
92137
.expect_stdout_output_on_success = true,

0 commit comments

Comments
 (0)