summaryrefslogtreecommitdiffstats
path: root/vendor/annotate-snippets-0.8.0/tests/dl_from_snippet.rs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:02:58 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:02:58 +0000
commit698f8c2f01ea549d77d7dc3338a12e04c11057b9 (patch)
tree173a775858bd501c378080a10dca74132f05bc50 /vendor/annotate-snippets-0.8.0/tests/dl_from_snippet.rs
parentInitial commit. (diff)
downloadrustc-698f8c2f01ea549d77d7dc3338a12e04c11057b9.tar.xz
rustc-698f8c2f01ea549d77d7dc3338a12e04c11057b9.zip
Adding upstream version 1.64.0+dfsg1.upstream/1.64.0+dfsg1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'vendor/annotate-snippets-0.8.0/tests/dl_from_snippet.rs')
-rw-r--r--vendor/annotate-snippets-0.8.0/tests/dl_from_snippet.rs401
1 files changed, 401 insertions, 0 deletions
diff --git a/vendor/annotate-snippets-0.8.0/tests/dl_from_snippet.rs b/vendor/annotate-snippets-0.8.0/tests/dl_from_snippet.rs
new file mode 100644
index 000000000..2ed990261
--- /dev/null
+++ b/vendor/annotate-snippets-0.8.0/tests/dl_from_snippet.rs
@@ -0,0 +1,401 @@
+use annotate_snippets::display_list::DisplayList;
+use annotate_snippets::{display_list as dl, formatter::get_term_style, snippet};
+
+#[test]
+fn test_format_title() {
+ let input = snippet::Snippet {
+ title: Some(snippet::Annotation {
+ id: Some("E0001"),
+ label: Some("This is a title"),
+ annotation_type: snippet::AnnotationType::Error,
+ }),
+ footer: vec![],
+ slices: vec![],
+ opt: Default::default(),
+ };
+ let output = dl::DisplayList {
+ body: vec![dl::DisplayLine::Raw(dl::DisplayRawLine::Annotation {
+ annotation: dl::Annotation {
+ annotation_type: dl::DisplayAnnotationType::Error,
+ id: Some("E0001"),
+ label: vec![dl::DisplayTextFragment {
+ content: "This is a title",
+ style: dl::DisplayTextStyle::Emphasis,
+ }],
+ },
+ source_aligned: false,
+ continuation: false,
+ })],
+ stylesheet: get_term_style(input.opt.color),
+ anonymized_line_numbers: input.opt.anonymized_line_numbers,
+ };
+ assert_eq!(dl::DisplayList::from(input), output);
+}
+
+#[test]
+fn test_format_slice() {
+ let line_1 = "This is line 1";
+ let line_2 = "This is line 2";
+ let source = vec![line_1, line_2].join("\n");
+ let input = snippet::Snippet {
+ title: None,
+ footer: vec![],
+ slices: vec![snippet::Slice {
+ source: &source,
+ line_start: 5402,
+ origin: None,
+ annotations: vec![],
+ fold: false,
+ }],
+ opt: Default::default(),
+ };
+ let output = dl::DisplayList {
+ body: vec![
+ dl::DisplayLine::Source {
+ lineno: None,
+ inline_marks: vec![],
+ line: dl::DisplaySourceLine::Empty,
+ },
+ dl::DisplayLine::Source {
+ lineno: Some(5402),
+ inline_marks: vec![],
+ line: dl::DisplaySourceLine::Content {
+ text: line_1,
+ range: (0, line_1.len()),
+ },
+ },
+ dl::DisplayLine::Source {
+ lineno: Some(5403),
+ inline_marks: vec![],
+ line: dl::DisplaySourceLine::Content {
+ range: (line_1.len() + 1, source.len()),
+ text: line_2,
+ },
+ },
+ dl::DisplayLine::Source {
+ lineno: None,
+ inline_marks: vec![],
+ line: dl::DisplaySourceLine::Empty,
+ },
+ ],
+ stylesheet: get_term_style(input.opt.color),
+ anonymized_line_numbers: input.opt.anonymized_line_numbers,
+ };
+ assert_eq!(dl::DisplayList::from(input), output);
+}
+
+#[test]
+fn test_format_slices_continuation() {
+ let src_0 = "This is slice 1";
+ let src_0_len = src_0.len();
+ let src_1 = "This is slice 2";
+ let src_1_len = src_1.len();
+ let input = snippet::Snippet {
+ title: None,
+ footer: vec![],
+ slices: vec![
+ snippet::Slice {
+ source: src_0,
+ line_start: 5402,
+ origin: Some("file1.rs"),
+ annotations: vec![],
+ fold: false,
+ },
+ snippet::Slice {
+ source: src_1,
+ line_start: 2,
+ origin: Some("file2.rs"),
+ annotations: vec![],
+ fold: false,
+ },
+ ],
+ opt: Default::default(),
+ };
+ let output = dl::DisplayList {
+ body: vec![
+ dl::DisplayLine::Raw(dl::DisplayRawLine::Origin {
+ path: "file1.rs",
+ pos: None,
+ header_type: dl::DisplayHeaderType::Initial,
+ }),
+ dl::DisplayLine::Source {
+ lineno: None,
+ inline_marks: vec![],
+ line: dl::DisplaySourceLine::Empty,
+ },
+ dl::DisplayLine::Source {
+ lineno: Some(5402),
+ inline_marks: vec![],
+ line: dl::DisplaySourceLine::Content {
+ text: src_0,
+ range: (0, src_0_len),
+ },
+ },
+ dl::DisplayLine::Source {
+ lineno: None,
+ inline_marks: vec![],
+ line: dl::DisplaySourceLine::Empty,
+ },
+ dl::DisplayLine::Raw(dl::DisplayRawLine::Origin {
+ path: "file2.rs",
+ pos: None,
+ header_type: dl::DisplayHeaderType::Continuation,
+ }),
+ dl::DisplayLine::Source {
+ lineno: None,
+ inline_marks: vec![],
+ line: dl::DisplaySourceLine::Empty,
+ },
+ dl::DisplayLine::Source {
+ lineno: Some(2),
+ inline_marks: vec![],
+ line: dl::DisplaySourceLine::Content {
+ text: src_1,
+ range: (0, src_1_len),
+ },
+ },
+ dl::DisplayLine::Source {
+ lineno: None,
+ inline_marks: vec![],
+ line: dl::DisplaySourceLine::Empty,
+ },
+ ],
+ stylesheet: get_term_style(input.opt.color),
+ anonymized_line_numbers: input.opt.anonymized_line_numbers,
+ };
+ assert_eq!(dl::DisplayList::from(input), output);
+}
+
+#[test]
+fn test_format_slice_annotation_standalone() {
+ let line_1 = "This is line 1";
+ let line_2 = "This is line 2";
+ let source = vec![line_1, line_2].join("\n");
+ // In line 2
+ let range = (22, 24);
+ let input = snippet::Snippet {
+ title: None,
+ footer: vec![],
+ slices: vec![snippet::Slice {
+ source: &source,
+ line_start: 5402,
+ origin: None,
+ annotations: vec![snippet::SourceAnnotation {
+ range,
+ label: "Test annotation",
+ annotation_type: snippet::AnnotationType::Info,
+ }],
+ fold: false,
+ }],
+ opt: Default::default(),
+ };
+ let output = dl::DisplayList {
+ body: vec![
+ dl::DisplayLine::Source {
+ lineno: None,
+ inline_marks: vec![],
+ line: dl::DisplaySourceLine::Empty,
+ },
+ dl::DisplayLine::Source {
+ lineno: Some(5402),
+ inline_marks: vec![],
+ line: dl::DisplaySourceLine::Content {
+ range: (0, line_1.len()),
+ text: line_1,
+ },
+ },
+ dl::DisplayLine::Source {
+ lineno: Some(5403),
+ inline_marks: vec![],
+ line: dl::DisplaySourceLine::Content {
+ range: (line_1.len() + 1, source.len()),
+ text: line_2,
+ },
+ },
+ dl::DisplayLine::Source {
+ lineno: None,
+ inline_marks: vec![],
+ line: dl::DisplaySourceLine::Annotation {
+ annotation: dl::Annotation {
+ annotation_type: dl::DisplayAnnotationType::Info,
+ id: None,
+ label: vec![dl::DisplayTextFragment {
+ content: "Test annotation",
+ style: dl::DisplayTextStyle::Regular,
+ }],
+ },
+ range: (range.0 - (line_1.len() + 1), range.1 - (line_1.len() + 1)),
+ annotation_type: dl::DisplayAnnotationType::Info,
+ annotation_part: dl::DisplayAnnotationPart::Standalone,
+ },
+ },
+ dl::DisplayLine::Source {
+ lineno: None,
+ inline_marks: vec![],
+ line: dl::DisplaySourceLine::Empty,
+ },
+ ],
+ stylesheet: get_term_style(input.opt.color),
+ anonymized_line_numbers: input.opt.anonymized_line_numbers,
+ };
+ assert_eq!(dl::DisplayList::from(input), output);
+}
+
+#[test]
+fn test_format_label() {
+ let input = snippet::Snippet {
+ title: None,
+ footer: vec![snippet::Annotation {
+ id: None,
+ label: Some("This __is__ a title"),
+ annotation_type: snippet::AnnotationType::Error,
+ }],
+ slices: vec![],
+ opt: Default::default(),
+ };
+ let output = dl::DisplayList {
+ body: vec![dl::DisplayLine::Raw(dl::DisplayRawLine::Annotation {
+ annotation: dl::Annotation {
+ annotation_type: dl::DisplayAnnotationType::Error,
+ id: None,
+ label: vec![
+ dl::DisplayTextFragment {
+ content: "This ",
+ style: dl::DisplayTextStyle::Regular,
+ },
+ dl::DisplayTextFragment {
+ content: "is",
+ style: dl::DisplayTextStyle::Emphasis,
+ },
+ dl::DisplayTextFragment {
+ content: " a title",
+ style: dl::DisplayTextStyle::Regular,
+ },
+ ],
+ },
+ source_aligned: true,
+ continuation: false,
+ })],
+ stylesheet: get_term_style(input.opt.color),
+ anonymized_line_numbers: input.opt.anonymized_line_numbers,
+ };
+ assert_eq!(dl::DisplayList::from(input), output);
+}
+
+#[test]
+#[should_panic]
+fn test_i26() {
+ let source = "short";
+ let label = "label";
+ let input = snippet::Snippet {
+ title: None,
+ footer: vec![],
+ slices: vec![snippet::Slice {
+ annotations: vec![snippet::SourceAnnotation {
+ range: (0, source.len() + 1),
+ label,
+ annotation_type: snippet::AnnotationType::Error,
+ }],
+ source,
+ line_start: 0,
+ origin: None,
+ fold: false,
+ }],
+ opt: Default::default(),
+ };
+
+ let _ = dl::DisplayList::from(input);
+}
+
+#[test]
+fn test_i_29() {
+ let snippets = snippet::Snippet {
+ title: Some(snippet::Annotation {
+ id: None,
+ label: Some("oops"),
+ annotation_type: snippet::AnnotationType::Error,
+ }),
+ footer: vec![],
+ slices: vec![snippet::Slice {
+ source: "First line\r\nSecond oops line",
+ line_start: 1,
+ origin: Some("<current file>"),
+ annotations: vec![snippet::SourceAnnotation {
+ range: (19, 23),
+ label: "oops",
+ annotation_type: snippet::AnnotationType::Error,
+ }],
+ fold: true,
+ }],
+ opt: Default::default(),
+ };
+
+ let expected = DisplayList {
+ body: vec![
+ dl::DisplayLine::Raw(dl::DisplayRawLine::Annotation {
+ annotation: dl::Annotation {
+ annotation_type: dl::DisplayAnnotationType::Error,
+ id: None,
+ label: vec![dl::DisplayTextFragment {
+ content: "oops",
+ style: dl::DisplayTextStyle::Emphasis,
+ }],
+ },
+ source_aligned: false,
+ continuation: false,
+ }),
+ dl::DisplayLine::Raw(dl::DisplayRawLine::Origin {
+ path: "<current file>",
+ pos: Some((2, 8)),
+ header_type: dl::DisplayHeaderType::Initial,
+ }),
+ dl::DisplayLine::Source {
+ lineno: None,
+ inline_marks: vec![],
+ line: dl::DisplaySourceLine::Empty,
+ },
+ dl::DisplayLine::Source {
+ lineno: Some(1),
+ inline_marks: vec![],
+ line: dl::DisplaySourceLine::Content {
+ text: "First line",
+ range: (0, 10),
+ },
+ },
+ dl::DisplayLine::Source {
+ lineno: Some(2),
+ inline_marks: vec![],
+ line: dl::DisplaySourceLine::Content {
+ text: "Second oops line",
+ range: (12, 28),
+ },
+ },
+ dl::DisplayLine::Source {
+ lineno: None,
+ inline_marks: vec![],
+ line: dl::DisplaySourceLine::Annotation {
+ annotation: dl::Annotation {
+ annotation_type: dl::DisplayAnnotationType::None,
+ id: None,
+ label: vec![dl::DisplayTextFragment {
+ content: "oops",
+ style: dl::DisplayTextStyle::Regular,
+ }],
+ },
+ range: (7, 11),
+ annotation_type: dl::DisplayAnnotationType::Error,
+ annotation_part: dl::DisplayAnnotationPart::Standalone,
+ },
+ },
+ dl::DisplayLine::Source {
+ lineno: None,
+ inline_marks: vec![],
+ line: dl::DisplaySourceLine::Empty,
+ },
+ ],
+ stylesheet: get_term_style(false),
+ anonymized_line_numbers: false,
+ };
+
+ assert_eq!(DisplayList::from(snippets), expected);
+}