Migrate run-make/rustdoc-verify-output-files
to rmake.rs
This commit is contained in:
parent
f0ab814aec
commit
bdf3864d51
@ -227,7 +227,6 @@ run-make/rlib-format-packed-bundled-libs/Makefile
|
|||||||
run-make/rmeta-preferred/Makefile
|
run-make/rmeta-preferred/Makefile
|
||||||
run-make/rustc-macro-dep-files/Makefile
|
run-make/rustc-macro-dep-files/Makefile
|
||||||
run-make/rustdoc-io-error/Makefile
|
run-make/rustdoc-io-error/Makefile
|
||||||
run-make/rustdoc-verify-output-files/Makefile
|
|
||||||
run-make/sanitizer-cdylib-link/Makefile
|
run-make/sanitizer-cdylib-link/Makefile
|
||||||
run-make/sanitizer-dylib-link/Makefile
|
run-make/sanitizer-dylib-link/Makefile
|
||||||
run-make/sanitizer-staticlib-link/Makefile
|
run-make/sanitizer-staticlib-link/Makefile
|
||||||
|
@ -1,32 +0,0 @@
|
|||||||
include ../tools.mk
|
|
||||||
|
|
||||||
OUTPUT_DIR := "$(TMPDIR)/rustdoc"
|
|
||||||
TMP_OUTPUT_DIR := "$(TMPDIR)/tmp-rustdoc"
|
|
||||||
|
|
||||||
all:
|
|
||||||
# Generate html docs
|
|
||||||
$(RUSTDOC) src/lib.rs --crate-name foobar --crate-type lib --out-dir $(OUTPUT_DIR)
|
|
||||||
|
|
||||||
# Copy first output for to check if it's exactly same after second compilation
|
|
||||||
cp -R $(OUTPUT_DIR) $(TMP_OUTPUT_DIR)
|
|
||||||
|
|
||||||
# Generate html docs once again on same output
|
|
||||||
$(RUSTDOC) src/lib.rs --crate-name foobar --crate-type lib --out-dir $(OUTPUT_DIR)
|
|
||||||
|
|
||||||
# Check if everything exactly same
|
|
||||||
$(DIFF) -r $(OUTPUT_DIR) $(TMP_OUTPUT_DIR)
|
|
||||||
|
|
||||||
# Generate json doc on the same output
|
|
||||||
$(RUSTDOC) src/lib.rs --crate-name foobar --crate-type lib --out-dir $(OUTPUT_DIR) -Z unstable-options --output-format json
|
|
||||||
|
|
||||||
# Check if expected json file is generated
|
|
||||||
[ -e $(OUTPUT_DIR)/foobar.json ]
|
|
||||||
|
|
||||||
# Copy first json output to check if it's exactly same after second compilation
|
|
||||||
cp -R $(OUTPUT_DIR)/foobar.json $(TMP_OUTPUT_DIR)/foobar.json
|
|
||||||
|
|
||||||
# Generate json doc on the same output
|
|
||||||
$(RUSTDOC) src/lib.rs --crate-name foobar --crate-type lib --out-dir $(OUTPUT_DIR) -Z unstable-options --output-format json
|
|
||||||
|
|
||||||
# Check if all docs(including both json and html formats) are still the same after multiple compilations
|
|
||||||
$(DIFF) -r $(OUTPUT_DIR) $(TMP_OUTPUT_DIR)
|
|
49
tests/run-make/rustdoc-verify-output-files/rmake.rs
Normal file
49
tests/run-make/rustdoc-verify-output-files/rmake.rs
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
use std::fs::copy;
|
||||||
|
use std::path::{Path, PathBuf};
|
||||||
|
|
||||||
|
use run_make_support::{copy_dir_all, recursive_diff, rustdoc, tmp_dir};
|
||||||
|
|
||||||
|
#[derive(PartialEq)]
|
||||||
|
enum JsonOutput {
|
||||||
|
Yes,
|
||||||
|
No,
|
||||||
|
}
|
||||||
|
|
||||||
|
fn generate_docs(out_dir: &Path, json_output: JsonOutput) {
|
||||||
|
let mut rustdoc = rustdoc();
|
||||||
|
rustdoc.input("src/lib.rs").crate_name("foobar").crate_type("lib").out_dir(&out_dir);
|
||||||
|
if json_output == JsonOutput::Yes {
|
||||||
|
rustdoc.arg("-Zunstable-options").output_format("json");
|
||||||
|
}
|
||||||
|
rustdoc.run();
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
let out_dir = tmp_dir().join("rustdoc");
|
||||||
|
let tmp_out_dir = tmp_dir().join("tmp-rustdoc");
|
||||||
|
|
||||||
|
// Generate HTML docs.
|
||||||
|
generate_docs(&out_dir, JsonOutput::No);
|
||||||
|
|
||||||
|
// Copy first output for to check if it's exactly same after second compilation.
|
||||||
|
copy_dir_all(&out_dir, &tmp_out_dir);
|
||||||
|
|
||||||
|
// Generate html docs once again on same output.
|
||||||
|
generate_docs(&out_dir, JsonOutput::No);
|
||||||
|
|
||||||
|
// Generate json doc on the same output.
|
||||||
|
generate_docs(&out_dir, JsonOutput::Yes);
|
||||||
|
|
||||||
|
// Check if expected json file is generated.
|
||||||
|
assert!(out_dir.join("foobar.json").is_file());
|
||||||
|
|
||||||
|
// Copy first json output to check if it's exactly same after second compilation.
|
||||||
|
copy(out_dir.join("foobar.json"), tmp_out_dir.join("foobar.json")).unwrap();
|
||||||
|
|
||||||
|
// Generate json doc on the same output.
|
||||||
|
generate_docs(&out_dir, JsonOutput::Yes);
|
||||||
|
|
||||||
|
// Check if all docs(including both json and html formats) are still the same after multiple
|
||||||
|
// compilations.
|
||||||
|
recursive_diff(&out_dir, &tmp_out_dir);
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user