From c87ae947ebdc868825f9ba23f45ec1a4878be996 Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Wed, 15 May 2024 11:46:04 +0200 Subject: [PATCH 1/2] Add new `htmldocck` function to `run-make-support` --- src/tools/run-make-support/src/lib.rs | 6 ++++++ .../run-make/rustdoc-scrape-examples-ordering/rmake.rs | 10 ++-------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/tools/run-make-support/src/lib.rs b/src/tools/run-make-support/src/lib.rs index cc81d23a8ff01..5295388d02cab 100644 --- a/src/tools/run-make-support/src/lib.rs +++ b/src/tools/run-make-support/src/lib.rs @@ -59,6 +59,12 @@ pub fn python_command() -> Command { Command::new(python_path) } +pub fn htmldocck() -> Command { + let mut python = python_command(); + python.arg(source_path().join("/src/etc/htmldocck.py")); + python +} + pub fn source_path() -> PathBuf { std::env::var("S").expect("S variable does not exist").into() } diff --git a/tests/run-make/rustdoc-scrape-examples-ordering/rmake.rs b/tests/run-make/rustdoc-scrape-examples-ordering/rmake.rs index edcf3406d47f8..08ca9ce5de817 100644 --- a/tests/run-make/rustdoc-scrape-examples-ordering/rmake.rs +++ b/tests/run-make/rustdoc-scrape-examples-ordering/rmake.rs @@ -1,4 +1,4 @@ -use run_make_support::{python_command, rustc, rustdoc, source_path, tmp_dir}; +use run_make_support::{htmldocck, rustc, rustdoc, source_path, tmp_dir}; use std::fs::read_dir; use std::path::Path; @@ -45,11 +45,5 @@ fn main() { } rustdoc.run(); - python_command() - .arg(source_path().join("/src/etc/htmldocck.py")) - .arg(out_dir) - .arg("src/lib.rs") - .status() - .unwrap() - .success(); + htmldocck().arg(out_dir).arg("src/lib.rs").status().unwrap().success(); } From c765480efedc191736587b3b890c362b8faa7fa7 Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Wed, 15 May 2024 11:46:25 +0200 Subject: [PATCH 2/2] Migrate `run-make/rustdoc-themes` to new rmake --- .../tidy/src/allowed_run_make_makefiles.txt | 1 - tests/run-make/rustdoc-themes/Makefile | 11 ------- tests/run-make/rustdoc-themes/rmake.rs | 31 +++++++++++++++++++ 3 files changed, 31 insertions(+), 12 deletions(-) delete mode 100644 tests/run-make/rustdoc-themes/Makefile create mode 100644 tests/run-make/rustdoc-themes/rmake.rs diff --git a/src/tools/tidy/src/allowed_run_make_makefiles.txt b/src/tools/tidy/src/allowed_run_make_makefiles.txt index 5f68f779c4eb0..74aa8fe5949b8 100644 --- a/src/tools/tidy/src/allowed_run_make_makefiles.txt +++ b/src/tools/tidy/src/allowed_run_make_makefiles.txt @@ -246,7 +246,6 @@ 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-themes/Makefile run-make/rustdoc-verify-output-files/Makefile run-make/rustdoc-with-out-dir-option/Makefile run-make/rustdoc-with-output-option/Makefile diff --git a/tests/run-make/rustdoc-themes/Makefile b/tests/run-make/rustdoc-themes/Makefile deleted file mode 100644 index a4980eb0b3e4d..0000000000000 --- a/tests/run-make/rustdoc-themes/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -include ../tools.mk - -# Test that rustdoc will properly load in a theme file and display it in the theme selector. - -OUTPUT_DIR := "$(TMPDIR)/rustdoc-themes" - -all: - awk '/Begin theme: light/ {in_theme=1;next} /End theme:/ {in_theme=0} { if (in_theme) print }' \ - < '$(S)/src/librustdoc/html/static/css/noscript.css' > '$(TMPDIR)/test.css' - $(RUSTDOC) -o $(OUTPUT_DIR) foo.rs --theme $(TMPDIR)/test.css - $(HTMLDOCCK) $(OUTPUT_DIR) foo.rs diff --git a/tests/run-make/rustdoc-themes/rmake.rs b/tests/run-make/rustdoc-themes/rmake.rs new file mode 100644 index 0000000000000..1d7dfe6bb2a09 --- /dev/null +++ b/tests/run-make/rustdoc-themes/rmake.rs @@ -0,0 +1,31 @@ +// Test that rustdoc will properly load in a theme file and display it in the theme selector. + +use run_make_support::{htmldocck, rustdoc, source_path, tmp_dir}; + +fn main() { + let out_dir = tmp_dir().join("rustdoc-themes"); + let test_css = out_dir.join("test.css"); + + let no_script = + std::fs::read_to_string(source_path().join("src/librustdoc/html/static/css/noscript.css")) + .unwrap(); + + let mut test_content = String::new(); + let mut found_begin_light = false; + for line in no_script.split('\n') { + if line == "/* Begin theme: light */" { + found_begin_light = true; + } else if line == "/* End theme: light */" { + break; + } else if found_begin_light { + test_content.push_str(line); + test_content.push('\n'); + } + } + assert!(!test_content.is_empty()); + std::fs::create_dir_all(&out_dir).unwrap(); + std::fs::write(&test_css, test_content).unwrap(); + + rustdoc().output(&out_dir).input("foo.rs").arg("--theme").arg(&test_css).run(); + htmldocck().arg(out_dir).arg("foo.rs").status().unwrap().success(); +}