| use std::path::Path; |
| |
| use run_make_support::{cwd, diff, rustc, rustdoc}; |
| |
| fn test_and_compare(input_file: &str, stdout_file: &str, edition: &str, dep: &Path) { |
| let mut cmd = rustdoc(); |
| |
| let output = cmd |
| .input(input_file) |
| .arg("--test") |
| .arg("-Zunstable-options") |
| .edition(edition) |
| .arg("--test-args=--test-threads=1") |
| .extern_("foo", dep.display().to_string()) |
| .env("RUST_BACKTRACE", "short") |
| .run(); |
| |
| diff() |
| .expected_file(stdout_file) |
| .actual_text("output", output.stdout_utf8()) |
| .normalize(r#"finished in \d+\.\d+s"#, "finished in $$TIME") |
| .run(); |
| } |
| |
| fn main() { |
| let out_file = cwd().join("libfoo.rlib"); |
| |
| rustc().input("doctest.rs").crate_type("rlib").output(&out_file).run(); |
| |
| // First we ensure that running with the 2024 edition will not fail at runtime. |
| test_and_compare("doctest.rs", "doctest-2024.stdout", "2024", &out_file); |
| |
| // Then we ensure that running with an edition < 2024 will not fail at runtime. |
| test_and_compare("doctest.rs", "doctest-2021.stdout", "2021", &out_file); |
| |
| // Now we check with the standalone attribute which should succeed in all cases. |
| test_and_compare("doctest-standalone.rs", "doctest-standalone.stdout", "2024", &out_file); |
| test_and_compare("doctest-standalone.rs", "doctest-standalone.stdout", "2021", &out_file); |
| } |