aboutsummaryrefslogtreecommitdiff
path: root/dev_tools/src/bin/test-all-markdown-code.rs
diff options
context:
space:
mode:
author魏曹先生 <1992414357@qq.com>2026-06-29 04:44:25 +0800
committer魏曹先生 <1992414357@qq.com>2026-06-29 04:44:25 +0800
commit1acf750860422567732557f7382d91b0d1a50d15 (patch)
tree3e442e28f87b2028563cdf20dd31cb6c2820965a /dev_tools/src/bin/test-all-markdown-code.rs
parent07bf5bb372fc94f346b039ad9eecfb64c8a1ff46 (diff)
feat(verify): support build-time Rust code blocks in markdown tests
Handle code blocks annotated with `// BUILD TIME` by generating a `build.rs` instead of `src/main.rs`, adding `mingling` as a build dependency with the `builds` feature, and writing a stub main.rs
Diffstat (limited to 'dev_tools/src/bin/test-all-markdown-code.rs')
-rw-r--r--dev_tools/src/bin/test-all-markdown-code.rs19
1 files changed, 15 insertions, 4 deletions
diff --git a/dev_tools/src/bin/test-all-markdown-code.rs b/dev_tools/src/bin/test-all-markdown-code.rs
index a1acb22..280fca7 100644
--- a/dev_tools/src/bin/test-all-markdown-code.rs
+++ b/dev_tools/src/bin/test-all-markdown-code.rs
@@ -5,8 +5,8 @@ use std::path::{Path, PathBuf};
use colored::Colorize;
use indicatif::ProgressBar;
use tools::verify::{
- build_block, compute_block_hash, generate_cargo_toml, generate_main_rs, is_block_testable,
- parse_code_blocks, write_summary_report,
+ build_block, compute_block_hash, generate_cargo_toml, generate_main_rs, generate_build_rs,
+ is_block_testable, parse_code_blocks, write_summary_report,
};
use tools::{eprintln_cargo_style, println_cargo_style};
@@ -184,8 +184,19 @@ async fn main() {
bar.set_message(block_label.clone());
- let main_rs = generate_main_rs(block);
- let (ok, err) = build_block(&src_dir, &manifest_path, &cargo_toml, &main_rs);
+ let main_rs = if block.is_build_time {
+ // For build-time blocks, write a stub main.rs and generate build.rs
+ generate_build_rs(block)
+ } else {
+ generate_main_rs(block)
+ };
+ let (ok, err) = build_block(
+ &src_dir,
+ &manifest_path,
+ &cargo_toml,
+ &main_rs,
+ block.is_build_time,
+ );
if ok {
bar.inc(1);
} else {