Rollup merge of #125142 - GuillaumeGomez:migrate-rustdoc-themes, r=jieyouxu

Migrate `run-make/rustdoc-themes` to new rmake.rs

Part of https://github.com/rust-lang/rust/issues/121876.

r? `@jieyouxu`
This commit is contained in:
León Orell Valerian Liehr 2024-05-15 22:01:19 +02:00 committed by GitHub
commit 80f991e09b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 39 additions and 20 deletions

View File

@ -64,6 +64,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()
}

View File

@ -243,7 +243,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

View File

@ -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();
}

View File

@ -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

View File

@ -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();
}