about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbinarycat <binarycat@envs.net>2025-09-11 12:47:22 -0500
committerbinarycat <binarycat@envs.net>2025-09-11 12:47:22 -0500
commit472721b34f73e7a5e6870c9443c35e3ab29958d9 (patch)
treec855ae90a1b3de087521302eb443984d3077eb2e
parent76c5ed2847cdb26ef2822a3a165d710f6b772217 (diff)
downloadrust-472721b34f73e7a5e6870c9443c35e3ab29958d9.tar.gz
rust-472721b34f73e7a5e6870c9443c35e3ab29958d9.zip
bootstrap: rustdoc-js tests can now be filtered by js files
-rw-r--r--src/bootstrap/src/core/build_steps/test.rs16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/bootstrap/src/core/build_steps/test.rs b/src/bootstrap/src/core/build_steps/test.rs
index 4f839bdf7b8..723ba80eaf8 100644
--- a/src/bootstrap/src/core/build_steps/test.rs
+++ b/src/bootstrap/src/core/build_steps/test.rs
@@ -2086,11 +2086,25 @@ HELP: You can add it into `bootstrap.toml` in `rust.codegen-backends = [{name:?}
         }
 
         // Get paths from cmd args
-        let paths = match &builder.config.cmd {
+        let mut paths = match &builder.config.cmd {
             Subcommand::Test { .. } => &builder.config.paths[..],
             _ => &[],
         };
 
+        // in rustdoc-js mode, allow filters to be rs files or js files.
+        // use a late-initialized Vec to avoid cloning for other modes.
+        let mut paths_v;
+        if mode == "rustdoc-js" {
+            paths_v = paths.to_vec();
+            for p in &mut paths_v {
+                if let Some(ext) = p.extension()
+                    && ext == "js"
+                {
+                    p.set_extension("rs");
+                }
+            }
+            paths = &paths_v;
+        }
         // Get test-args by striping suite path
         let mut test_args: Vec<&str> = paths
             .iter()