From bed54cf85457d76f479fcd406f07b39c5e8abb12 Mon Sep 17 00:00:00 2001 From: QuietMisdreavus Date: Fri, 28 Jun 2019 10:31:27 -0500 Subject: rustdoc: set cfg(doctest) when collecting doctests --- src/test/rustdoc-ui/cfg-test.rs | 10 ++++++++++ src/test/rustdoc-ui/cfg-test.stdout | 7 ++++--- src/test/rustdoc/cfg-doctest.rs | 8 ++++++++ src/test/ui/feature-gate/feature-gate-cfg_doctest.rs | 4 ++++ src/test/ui/feature-gate/feature-gate-cfg_doctest.stderr | 12 ++++++++++++ 5 files changed, 38 insertions(+), 3 deletions(-) create mode 100644 src/test/rustdoc/cfg-doctest.rs create mode 100644 src/test/ui/feature-gate/feature-gate-cfg_doctest.rs create mode 100644 src/test/ui/feature-gate/feature-gate-cfg_doctest.stderr (limited to 'src/test') diff --git a/src/test/rustdoc-ui/cfg-test.rs b/src/test/rustdoc-ui/cfg-test.rs index 4dcf512d286..5360354d77a 100644 --- a/src/test/rustdoc-ui/cfg-test.rs +++ b/src/test/rustdoc-ui/cfg-test.rs @@ -5,6 +5,8 @@ // Crates like core have doctests gated on `cfg(not(test))` so we need to make // sure `cfg(test)` is not active when running `rustdoc --test`. +#![feature(cfg_doctest)] + /// this doctest will be ignored: /// /// ``` @@ -20,3 +22,11 @@ pub struct Foo; /// ``` #[cfg(not(test))] pub struct Foo; + +/// this doctest will be tested, but will not appear in documentation: +/// +/// ``` +/// assert!(true) +/// ``` +#[cfg(doctest)] +pub struct Bar; diff --git a/src/test/rustdoc-ui/cfg-test.stdout b/src/test/rustdoc-ui/cfg-test.stdout index 67873870e89..de7e6097fb7 100644 --- a/src/test/rustdoc-ui/cfg-test.stdout +++ b/src/test/rustdoc-ui/cfg-test.stdout @@ -1,6 +1,7 @@ -running 1 test -test $DIR/cfg-test.rs - Foo (line 18) ... ok +running 2 tests +test $DIR/cfg-test.rs - Foo (line 20) ... ok +test $DIR/cfg-test.rs - Bar (line 28) ... ok -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out +test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out diff --git a/src/test/rustdoc/cfg-doctest.rs b/src/test/rustdoc/cfg-doctest.rs new file mode 100644 index 00000000000..fca6d1029f9 --- /dev/null +++ b/src/test/rustdoc/cfg-doctest.rs @@ -0,0 +1,8 @@ +#![feature(cfg_doctest)] + +// @!has cfg_doctest/struct.SomeStruct.html +// @!has cfg_doctest/index.html '//a/@href' 'struct.SomeStruct.html' + +/// Sneaky, this isn't actually part of docs. +#[cfg(doctest)] +pub struct SomeStruct; diff --git a/src/test/ui/feature-gate/feature-gate-cfg_doctest.rs b/src/test/ui/feature-gate/feature-gate-cfg_doctest.rs new file mode 100644 index 00000000000..308f68bd52a --- /dev/null +++ b/src/test/ui/feature-gate/feature-gate-cfg_doctest.rs @@ -0,0 +1,4 @@ +#[cfg(doctest)] //~ ERROR +pub struct SomeStruct; + +fn main() {} diff --git a/src/test/ui/feature-gate/feature-gate-cfg_doctest.stderr b/src/test/ui/feature-gate/feature-gate-cfg_doctest.stderr new file mode 100644 index 00000000000..aa1d18a6f75 --- /dev/null +++ b/src/test/ui/feature-gate/feature-gate-cfg_doctest.stderr @@ -0,0 +1,12 @@ +error[E0658]: `cfg(doctest)` is experimental and subject to change + --> $DIR/feature-gate-cfg_doctest.rs:1:7 + | +LL | #[cfg(doctest)] + | ^^^^^^^ + | + = note: for more information, see https://github.com/rust-lang/rust/issues/62210 + = help: add #![feature(cfg_doctest)] to the crate attributes to enable + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0658`. -- cgit 1.4.1-3-g733a5