about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/librustdoc/config.rs5
-rw-r--r--src/librustdoc/test.rs1
-rw-r--r--src/test/rustdoc-ui/doc-test-doctest-feature.rs15
-rw-r--r--src/test/rustdoc-ui/doc-test-doctest-feature.stdout6
4 files changed, 23 insertions, 4 deletions
diff --git a/src/librustdoc/config.rs b/src/librustdoc/config.rs
index fe4e2bd0915..1c0d1b32737 100644
--- a/src/librustdoc/config.rs
+++ b/src/librustdoc/config.rs
@@ -343,10 +343,7 @@ impl Options {
         let output = matches.opt_str("o")
                             .map(|s| PathBuf::from(&s))
                             .unwrap_or_else(|| PathBuf::from("doc"));
-        let mut cfgs = matches.opt_strs("cfg");
-        if should_test {
-            cfgs.push("doctest".to_string());
-        }
+        let cfgs = matches.opt_strs("cfg");
 
         let extension_css = matches.opt_str("e").map(|s| PathBuf::from(&s));
 
diff --git a/src/librustdoc/test.rs b/src/librustdoc/test.rs
index 3e77ca47e8a..6f805a949af 100644
--- a/src/librustdoc/test.rs
+++ b/src/librustdoc/test.rs
@@ -64,6 +64,7 @@ pub fn run(options: Options) -> i32 {
 
     let mut cfgs = options.cfgs.clone();
     cfgs.push("rustdoc".to_owned());
+    cfgs.push("doctest".to_owned());
     let config = interface::Config {
         opts: sessopts,
         crate_cfg: config::parse_cfgspecs(cfgs),
diff --git a/src/test/rustdoc-ui/doc-test-doctest-feature.rs b/src/test/rustdoc-ui/doc-test-doctest-feature.rs
new file mode 100644
index 00000000000..984d49b43ef
--- /dev/null
+++ b/src/test/rustdoc-ui/doc-test-doctest-feature.rs
@@ -0,0 +1,15 @@
+// build-pass
+// compile-flags:--test
+// normalize-stdout-test: "src/test/rustdoc-ui" -> "$$DIR"
+
+#![feature(cfg_doctest)]
+
+// Make sure `cfg(doctest)` is set when finding doctests but not inside
+// the doctests.
+
+/// ```
+/// #![feature(cfg_doctest)]
+/// assert!(!cfg!(doctest));
+/// ```
+#[cfg(doctest)]
+pub struct Foo;
diff --git a/src/test/rustdoc-ui/doc-test-doctest-feature.stdout b/src/test/rustdoc-ui/doc-test-doctest-feature.stdout
new file mode 100644
index 00000000000..75d29fab17d
--- /dev/null
+++ b/src/test/rustdoc-ui/doc-test-doctest-feature.stdout
@@ -0,0 +1,6 @@
+
+running 1 test
+test $DIR/doc-test-doctest-feature.rs - Foo (line 10) ... ok
+
+test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
+