diff options
Diffstat (limited to 'tests/run-coverage-rustdoc')
-rw-r--r-- | tests/run-coverage-rustdoc/auxiliary/doctest_crate.rs | 9 | ||||
-rw-r--r-- | tests/run-coverage-rustdoc/doctest.coverage | 117 | ||||
-rw-r--r-- | tests/run-coverage-rustdoc/doctest.rs | 101 |
3 files changed, 0 insertions, 227 deletions
diff --git a/tests/run-coverage-rustdoc/auxiliary/doctest_crate.rs b/tests/run-coverage-rustdoc/auxiliary/doctest_crate.rs deleted file mode 100644 index c3210146d..000000000 --- a/tests/run-coverage-rustdoc/auxiliary/doctest_crate.rs +++ /dev/null @@ -1,9 +0,0 @@ -/// A function run only from within doctests -pub fn fn_run_in_doctests(conditional: usize) { - match conditional { - 1 => assert_eq!(1, 1), // this is run, - 2 => assert_eq!(1, 1), // this, - 3 => assert_eq!(1, 1), // and this too - _ => assert_eq!(1, 2), // however this is not - } -} diff --git a/tests/run-coverage-rustdoc/doctest.coverage b/tests/run-coverage-rustdoc/doctest.coverage deleted file mode 100644 index 5797784f4..000000000 --- a/tests/run-coverage-rustdoc/doctest.coverage +++ /dev/null @@ -1,117 +0,0 @@ -$DIR/auxiliary/doctest_crate.rs: - LL| |/// A function run only from within doctests - LL| 3|pub fn fn_run_in_doctests(conditional: usize) { - LL| 3| match conditional { - LL| 1| 1 => assert_eq!(1, 1), // this is run, - LL| 1| 2 => assert_eq!(1, 1), // this, - LL| 1| 3 => assert_eq!(1, 1), // and this too - LL| 0| _ => assert_eq!(1, 2), // however this is not - LL| | } - LL| 3|} - -$DIR/doctest.rs: - LL| |// aux-build:doctest_crate.rs - LL| | - LL| |//! This test ensures that code from doctests is properly re-mapped. - LL| |//! See <https://github.com/rust-lang/rust/issues/79417> for more info. - LL| |//! - LL| |//! Just some random code: - LL| 1|//! ``` - LL| 1|//! if true { - LL| |//! // this is executed! - LL| 1|//! assert_eq!(1, 1); - LL| |//! } else { - LL| |//! // this is not! - LL| 0|//! assert_eq!(1, 2); - LL| |//! } - LL| 1|//! ``` - LL| |//! - LL| |//! doctest testing external code: - LL| |//! ``` - LL| 1|//! extern crate doctest_crate; - LL| 1|//! doctest_crate::fn_run_in_doctests(1); - LL| 1|//! ``` - LL| |//! - LL| |//! doctest returning a result: - LL| 1|//! ``` - LL| 2|//! #[derive(Debug, PartialEq)] - ^1 - LL| 1|//! struct SomeError { - LL| 1|//! msg: String, - LL| 1|//! } - LL| 1|//! let mut res = Err(SomeError { msg: String::from("a message") }); - LL| 1|//! if res.is_ok() { - LL| 0|//! res?; - LL| |//! } else { - LL| 1|//! if *res.as_ref().unwrap_err() == *res.as_ref().unwrap_err() { - LL| 1|//! println!("{:?}", res); - LL| 1|//! } - ^0 - LL| 1|//! if *res.as_ref().unwrap_err() == *res.as_ref().unwrap_err() { - LL| 1|//! res = Ok(1); - LL| 1|//! } - ^0 - LL| 1|//! res = Ok(0); - LL| |//! } - LL| |//! // need to be explicit because rustdoc cant infer the return type - LL| 1|//! Ok::<(), SomeError>(()) - LL| 1|//! ``` - LL| |//! - LL| |//! doctest with custom main: - LL| |//! ``` - LL| 1|//! fn some_func() { - LL| 1|//! println!("called some_func()"); - LL| 1|//! } - LL| |//! - LL| 0|//! #[derive(Debug)] - LL| |//! struct SomeError; - LL| |//! - LL| |//! extern crate doctest_crate; - LL| |//! - LL| 1|//! fn doctest_main() -> Result<(), SomeError> { - LL| 1|//! some_func(); - LL| 1|//! doctest_crate::fn_run_in_doctests(2); - LL| 1|//! Ok(()) - LL| 1|//! } - LL| |//! - LL| |//! // this `main` is not shown as covered, as it clashes with all the other - LL| |//! // `main` functions that were automatically generated for doctests - LL| |//! fn main() -> Result<(), SomeError> { - LL| |//! doctest_main() - LL| |//! } - LL| |//! ``` - LL| | - LL| |/// doctest attached to fn testing external code: - LL| |/// ``` - LL| 1|/// extern crate doctest_crate; - LL| 1|/// doctest_crate::fn_run_in_doctests(3); - LL| 1|/// ``` - LL| |/// - LL| 1|fn main() { - LL| 1| if true { - LL| 1| assert_eq!(1, 1); - LL| | } else { - LL| 0| assert_eq!(1, 2); - LL| | } - LL| 1|} - LL| | - LL| |// FIXME(Swatinem): Fix known issue that coverage code region columns need to be offset by the - LL| |// doc comment line prefix (`///` or `//!`) and any additional indent (before or after the doc - LL| |// comment characters). This test produces `llvm-cov show` results demonstrating the problem. - LL| |// - LL| |// One of the above tests now includes: `derive(Debug, PartialEq)`, producing an `llvm-cov show` - LL| |// result with a distinct count for `Debug`, denoted by `^1`, but the caret points to the wrong - LL| |// column. Similarly, the `if` blocks without `else` blocks show `^0`, which should point at, or - LL| |// one character past, the `if` block's closing brace. In both cases, these are most likely off - LL| |// by the number of characters stripped from the beginning of each doc comment line: indent - LL| |// whitespace, if any, doc comment prefix (`//!` in this case) and (I assume) one space character - LL| |// (?). Note, when viewing `llvm-cov show` results in `--color` mode, the column offset errors are - LL| |// more pronounced, and show up in more places, with background color used to show some distinct - LL| |// code regions with different coverage counts. - LL| |// - LL| |// NOTE: Since the doc comment line prefix may vary, one possible solution is to replace each - LL| |// character stripped from the beginning of doc comment lines with a space. This will give coverage - LL| |// results the correct column offsets, and I think it should compile correctly, but I don't know - LL| |// what affect it might have on diagnostic messages from the compiler, and whether anyone would care - LL| |// if the indentation changed. I don't know if there is a more viable solution. - diff --git a/tests/run-coverage-rustdoc/doctest.rs b/tests/run-coverage-rustdoc/doctest.rs deleted file mode 100644 index 4006d723c..000000000 --- a/tests/run-coverage-rustdoc/doctest.rs +++ /dev/null @@ -1,101 +0,0 @@ -// aux-build:doctest_crate.rs - -//! This test ensures that code from doctests is properly re-mapped. -//! See <https://github.com/rust-lang/rust/issues/79417> for more info. -//! -//! Just some random code: -//! ``` -//! if true { -//! // this is executed! -//! assert_eq!(1, 1); -//! } else { -//! // this is not! -//! assert_eq!(1, 2); -//! } -//! ``` -//! -//! doctest testing external code: -//! ``` -//! extern crate doctest_crate; -//! doctest_crate::fn_run_in_doctests(1); -//! ``` -//! -//! doctest returning a result: -//! ``` -//! #[derive(Debug, PartialEq)] -//! struct SomeError { -//! msg: String, -//! } -//! let mut res = Err(SomeError { msg: String::from("a message") }); -//! if res.is_ok() { -//! res?; -//! } else { -//! if *res.as_ref().unwrap_err() == *res.as_ref().unwrap_err() { -//! println!("{:?}", res); -//! } -//! if *res.as_ref().unwrap_err() == *res.as_ref().unwrap_err() { -//! res = Ok(1); -//! } -//! res = Ok(0); -//! } -//! // need to be explicit because rustdoc cant infer the return type -//! Ok::<(), SomeError>(()) -//! ``` -//! -//! doctest with custom main: -//! ``` -//! fn some_func() { -//! println!("called some_func()"); -//! } -//! -//! #[derive(Debug)] -//! struct SomeError; -//! -//! extern crate doctest_crate; -//! -//! fn doctest_main() -> Result<(), SomeError> { -//! some_func(); -//! doctest_crate::fn_run_in_doctests(2); -//! Ok(()) -//! } -//! -//! // this `main` is not shown as covered, as it clashes with all the other -//! // `main` functions that were automatically generated for doctests -//! fn main() -> Result<(), SomeError> { -//! doctest_main() -//! } -//! ``` - -/// doctest attached to fn testing external code: -/// ``` -/// extern crate doctest_crate; -/// doctest_crate::fn_run_in_doctests(3); -/// ``` -/// -fn main() { - if true { - assert_eq!(1, 1); - } else { - assert_eq!(1, 2); - } -} - -// FIXME(Swatinem): Fix known issue that coverage code region columns need to be offset by the -// doc comment line prefix (`///` or `//!`) and any additional indent (before or after the doc -// comment characters). This test produces `llvm-cov show` results demonstrating the problem. -// -// One of the above tests now includes: `derive(Debug, PartialEq)`, producing an `llvm-cov show` -// result with a distinct count for `Debug`, denoted by `^1`, but the caret points to the wrong -// column. Similarly, the `if` blocks without `else` blocks show `^0`, which should point at, or -// one character past, the `if` block's closing brace. In both cases, these are most likely off -// by the number of characters stripped from the beginning of each doc comment line: indent -// whitespace, if any, doc comment prefix (`//!` in this case) and (I assume) one space character -// (?). Note, when viewing `llvm-cov show` results in `--color` mode, the column offset errors are -// more pronounced, and show up in more places, with background color used to show some distinct -// code regions with different coverage counts. -// -// NOTE: Since the doc comment line prefix may vary, one possible solution is to replace each -// character stripped from the beginning of doc comment lines with a space. This will give coverage -// results the correct column offsets, and I think it should compile correctly, but I don't know -// what affect it might have on diagnostic messages from the compiler, and whether anyone would care -// if the indentation changed. I don't know if there is a more viable solution. |