Skip to content

Commit

Permalink
Auto merge of #125207 - GuillaumeGomez:migrate-rustdoc-scrape-example…
Browse files Browse the repository at this point in the history
…s-ordering, r=jieyouxu

Migrate `run-make/rustdoc-scrape-examples-remap` to `rmake.rs`

Part of #121876.

r? `@jieyouxu`
  • Loading branch information
bors committed May 17, 2024
2 parents ddba1dc + 272fc89 commit 550d1b4
Show file tree
Hide file tree
Showing 5 changed files with 57 additions and 52 deletions.
1 change: 0 additions & 1 deletion src/tools/tidy/src/allowed_run_make_makefiles.txt
Original file line number Diff line number Diff line change
Expand Up @@ -239,7 +239,6 @@ run-make/rustdoc-io-error/Makefile
run-make/rustdoc-scrape-examples-invalid-expr/Makefile
run-make/rustdoc-scrape-examples-macros/Makefile
run-make/rustdoc-scrape-examples-multiple/Makefile
run-make/rustdoc-scrape-examples-remap/Makefile
run-make/rustdoc-scrape-examples-test/Makefile
run-make/rustdoc-scrape-examples-whitespace/Makefile
run-make/rustdoc-verify-output-files/Makefile
Expand Down
49 changes: 3 additions & 46 deletions tests/run-make/rustdoc-scrape-examples-ordering/rmake.rs
Original file line number Diff line number Diff line change
@@ -1,49 +1,6 @@
use run_make_support::{htmldocck, rustc, rustdoc, source_path, tmp_dir};
use std::fs::read_dir;
use std::path::Path;
#[path = "../rustdoc-scrape-examples-remap/scrape.rs"]
mod scrape;

fn main() {
let lib_dir = tmp_dir();
let out_dir = tmp_dir().join("rustdoc");
let crate_name = "foobar";
let deps = read_dir("examples")
.unwrap()
.filter_map(|entry| entry.ok().map(|e| e.path()))
.filter(|path| path.is_file() && path.extension().is_some_and(|ext| ext == "rs"))
.collect::<Vec<_>>();

rustc().input("src/lib.rs").crate_name(crate_name).crate_type("lib").emit("metadata").run();

let mut out_deps = Vec::with_capacity(deps.len());
for dep in deps {
let dep_stem = dep.file_stem().unwrap();
let out_example = out_dir.join(format!("{}.calls", dep_stem.to_str().unwrap()));
rustdoc()
.input(&dep)
.crate_name(&dep_stem)
.crate_type("bin")
.output(&out_dir)
.extern_(crate_name, lib_dir.join(format!("lib{crate_name}.rmeta")))
.arg("-Zunstable-options")
.arg("--scrape-examples-output-path")
.arg(&out_example)
.arg("--scrape-examples-target-crate")
.arg(crate_name)
.run();
out_deps.push(out_example);
}

let mut rustdoc = rustdoc();
rustdoc
.input("src/lib.rs")
.output(&out_dir)
.crate_name(crate_name)
.crate_type("lib")
.arg("-Zunstable-options");
for dep in out_deps {
rustdoc.arg("--with-examples").arg(dep);
}
rustdoc.run();

assert!(htmldocck().arg(out_dir).arg("src/lib.rs").status().unwrap().success());
scrape::scrape();
}
5 changes: 0 additions & 5 deletions tests/run-make/rustdoc-scrape-examples-remap/Makefile

This file was deleted.

5 changes: 5 additions & 0 deletions tests/run-make/rustdoc-scrape-examples-remap/rmake.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
mod scrape;

fn main() {
scrape::scrape();
}
49 changes: 49 additions & 0 deletions tests/run-make/rustdoc-scrape-examples-remap/scrape.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
use run_make_support::{htmldocck, rustc, rustdoc, source_path, tmp_dir};
use std::fs::read_dir;
use std::path::Path;

pub fn scrape() {
let lib_dir = tmp_dir();
let out_dir = tmp_dir().join("rustdoc");
let crate_name = "foobar";
let deps = read_dir("examples")
.unwrap()
.filter_map(|entry| entry.ok().map(|e| e.path()))
.filter(|path| path.is_file() && path.extension().is_some_and(|ext| ext == "rs"))
.collect::<Vec<_>>();

rustc().input("src/lib.rs").crate_name(crate_name).crate_type("lib").emit("metadata").run();

let mut out_deps = Vec::with_capacity(deps.len());
for dep in deps {
let dep_stem = dep.file_stem().unwrap();
let out_example = out_dir.join(format!("{}.calls", dep_stem.to_str().unwrap()));
rustdoc()
.input(&dep)
.crate_name(&dep_stem)
.crate_type("bin")
.output(&out_dir)
.extern_(crate_name, lib_dir.join(format!("lib{crate_name}.rmeta")))
.arg("-Zunstable-options")
.arg("--scrape-examples-output-path")
.arg(&out_example)
.arg("--scrape-examples-target-crate")
.arg(crate_name)
.run();
out_deps.push(out_example);
}

let mut rustdoc = rustdoc();
rustdoc
.input("src/lib.rs")
.output(&out_dir)
.crate_name(crate_name)
.crate_type("lib")
.arg("-Zunstable-options");
for dep in out_deps {
rustdoc.arg("--with-examples").arg(dep);
}
rustdoc.run();

assert!(htmldocck().arg(out_dir).arg("src/lib.rs").status().unwrap().success());
}

0 comments on commit 550d1b4

Please sign in to comment.