]> git.lizzy.rs Git - rust.git/blobdiff - src/librustdoc/test.rs
Rollup merge of #49188 - memoryleak47:macro_use_doctest, r=QuietMisdreavus
[rust.git] / src / librustdoc / test.rs
index 707d5a12bbf9f53df8f6adf9f353df25eda30991..3ce8bd4ebb4c1002f70e891ff7cd78930f6c924a 100644 (file)
@@ -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;
@@ -827,6 +828,24 @@ fn main() {
         assert_eq!(output, (expected, 2));
     }
 
+    #[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