Skip to content

Commit eb3fc7d

Browse files
moosichuandrewrk
authored andcommitted
Add tests for carriage return handling
1 parent ec5f72a commit eb3fc7d

File tree

2 files changed

+19
-0
lines changed

2 files changed

+19
-0
lines changed

test/compare_output.zig

+9
Original file line numberDiff line numberDiff line change
@@ -528,4 +528,13 @@ pub fn addCases(cases: *tests.CompareOutputContext) void {
528528
\\debug: free - len: 5
529529
\\
530530
);
531+
532+
cases.add("valid carriage return example", "const io = @import(\"std\").io;\r\n" ++ // Testing CRLF line endings are valid
533+
"\r\n" ++
534+
"pub \r fn main() void {\r\n" ++ // Testing isolated carriage return as whitespace is valid
535+
" const stdout = io.getStdOut().writer();\r\n" ++
536+
" stdout.print(\\A Multiline\r\n" ++ // testing CRLF at end of multiline string line is valid and normalises to \n in the output
537+
" \\String\r\n" ++
538+
" , .{}) catch unreachable;\r\n" ++
539+
"}\r\n", "A Multiline\nString");
531540
}

test/compile_errors.zig

+10
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,16 @@ pub fn addCases(ctx: *TestContext) !void {
174174
});
175175
}
176176

177+
{
178+
const case = ctx.obj("isolated carriage return in multiline string literal", .{});
179+
case.backend = .stage2;
180+
181+
case.addError("const foo = \\\\\test\r\r rogue carriage return\n;", &[_][]const u8{
182+
":1:19: error: expected ';' after declaration",
183+
":1:20: note: invalid byte: '\\r'",
184+
});
185+
}
186+
177187
{
178188
const case = ctx.obj("missing semicolon at EOF", .{});
179189
case.addError(

0 commit comments

Comments
 (0)