summaryrefslogtreecommitdiffstats
path: root/src/tools/clippy/tests/ui/test_attr_in_doctest.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/clippy/tests/ui/test_attr_in_doctest.rs')
-rw-r--r--src/tools/clippy/tests/ui/test_attr_in_doctest.rs51
1 files changed, 51 insertions, 0 deletions
diff --git a/src/tools/clippy/tests/ui/test_attr_in_doctest.rs b/src/tools/clippy/tests/ui/test_attr_in_doctest.rs
new file mode 100644
index 000000000..4c904f7a0
--- /dev/null
+++ b/src/tools/clippy/tests/ui/test_attr_in_doctest.rs
@@ -0,0 +1,51 @@
+/// This is a test for `#[test]` in doctests
+///
+/// # Examples
+///
+/// ```
+/// #[test]
+/// fn should_be_linted() {
+/// assert_eq!(1, 1);
+/// }
+/// ```
+///
+/// Make sure we catch multiple tests in one example,
+/// and show that we really parse the attr:
+///
+/// ```
+/// #[test]
+/// fn should_also_be_linted() {
+/// #[cfg(test)]
+/// assert!(true);
+/// }
+///
+/// #[test]
+/// fn should_be_linted_too() {
+/// assert_eq!("#[test]", "
+/// #[test]
+/// ");
+/// }
+/// ```
+///
+/// We don't catch examples that aren't run:
+///
+/// ```ignore
+/// #[test]
+/// fn ignored() { todo!() }
+/// ```
+///
+/// ```no_run
+/// #[test]
+/// fn ignored() { todo!() }
+/// ```
+///
+/// ```compile_fail
+/// #[test]
+/// fn ignored() { Err(()) }
+/// ```
+///
+/// ```txt
+/// #[test]
+/// fn not_even_rust() { panic!("Ouch") }
+/// ```
+fn test_attr_in_doctests() {}