Reuse the workspace target for fixture builds

This commit is contained in:
2026-11-07 10:50:30 +00:00
parent b605717b4d
commit 44797f1302
4 changed files with 7 additions and 12 deletions
+1 -1
View File
@@ -79,4 +79,4 @@ It tests A, broken B, changed C, an old call across reload, a retained service h
It also tests the revert command, file operations, and exec environment options.
The world git and helper components use the executor's shared `CARGO_TARGET_DIR`.
The API and hook fixtures use that directory too.
The Nix shell overrides `CARGO_HOME`. Unset that variable before Cargo commands to preserve the configured kache wrapper.
The Nix shell preserves the user's Cargo configuration and its kache wrapper.
+2 -4
View File
@@ -28,9 +28,7 @@ impl Exec for Author {
#[tokio::test(flavor = "current_thread")]
async fn commits_and_restart() -> anyhow::Result<()> {
let userland = Path::new(env!("CARGO_MANIFEST_DIR")).join("../userland");
let target = std::env::var_os("CARGO_TARGET_DIR")
.map(std::path::PathBuf::from)
.expect("CARGO_TARGET_DIR must name the executor's shared target directory");
let target = Path::new(env!("CARGO_TARGET_TMPDIR")).parent().unwrap();
if !userland.join("cwd-init/init.o").is_file() {
assert!(
std::process::Command::new("nu")
@@ -53,7 +51,7 @@ async fn commits_and_restart() -> anyhow::Result<()> {
])
.arg(userland.join("Cargo.toml"))
.args(["--target", "wasm32-wasip2", "--target-dir"])
.arg(&target)
.arg(target)
.args(["-j", "2", "--locked"])
.current_dir(&userland)
.status()?
+2 -5
View File
@@ -24,10 +24,7 @@ fn git(cwd: &Path, args: &[&str]) {
async fn several_mb_git_push() {
static BUILT: OnceLock<std::path::PathBuf> = OnceLock::new();
let component = BUILT.get_or_init(|| {
let target = std::path::PathBuf::from(
std::env::var_os("CARGO_TARGET_DIR")
.expect("CARGO_TARGET_DIR must name the executor's shared target directory"),
);
let target = Path::new(env!("CARGO_TARGET_TMPDIR")).parent().unwrap();
let userland = Path::new(env!("CARGO_MANIFEST_DIR")).join("../userland");
if !userland.join("cwd-init/init.o").is_file() {
assert!(
@@ -46,7 +43,7 @@ async fn several_mb_git_push() {
.arg(manifest)
.current_dir(&userland)
.args(["--target", "wasm32-wasip2", "--target-dir"])
.arg(&target)
.arg(target)
.args(["-j", "2", "--locked"])
.status()
.unwrap()
+2 -2
View File
@@ -12,7 +12,7 @@ fn write(path: PathBuf, text: &str) -> std::io::Result<()> {
pub fn component() -> &'static Path {
static PATH: OnceLock<PathBuf> = OnceLock::new();
PATH.get_or_init(|| {
let target = PathBuf::from(std::env::var_os("CARGO_TARGET_DIR").expect("CARGO_TARGET_DIR must name the executor's shared target directory"));
let target = Path::new(env!("CARGO_TARGET_TMPDIR")).parent().unwrap();
let directory = Path::new(env!("CARGO_TARGET_TMPDIR")).join("hook-guest");
std::fs::create_dir_all(directory.join("src")).unwrap();
std::fs::create_dir_all(directory.join("wit/deps")).unwrap();
@@ -68,7 +68,7 @@ async fn main() -> anyhow::Result<()> {
Ok(())
}
"#).unwrap();
assert!(std::process::Command::new("cargo").args(["build", "--manifest-path"]).arg(directory.join("Cargo.toml")).args(["--target", "wasm32-wasip2", "--release", "-j", "2"]).env("CARGO_TARGET_DIR", &target).status().unwrap().success(), "test guest build failed");
assert!(std::process::Command::new("cargo").args(["build", "--manifest-path"]).arg(directory.join("Cargo.toml")).args(["--target", "wasm32-wasip2", "--release", "-j", "2"]).env("CARGO_TARGET_DIR", target).status().unwrap().success(), "test guest build failed");
target.join("wasm32-wasip2/release/hook-guest.wasm")
})
}