about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/librustdoc/test.rs19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/librustdoc/test.rs b/src/librustdoc/test.rs
index 707d5a12bbf..3ce8bd4ebb4 100644
--- a/src/librustdoc/test.rs
+++ b/src/librustdoc/test.rs
@@ -416,6 +416,7 @@ fn partition_source(s: &str) -> (String, String) {
         let trimline = line.trim();
         let header = trimline.is_whitespace() ||
             trimline.starts_with("#![") ||
+            trimline.starts_with("#[macro_use] extern crate") ||
             trimline.starts_with("extern crate");
         if !header || after_header {
             after_header = true;
@@ -828,6 +829,24 @@ assert_eq!(2+2, 4);
     }
 
     #[test]
+    fn make_test_manual_extern_crate_with_macro_use() {
+        let opts = TestOptions::default();
+        let input =
+"#[macro_use] extern crate asdf;
+use asdf::qwop;
+assert_eq!(2+2, 4);";
+        let expected =
+"#![allow(unused)]
+#[macro_use] extern crate asdf;
+fn main() {
+use asdf::qwop;
+assert_eq!(2+2, 4);
+}".to_string();
+        let output = make_test(input, Some("asdf"), false, &opts);
+        assert_eq!(output, (expected, 2));
+    }
+
+    #[test]
     fn make_test_opts_attrs() {
         //if you supplied some doctest attributes with #![doc(test(attr(...)))], it will use those
         //instead of the stock #![allow(unused)]