about summary refs log tree commit diff
diff options
context:
space:
mode:
author许杰友 Jieyou Xu (Joe) <jieyouxu@outlook.com>2024-09-23 07:54:31 +0000
committer许杰友 Jieyou Xu (Joe) <39484203+jieyouxu@users.noreply.github.com>2024-09-24 19:04:51 +0800
commitf5482167286424fd25266d8202e8ded6655cc9ec (patch)
tree44090db9d22aa64f0136b8d11239709c9f44ebdd
parent53897921bdd74979ecd7b0e3c649d8cddffeb783 (diff)
downloadrust-f5482167286424fd25266d8202e8ded6655cc9ec.tar.gz
rust-f5482167286424fd25266d8202e8ded6655cc9ec.zip
Update `run-make` tests to use `cargo` wrapper cmd
-rw-r--r--tests/run-make/compiler-builtins/rmake.rs56
-rw-r--r--tests/run-make/thumb-none-cortex-m/rmake.rs46
-rw-r--r--tests/run-make/thumb-none-qemu/rmake.rs53
3 files changed, 58 insertions, 97 deletions
diff --git a/tests/run-make/compiler-builtins/rmake.rs b/tests/run-make/compiler-builtins/rmake.rs
index daa12d2986e..10093db2258 100644
--- a/tests/run-make/compiler-builtins/rmake.rs
+++ b/tests/run-make/compiler-builtins/rmake.rs
@@ -15,46 +15,36 @@
 #![deny(warnings)]
 
 use std::collections::HashSet;
-use std::path::PathBuf;
 
 use run_make_support::object::read::Object;
 use run_make_support::object::read::archive::ArchiveFile;
 use run_make_support::object::{ObjectSection, ObjectSymbol, RelocationTarget};
 use run_make_support::rfs::{read, read_dir};
-use run_make_support::{cmd, env_var, object};
+use run_make_support::{cargo, object, path, target};
 
 fn main() {
-    let target_dir = PathBuf::from("target");
-    let target = env_var("TARGET");
-
-    println!("Testing compiler_builtins for {}", target);
-
-    let manifest_path = PathBuf::from("Cargo.toml");
-
-    let path = env_var("PATH");
-    let rustc = env_var("RUSTC");
-    let cargo = env_var("CARGO");
-    let mut cmd = cmd(cargo);
-    cmd.args(&[
-        "build",
-        "--manifest-path",
-        manifest_path.to_str().unwrap(),
-        "-Zbuild-std=core",
-        "--target",
-        &target,
-    ])
-    .env("PATH", path)
-    .env("RUSTC", rustc)
-    .env("RUSTFLAGS", "-Copt-level=0 -Cdebug-assertions=yes")
-    .env("CARGO_TARGET_DIR", &target_dir)
-    .env("RUSTC_BOOTSTRAP", "1")
-    // Visual Studio 2022 requires that the LIB env var be set so it can
-    // find the Windows SDK.
-    .env("LIB", std::env::var("LIB").unwrap_or_default());
-
-    cmd.run();
-
-    let rlibs_path = target_dir.join(target).join("debug").join("deps");
+    let target_dir = path("target");
+
+    println!("Testing compiler_builtins for {}", target());
+
+    cargo()
+        .args(&[
+            "build",
+            "--manifest-path",
+            "Cargo.toml",
+            "-Zbuild-std=core",
+            "--target",
+            &target(),
+        ])
+        .env("RUSTFLAGS", "-Copt-level=0 -Cdebug-assertions=yes")
+        .env("CARGO_TARGET_DIR", &target_dir)
+        .env("RUSTC_BOOTSTRAP", "1")
+        // Visual Studio 2022 requires that the LIB env var be set so it can
+        // find the Windows SDK.
+        .env("LIB", std::env::var("LIB").unwrap_or_default())
+        .run();
+
+    let rlibs_path = target_dir.join(target()).join("debug").join("deps");
     let compiler_builtins_rlib = read_dir(rlibs_path)
         .find_map(|e| {
             let path = e.unwrap().path();
diff --git a/tests/run-make/thumb-none-cortex-m/rmake.rs b/tests/run-make/thumb-none-cortex-m/rmake.rs
index 9112646290f..27afef874da 100644
--- a/tests/run-make/thumb-none-cortex-m/rmake.rs
+++ b/tests/run-make/thumb-none-cortex-m/rmake.rs
@@ -14,10 +14,7 @@
 
 //@ only-thumb
 
-use std::path::PathBuf;
-
-use run_make_support::rfs::create_dir;
-use run_make_support::{cmd, env_var, target};
+use run_make_support::{cargo, cmd, env, env_var, target};
 
 const CRATE: &str = "cortex-m";
 const CRATE_URL: &str = "https://github.com/rust-embedded/cortex-m";
@@ -28,32 +25,21 @@ fn main() {
     // See below link for git usage:
     // https://stackoverflow.com/questions/3489173#14091182
     cmd("git").args(["clone", CRATE_URL, CRATE]).run();
-    std::env::set_current_dir(CRATE).unwrap();
+    env::set_current_dir(CRATE);
     cmd("git").args(["reset", "--hard", CRATE_SHA1]).run();
 
-    let target_dir = PathBuf::from("target");
-    let manifest_path = PathBuf::from("Cargo.toml");
-
-    let path = env_var("PATH");
-    let rustc = env_var("RUSTC");
-    let cargo = env_var("CARGO");
-    // FIXME: extract cargo invocations to a proper command
-    // https://github.com/rust-lang/rust/issues/128734
-    let mut cmd = cmd(cargo);
-    cmd.args(&[
-        "build",
-        "--manifest-path",
-        manifest_path.to_str().unwrap(),
-        "-Zbuild-std=core",
-        "--target",
-        &target(),
-    ])
-    .env("PATH", path)
-    .env("RUSTC", rustc)
-    .env("CARGO_TARGET_DIR", &target_dir)
-    // Don't make lints fatal, but they need to at least warn
-    // or they break Cargo's target info parsing.
-    .env("RUSTFLAGS", "-Copt-level=0 -Cdebug-assertions=yes --cap-lints=warn");
-
-    cmd.run();
+    cargo()
+        .args(&[
+            "build",
+            "--manifest-path",
+            "Cargo.toml",
+            "-Zbuild-std=core",
+            "--target",
+            &target(),
+        ])
+        .env("CARGO_TARGET_DIR", "target")
+        // Don't make lints fatal, but they need to at least warn
+        // or they break Cargo's target info parsing.
+        .env("RUSTFLAGS", "-Copt-level=0 -Cdebug-assertions=yes --cap-lints=warn")
+        .run();
 }
diff --git a/tests/run-make/thumb-none-qemu/rmake.rs b/tests/run-make/thumb-none-qemu/rmake.rs
index d0f42bc8808..a505bb013f9 100644
--- a/tests/run-make/thumb-none-qemu/rmake.rs
+++ b/tests/run-make/thumb-none-qemu/rmake.rs
@@ -14,49 +14,34 @@
 //!
 //! FIXME: https://github.com/rust-lang/rust/issues/128733 this test uses external
 //! dependencies, and needs an active internet connection
-//!
-//! FIXME: https://github.com/rust-lang/rust/issues/128734 extract bootstrap cargo
-//! to a proper command
 
 //@ only-thumb
 
 use std::path::PathBuf;
 
-use run_make_support::{cmd, env_var, path_helpers, target};
+use run_make_support::{cargo, cmd, env_var, path, target};
 
 const CRATE: &str = "example";
 
 fn main() {
     std::env::set_current_dir(CRATE).unwrap();
 
-    let bootstrap_cargo = env_var("BOOTSTRAP_CARGO");
-    let path = env_var("PATH");
-    let rustc = env_var("RUSTC");
-
-    let target_dir = path_helpers::path("target");
-    let manifest_path = path_helpers::path("Cargo.toml");
-
-    let debug = {
-        let mut cmd = cmd(&bootstrap_cargo);
-        cmd.args(&["run", "--target", &target()])
-            .env("RUSTFLAGS", "-C linker=arm-none-eabi-ld -C link-arg=-Tlink.x")
-            .env("CARGO_TARGET_DIR", &target_dir)
-            .env("PATH", &path)
-            .env("RUSTC", &rustc);
-        cmd.run()
-    };
-
-    debug.assert_stdout_contains("x = 42");
-
-    let release = {
-        let mut cmd = cmd(&bootstrap_cargo);
-        cmd.args(&["run", "--release", "--target", &target()])
-            .env("RUSTFLAGS", "-C linker=arm-none-eabi-ld -C link-arg=-Tlink.x")
-            .env("CARGO_TARGET_DIR", &target_dir)
-            .env("PATH", &path)
-            .env("RUSTC", &rustc);
-        cmd.run()
-    };
-
-    release.assert_stdout_contains("x = 42");
+    let target_dir = path("target");
+    let manifest_path = path("Cargo.toml");
+
+    // Debug
+    cargo()
+        .args(&["run", "--target", &target()])
+        .env("RUSTFLAGS", "-C linker=arm-none-eabi-ld -C link-arg=-Tlink.x")
+        .env("CARGO_TARGET_DIR", &target_dir)
+        .run()
+        .assert_stdout_contains("x = 42");
+
+    // Release
+    cargo()
+        .args(&["run", "--release", "--target", &target()])
+        .env("RUSTFLAGS", "-C linker=arm-none-eabi-ld -C link-arg=-Tlink.x")
+        .env("CARGO_TARGET_DIR", &target_dir)
+        .run()
+        .assert_stdout_contains("x = 42");
 }