Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 2ef8888

Browse files
committed
test: Add a test for out of bounds replacement
1 parent 07ee0ac commit 2ef8888

File tree

1 file changed

+76
-0
lines changed

1 file changed

+76
-0
lines changed

‎tests/rustc_tests.rs

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2889,3 +2889,79 @@ $DIR/short-error-format.rs:8:7: error[E0599]: no method named `salut` found for
28892889
.anonymized_line_numbers(true);
28902890
assert_data_eq!(renderer.render(input), expected);
28912891
}
2892+
2893+
#[test]
2894+
#[should_panic(expected = "range end index 47 out of range for slice of length 26")]
2895+
fn rustdoc_ui_diagnostic_width() {
2896+
// tests/rustdoc-ui/diagnostic-width.rs
2897+
2898+
let source_0 = r#"//@ compile-flags: --diagnostic-width=10
2899+
#![deny(rustdoc::bare_urls)]
2900+
2901+
/// This is a long line that contains a http://link.com
2902+
pub struct Foo; //~^ ERROR
2903+
"#;
2904+
let source_1 = r#"/// This is a long line that contains a http://link.com
2905+
"#;
2906+
2907+
let input = Level::ERROR
2908+
.header("this URL is not a hyperlink")
2909+
.group(
2910+
Group::new()
2911+
.element(
2912+
Snippet::source(source_0)
2913+
.origin("$DIR/diagnostic-width.rs")
2914+
.fold(true)
2915+
.annotation(AnnotationKind::Primary.span(111..126)),
2916+
)
2917+
.element(
2918+
Level::NOTE
2919+
.title("bare URLs are not automatically turned into clickable links"),
2920+
),
2921+
)
2922+
.group(
2923+
Group::new()
2924+
.element(Level::NOTE.title("the lint level is defined here"))
2925+
.element(
2926+
Snippet::source(source_0)
2927+
.origin("$DIR/diagnostic-width.rs")
2928+
.fold(true)
2929+
.annotation(AnnotationKind::Primary.span(49..67)),
2930+
),
2931+
)
2932+
.group(
2933+
Group::new()
2934+
.element(Level::HELP.title("use an automatic link instead"))
2935+
.element(
2936+
Snippet::source(source_1)
2937+
.origin("$DIR/diagnostic-width.rs")
2938+
.line_start(4)
2939+
.fold(true)
2940+
.patch(Patch::new(40..40, "<"))
2941+
.patch(Patch::new(55..55, ">")),
2942+
),
2943+
);
2944+
2945+
let expected = str![[r#"
2946+
error: this URL is not a hyperlink
2947+
--> $DIR/diagnostic-width.rs:4:41
2948+
|
2949+
LL | ... a http://link.com
2950+
| ^^^^^^^^^^^^^^^
2951+
|
2952+
= note: bare URLs are not automatically turned into clickable links
2953+
note: the lint level is defined here
2954+
--> $DIR/diagnostic-width.rs:2:9
2955+
|
2956+
LL | ...ny(ru...are_urls)]
2957+
| ^^...^^^^^^^^
2958+
help: use an automatic link instead
2959+
|
2960+
LL | /// This is a long line that contains a <http://link.com>
2961+
| + +
2962+
"#]];
2963+
let renderer = Renderer::plain()
2964+
.anonymized_line_numbers(true)
2965+
.term_width(10);
2966+
assert_data_eq!(renderer.render(input), expected);
2967+
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /