Skip to content

Commit 1598c65

Browse files
committed
test: Overflow when whitespace annotated small term width
1 parent c3102bc commit 1598c65

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

tests/rustc_tests.rs

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5646,3 +5646,34 @@ LL │ static ROOK_ATTACKS_TABLE: () = {
56465646
let renderer = renderer.decor_style(DecorStyle::Unicode);
56475647
assert_data_eq!(renderer.render(input), expected_unicode);
56485648
}
5649+
5650+
#[test]
5651+
#[should_panic = "attempt to subtract with overflow"]
5652+
fn emitter_overflow_bad_whitespace() {
5653+
// tests/ui/errors/emitter-overflow-bad-whitespace.rs
5654+
let source = r#"                                        fn main() { return; }
5655+
"#;
5656+
let title_0 = "Unicode character ' ' (No-Break Space) looks like ' ' (Space), but it is not";
5657+
5658+
let report = &[
5659+
Group::with_title(Level::ERROR.primary_title("unknown start of token: \u{a0}")).element(
5660+
Snippet::source(source)
5661+
.path("$DIR/emitter-overflow-bad-whitespace.rs")
5662+
.line_start(10)
5663+
.annotation(AnnotationKind::Primary.span(0..2)),
5664+
),
5665+
Group::with_title(Level::HELP.secondary_title(title_0)).element(
5666+
Snippet::source(source)
5667+
.path("$DIR/emitter-overflow-bad-whitespace.rs")
5668+
.line_start(10)
5669+
.patch(Patch::new(0..2, " ")),
5670+
),
5671+
];
5672+
let expected_ascii = str![[r#""#]];
5673+
let renderer_ascii = Renderer::plain().term_width(1);
5674+
assert_data_eq!(renderer_ascii.render(report), expected_ascii);
5675+
5676+
let expected_unicode = str![[r#""#]];
5677+
let renderer_unicode = renderer_ascii.decor_style(DecorStyle::Unicode);
5678+
assert_data_eq!(renderer_unicode.render(report), expected_unicode);
5679+
}

0 commit comments

Comments
 (0)