mirror of
https://github.com/rust-lang/cargo.git
synced 2026-03-09 19:29:05 +00:00
feat: Split build-dir lock into dedicated .cargo-build-lock
This commit seperates the `build-dir` and `artifact-dir` locks so that an exclusive lock on `artifact-dir` does not force an exclusive lock on `build-dir` and vise-versa. The motivation of this change is for fine grain locking to work even when `build-dir` == `artifact-dir`
This commit is contained in:
parent
708100e0d0
commit
e4d8f88ac1
@ -258,25 +258,19 @@ impl Layout {
|
||||
// actual destination (sub)subdirectory.
|
||||
paths::create_dir_all(dest.as_path_unlocked())?;
|
||||
|
||||
// We always need to take the build-dir lock but if the build-dir == artifact-dir then we
|
||||
// only take the artifact-dir. (locking both as they are the same dir)
|
||||
// However we need to take into account that for some builds like `cargo check` we avoid
|
||||
// locking the artifact-dir. We still need to lock the build-dir to avoid file corruption.
|
||||
let build_dir_lock = if (must_take_artifact_dir_lock && root == build_root)
|
||||
|| is_on_nfs_mount(build_root.as_path_unlocked())
|
||||
{
|
||||
let build_dir_lock = if is_on_nfs_mount(build_root.as_path_unlocked()) {
|
||||
None
|
||||
} else {
|
||||
if ws.gctx().cli_unstable().fine_grain_locking && !must_take_build_dir_lock_exclusively
|
||||
{
|
||||
Some(build_dest.open_ro_shared_create(
|
||||
".cargo-lock",
|
||||
".cargo-build-lock",
|
||||
ws.gctx(),
|
||||
"build directory",
|
||||
)?)
|
||||
} else {
|
||||
Some(build_dest.open_rw_exclusive_create(
|
||||
".cargo-lock",
|
||||
".cargo-build-lock",
|
||||
ws.gctx(),
|
||||
"build directory",
|
||||
)?)
|
||||
|
||||
@ -39,7 +39,7 @@ fn binary_with_debug() {
|
||||
p.root().join("build-dir").assert_build_dir_layout(str![[r#"
|
||||
[ROOT]/foo/build-dir/.rustc_info.json
|
||||
[ROOT]/foo/build-dir/CACHEDIR.TAG
|
||||
[ROOT]/foo/build-dir/debug/.cargo-lock
|
||||
[ROOT]/foo/build-dir/debug/.cargo-build-lock
|
||||
[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/bin-foo
|
||||
[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/bin-foo.json
|
||||
[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/dep-bin-foo
|
||||
@ -94,7 +94,7 @@ fn binary_with_release() {
|
||||
p.root().join("build-dir").assert_build_dir_layout(str![[r#"
|
||||
[ROOT]/foo/build-dir/.rustc_info.json
|
||||
[ROOT]/foo/build-dir/CACHEDIR.TAG
|
||||
[ROOT]/foo/build-dir/release/.cargo-lock
|
||||
[ROOT]/foo/build-dir/release/.cargo-build-lock
|
||||
[ROOT]/foo/build-dir/release/build/foo/[HASH]/fingerprint/bin-foo
|
||||
[ROOT]/foo/build-dir/release/build/foo/[HASH]/fingerprint/bin-foo.json
|
||||
[ROOT]/foo/build-dir/release/build/foo/[HASH]/fingerprint/dep-bin-foo
|
||||
@ -205,6 +205,7 @@ fn should_default_to_target() {
|
||||
[ROOT]/foo/target/.rustc_info.json
|
||||
[ROOT]/foo/target/CACHEDIR.TAG
|
||||
[ROOT]/foo/target/debug/.cargo-lock
|
||||
[ROOT]/foo/target/debug/.cargo-build-lock
|
||||
[ROOT]/foo/target/debug/build/foo/[HASH]/fingerprint/bin-foo
|
||||
[ROOT]/foo/target/debug/build/foo/[HASH]/fingerprint/bin-foo.json
|
||||
[ROOT]/foo/target/debug/build/foo/[HASH]/fingerprint/dep-bin-foo
|
||||
@ -233,7 +234,7 @@ fn should_respect_env_var() {
|
||||
p.root().join("build-dir").assert_build_dir_layout(str![[r#"
|
||||
[ROOT]/foo/build-dir/.rustc_info.json
|
||||
[ROOT]/foo/build-dir/CACHEDIR.TAG
|
||||
[ROOT]/foo/build-dir/debug/.cargo-lock
|
||||
[ROOT]/foo/build-dir/debug/.cargo-build-lock
|
||||
[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/bin-foo
|
||||
[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/bin-foo.json
|
||||
[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/dep-bin-foo
|
||||
@ -278,7 +279,7 @@ fn build_script_should_output_to_build_dir() {
|
||||
|
||||
p.root().join("build-dir").assert_build_dir_layout(str![[r#"
|
||||
[ROOT]/foo/build-dir/CACHEDIR.TAG
|
||||
[ROOT]/foo/build-dir/debug/.cargo-lock
|
||||
[ROOT]/foo/build-dir/debug/.cargo-build-lock
|
||||
[ROOT]/foo/build-dir/debug/build/foo/[HASH]/out/foo.txt
|
||||
[ROOT]/foo/build-dir/debug/build/foo/[HASH]/out/build_script_build[..].d
|
||||
[ROOT]/foo/build-dir/debug/build/foo/[HASH]/out/build_script_build[..][EXE]
|
||||
@ -341,7 +342,7 @@ fn cargo_tmpdir_should_output_to_build_dir() {
|
||||
|
||||
p.root().join("build-dir").assert_build_dir_layout(str![[r#"
|
||||
[ROOT]/foo/build-dir/CACHEDIR.TAG
|
||||
[ROOT]/foo/build-dir/debug/.cargo-lock
|
||||
[ROOT]/foo/build-dir/debug/.cargo-build-lock
|
||||
[ROOT]/foo/build-dir/debug/build/foo/[HASH]/out/foo-[HASH].d
|
||||
[ROOT]/foo/build-dir/debug/build/foo/[HASH]/out/foo.d
|
||||
[ROOT]/foo/build-dir/debug/build/foo/[HASH]/out/foo[..].d
|
||||
@ -401,7 +402,7 @@ fn examples_should_output_to_build_dir_and_uplift_to_target_dir() {
|
||||
p.root().join("build-dir").assert_build_dir_layout(str![[r#"
|
||||
[ROOT]/foo/build-dir/.rustc_info.json
|
||||
[ROOT]/foo/build-dir/CACHEDIR.TAG
|
||||
[ROOT]/foo/build-dir/debug/.cargo-lock
|
||||
[ROOT]/foo/build-dir/debug/.cargo-build-lock
|
||||
[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/dep-example-foo
|
||||
[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/example-foo
|
||||
[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/example-foo.json
|
||||
@ -447,7 +448,7 @@ fn benches_should_output_to_build_dir() {
|
||||
|
||||
p.root().join("build-dir").assert_build_dir_layout(str![[r#"
|
||||
[ROOT]/foo/build-dir/CACHEDIR.TAG
|
||||
[ROOT]/foo/build-dir/debug/.cargo-lock
|
||||
[ROOT]/foo/build-dir/debug/.cargo-build-lock
|
||||
[ROOT]/foo/build-dir/debug/build/foo/[HASH]/out/foo-[HASH].d
|
||||
[ROOT]/foo/build-dir/debug/build/foo/[HASH]/out/foo[..].d
|
||||
[ROOT]/foo/build-dir/debug/build/foo/[HASH]/out/foo-[HASH][EXE]
|
||||
@ -524,9 +525,11 @@ fn cargo_package_should_build_in_build_dir_and_output_to_target_dir() {
|
||||
assert_exists(&package_artifact_dir);
|
||||
assert_exists(&package_artifact_dir.join("foo-0.0.1.crate"));
|
||||
assert!(package_artifact_dir.join("foo-0.0.1.crate").is_file());
|
||||
// FIXME: The `.cargo-lock` file should be in target-dir not build-dir. See #16707
|
||||
p.root().join("build-dir").assert_build_dir_layout(str![[r#"
|
||||
[ROOT]/foo/build-dir/.rustc_info.json
|
||||
[ROOT]/foo/build-dir/debug/.cargo-lock
|
||||
[ROOT]/foo/build-dir/debug/.cargo-build-lock
|
||||
[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/bin-foo
|
||||
[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/bin-foo.json
|
||||
[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/dep-bin-foo
|
||||
@ -607,7 +610,7 @@ fn cargo_clean_should_clean_the_target_dir_and_build_dir() {
|
||||
p.root().join("build-dir").assert_build_dir_layout(str![[r#"
|
||||
[ROOT]/foo/build-dir/.rustc_info.json
|
||||
[ROOT]/foo/build-dir/CACHEDIR.TAG
|
||||
[ROOT]/foo/build-dir/debug/.cargo-lock
|
||||
[ROOT]/foo/build-dir/debug/.cargo-build-lock
|
||||
[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/bin-foo
|
||||
[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/bin-foo.json
|
||||
[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/dep-bin-foo
|
||||
@ -677,7 +680,7 @@ fn cargo_clean_should_remove_correct_files() {
|
||||
p.root().join("build-dir").assert_build_dir_layout(str![[r#"
|
||||
[ROOT]/foo/build-dir/.rustc_info.json
|
||||
[ROOT]/foo/build-dir/CACHEDIR.TAG
|
||||
[ROOT]/foo/build-dir/debug/.cargo-lock
|
||||
[ROOT]/foo/build-dir/debug/.cargo-build-lock
|
||||
[ROOT]/foo/build-dir/debug/build/bar/[HASH]/out/bar-[HASH].d
|
||||
[ROOT]/foo/build-dir/debug/build/bar/[HASH]/out/libbar-[HASH].rlib
|
||||
[ROOT]/foo/build-dir/debug/build/bar/[HASH]/out/libbar-[HASH].rmeta
|
||||
@ -704,7 +707,7 @@ fn cargo_clean_should_remove_correct_files() {
|
||||
p.root().join("build-dir").assert_build_dir_layout(str![[r#"
|
||||
[ROOT]/foo/build-dir/.rustc_info.json
|
||||
[ROOT]/foo/build-dir/CACHEDIR.TAG
|
||||
[ROOT]/foo/build-dir/debug/.cargo-lock
|
||||
[ROOT]/foo/build-dir/debug/.cargo-build-lock
|
||||
[ROOT]/foo/build-dir/debug/build/foo/[HASH]/out/foo[..][EXE]
|
||||
[ROOT]/foo/build-dir/debug/build/foo/[HASH]/out/foo[..].d
|
||||
[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/bin-foo
|
||||
@ -840,7 +843,7 @@ fn template_workspace_root() {
|
||||
p.root().join("build-dir").assert_build_dir_layout(str![[r#"
|
||||
[ROOT]/foo/build-dir/.rustc_info.json
|
||||
[ROOT]/foo/build-dir/CACHEDIR.TAG
|
||||
[ROOT]/foo/build-dir/debug/.cargo-lock
|
||||
[ROOT]/foo/build-dir/debug/.cargo-build-lock
|
||||
[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/bin-foo
|
||||
[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/bin-foo.json
|
||||
[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/dep-bin-foo
|
||||
@ -888,7 +891,7 @@ fn template_cargo_cache_home() {
|
||||
.assert_build_dir_layout(str![[r#"
|
||||
[ROOT]/home/.cargo/build-dir/.rustc_info.json
|
||||
[ROOT]/home/.cargo/build-dir/CACHEDIR.TAG
|
||||
[ROOT]/home/.cargo/build-dir/debug/.cargo-lock
|
||||
[ROOT]/home/.cargo/build-dir/debug/.cargo-build-lock
|
||||
[ROOT]/home/.cargo/build-dir/debug/build/foo/[HASH]/fingerprint/bin-foo
|
||||
[ROOT]/home/.cargo/build-dir/debug/build/foo/[HASH]/fingerprint/bin-foo.json
|
||||
[ROOT]/home/.cargo/build-dir/debug/build/foo/[HASH]/fingerprint/dep-bin-foo
|
||||
@ -950,7 +953,7 @@ fn template_workspace_path_hash() {
|
||||
build_dir.assert_build_dir_layout(str![[r#"
|
||||
[ROOT]/foo/foo/[HASH]/build-dir/.rustc_info.json
|
||||
[ROOT]/foo/foo/[HASH]/build-dir/CACHEDIR.TAG
|
||||
[ROOT]/foo/foo/[HASH]/build-dir/debug/.cargo-lock
|
||||
[ROOT]/foo/foo/[HASH]/build-dir/debug/.cargo-build-lock
|
||||
[ROOT]/foo/foo/[HASH]/build-dir/debug/build/foo/[HASH]/fingerprint/bin-foo
|
||||
[ROOT]/foo/foo/[HASH]/build-dir/debug/build/foo/[HASH]/fingerprint/bin-foo.json
|
||||
[ROOT]/foo/foo/[HASH]/build-dir/debug/build/foo/[HASH]/fingerprint/dep-bin-foo
|
||||
@ -1018,7 +1021,7 @@ fn template_workspace_path_hash_should_handle_symlink() {
|
||||
original_hash_dir.assert_build_dir_layout(str![[r#"
|
||||
[ROOT]/foo/foo/[HASH]/build-dir/.rustc_info.json
|
||||
[ROOT]/foo/foo/[HASH]/build-dir/CACHEDIR.TAG
|
||||
[ROOT]/foo/foo/[HASH]/build-dir/debug/.cargo-lock
|
||||
[ROOT]/foo/foo/[HASH]/build-dir/debug/.cargo-build-lock
|
||||
[ROOT]/foo/foo/[HASH]/build-dir/debug/build/foo/[HASH]/fingerprint/dep-lib-foo
|
||||
[ROOT]/foo/foo/[HASH]/build-dir/debug/build/foo/[HASH]/fingerprint/invoked.timestamp
|
||||
[ROOT]/foo/foo/[HASH]/build-dir/debug/build/foo/[HASH]/fingerprint/lib-foo
|
||||
@ -1057,7 +1060,7 @@ fn template_workspace_path_hash_should_handle_symlink() {
|
||||
symlink_hash_dir.assert_build_dir_layout(str![[r#"
|
||||
[ROOT]/foo/foo/[HASH]/build-dir/.rustc_info.json
|
||||
[ROOT]/foo/foo/[HASH]/build-dir/CACHEDIR.TAG
|
||||
[ROOT]/foo/foo/[HASH]/build-dir/debug/.cargo-lock
|
||||
[ROOT]/foo/foo/[HASH]/build-dir/debug/.cargo-build-lock
|
||||
[ROOT]/foo/foo/[HASH]/build-dir/debug/build/foo/[HASH]/fingerprint/dep-lib-foo
|
||||
[ROOT]/foo/foo/[HASH]/build-dir/debug/build/foo/[HASH]/fingerprint/invoked.timestamp
|
||||
[ROOT]/foo/foo/[HASH]/build-dir/debug/build/foo/[HASH]/fingerprint/lib-foo
|
||||
@ -1190,7 +1193,7 @@ CARGO_BIN_FILE_BAR_bar=[ROOT]/foo/build-dir/debug/build/bar/[HASH]/artifact/bin/
|
||||
p.root().join("build-dir").assert_build_dir_layout(str![[r#"
|
||||
[ROOT]/foo/build-dir/.rustc_info.json
|
||||
[ROOT]/foo/build-dir/CACHEDIR.TAG
|
||||
[ROOT]/foo/build-dir/debug/.cargo-lock
|
||||
[ROOT]/foo/build-dir/debug/.cargo-build-lock
|
||||
[ROOT]/foo/build-dir/debug/build/bar/[HASH]/fingerprint/bin-bar
|
||||
[ROOT]/foo/build-dir/debug/build/bar/[HASH]/fingerprint/bin-bar.json
|
||||
[ROOT]/foo/build-dir/debug/build/bar/[HASH]/fingerprint/dep-bin-bar
|
||||
|
||||
@ -36,7 +36,7 @@ fn binary_with_debug() {
|
||||
p.root().join("build-dir").assert_build_dir_layout(str![[r#"
|
||||
[ROOT]/foo/build-dir/.rustc_info.json
|
||||
[ROOT]/foo/build-dir/CACHEDIR.TAG
|
||||
[ROOT]/foo/build-dir/debug/.cargo-lock
|
||||
[ROOT]/foo/build-dir/debug/.cargo-build-lock
|
||||
[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/bin-foo
|
||||
[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/bin-foo.json
|
||||
[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/dep-bin-foo
|
||||
@ -87,7 +87,7 @@ fn binary_with_release() {
|
||||
p.root().join("build-dir").assert_build_dir_layout(str![[r#"
|
||||
[ROOT]/foo/build-dir/.rustc_info.json
|
||||
[ROOT]/foo/build-dir/CACHEDIR.TAG
|
||||
[ROOT]/foo/build-dir/release/.cargo-lock
|
||||
[ROOT]/foo/build-dir/release/.cargo-build-lock
|
||||
[ROOT]/foo/build-dir/release/.fingerprint/foo-[HASH]/bin-foo
|
||||
[ROOT]/foo/build-dir/release/.fingerprint/foo-[HASH]/bin-foo.json
|
||||
[ROOT]/foo/build-dir/release/.fingerprint/foo-[HASH]/dep-bin-foo
|
||||
@ -191,6 +191,7 @@ fn should_default_to_target() {
|
||||
[ROOT]/foo/target/.rustc_info.json
|
||||
[ROOT]/foo/target/CACHEDIR.TAG
|
||||
[ROOT]/foo/target/debug/.cargo-lock
|
||||
[ROOT]/foo/target/debug/.cargo-build-lock
|
||||
[ROOT]/foo/target/debug/.fingerprint/foo-[HASH]/bin-foo
|
||||
[ROOT]/foo/target/debug/.fingerprint/foo-[HASH]/bin-foo.json
|
||||
[ROOT]/foo/target/debug/.fingerprint/foo-[HASH]/dep-bin-foo
|
||||
@ -217,7 +218,7 @@ fn should_respect_env_var() {
|
||||
p.root().join("build-dir").assert_build_dir_layout(str![[r#"
|
||||
[ROOT]/foo/build-dir/.rustc_info.json
|
||||
[ROOT]/foo/build-dir/CACHEDIR.TAG
|
||||
[ROOT]/foo/build-dir/debug/.cargo-lock
|
||||
[ROOT]/foo/build-dir/debug/.cargo-build-lock
|
||||
[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/bin-foo
|
||||
[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/bin-foo.json
|
||||
[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/dep-bin-foo
|
||||
@ -258,7 +259,7 @@ fn build_script_should_output_to_build_dir() {
|
||||
|
||||
p.root().join("build-dir").assert_build_dir_layout(str![[r#"
|
||||
[ROOT]/foo/build-dir/CACHEDIR.TAG
|
||||
[ROOT]/foo/build-dir/debug/.cargo-lock
|
||||
[ROOT]/foo/build-dir/debug/.cargo-build-lock
|
||||
[ROOT]/foo/build-dir/debug/deps/foo[..].d
|
||||
[ROOT]/foo/build-dir/debug/deps/foo[..][EXE]
|
||||
[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/invoked.timestamp
|
||||
@ -315,7 +316,7 @@ fn cargo_tmpdir_should_output_to_build_dir() {
|
||||
|
||||
p.root().join("build-dir").assert_build_dir_layout(str![[r#"
|
||||
[ROOT]/foo/build-dir/CACHEDIR.TAG
|
||||
[ROOT]/foo/build-dir/debug/.cargo-lock
|
||||
[ROOT]/foo/build-dir/debug/.cargo-build-lock
|
||||
[ROOT]/foo/build-dir/debug/deps/foo-[HASH].d
|
||||
[ROOT]/foo/build-dir/debug/deps/foo-[HASH].d
|
||||
[ROOT]/foo/build-dir/debug/deps/foo[..].d
|
||||
@ -369,7 +370,7 @@ fn examples_should_output_to_build_dir_and_uplift_to_target_dir() {
|
||||
p.root().join("build-dir").assert_build_dir_layout(str![[r#"
|
||||
[ROOT]/foo/build-dir/.rustc_info.json
|
||||
[ROOT]/foo/build-dir/CACHEDIR.TAG
|
||||
[ROOT]/foo/build-dir/debug/.cargo-lock
|
||||
[ROOT]/foo/build-dir/debug/.cargo-build-lock
|
||||
[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/dep-example-foo
|
||||
[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/example-foo
|
||||
[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/example-foo.json
|
||||
@ -409,7 +410,7 @@ fn benches_should_output_to_build_dir() {
|
||||
|
||||
p.root().join("build-dir").assert_build_dir_layout(str![[r#"
|
||||
[ROOT]/foo/build-dir/CACHEDIR.TAG
|
||||
[ROOT]/foo/build-dir/debug/.cargo-lock
|
||||
[ROOT]/foo/build-dir/debug/.cargo-build-lock
|
||||
[ROOT]/foo/build-dir/debug/deps/foo-[HASH].d
|
||||
[ROOT]/foo/build-dir/debug/deps/foo[..].d
|
||||
[ROOT]/foo/build-dir/debug/deps/foo-[HASH][EXE]
|
||||
@ -478,9 +479,11 @@ fn cargo_package_should_build_in_build_dir_and_output_to_target_dir() {
|
||||
assert_exists(&package_artifact_dir);
|
||||
assert_exists(&package_artifact_dir.join("foo-0.0.1.crate"));
|
||||
assert!(package_artifact_dir.join("foo-0.0.1.crate").is_file());
|
||||
// FIXME: The `.cargo-lock` file should be in target-dir not build-dir. See #16707
|
||||
p.root().join("build-dir").assert_build_dir_layout(str![[r#"
|
||||
[ROOT]/foo/build-dir/.rustc_info.json
|
||||
[ROOT]/foo/build-dir/debug/.cargo-lock
|
||||
[ROOT]/foo/build-dir/debug/.cargo-build-lock
|
||||
[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/bin-foo
|
||||
[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/bin-foo.json
|
||||
[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/dep-bin-foo
|
||||
@ -556,7 +559,7 @@ fn cargo_clean_should_clean_the_target_dir_and_build_dir() {
|
||||
p.root().join("build-dir").assert_build_dir_layout(str![[r#"
|
||||
[ROOT]/foo/build-dir/.rustc_info.json
|
||||
[ROOT]/foo/build-dir/CACHEDIR.TAG
|
||||
[ROOT]/foo/build-dir/debug/.cargo-lock
|
||||
[ROOT]/foo/build-dir/debug/.cargo-build-lock
|
||||
[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/bin-foo
|
||||
[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/bin-foo.json
|
||||
[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/dep-bin-foo
|
||||
@ -619,7 +622,7 @@ fn cargo_clean_should_remove_correct_files() {
|
||||
p.root().join("build-dir").assert_build_dir_layout(str![[r#"
|
||||
[ROOT]/foo/build-dir/.rustc_info.json
|
||||
[ROOT]/foo/build-dir/CACHEDIR.TAG
|
||||
[ROOT]/foo/build-dir/debug/.cargo-lock
|
||||
[ROOT]/foo/build-dir/debug/.cargo-build-lock
|
||||
[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/bin-foo
|
||||
[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/bin-foo.json
|
||||
[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/dep-bin-foo
|
||||
@ -641,7 +644,7 @@ fn cargo_clean_should_remove_correct_files() {
|
||||
p.root().join("build-dir").assert_build_dir_layout(str![[r#"
|
||||
[ROOT]/foo/build-dir/.rustc_info.json
|
||||
[ROOT]/foo/build-dir/CACHEDIR.TAG
|
||||
[ROOT]/foo/build-dir/debug/.cargo-lock
|
||||
[ROOT]/foo/build-dir/debug/.cargo-build-lock
|
||||
[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/bin-foo
|
||||
[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/bin-foo.json
|
||||
[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/dep-bin-foo
|
||||
@ -767,7 +770,7 @@ fn template_workspace_root() {
|
||||
p.root().join("build-dir").assert_build_dir_layout(str![[r#"
|
||||
[ROOT]/foo/build-dir/.rustc_info.json
|
||||
[ROOT]/foo/build-dir/CACHEDIR.TAG
|
||||
[ROOT]/foo/build-dir/debug/.cargo-lock
|
||||
[ROOT]/foo/build-dir/debug/.cargo-build-lock
|
||||
[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/bin-foo
|
||||
[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/bin-foo.json
|
||||
[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/dep-bin-foo
|
||||
@ -811,7 +814,7 @@ fn template_cargo_cache_home() {
|
||||
.assert_build_dir_layout(str![[r#"
|
||||
[ROOT]/home/.cargo/build-dir/.rustc_info.json
|
||||
[ROOT]/home/.cargo/build-dir/CACHEDIR.TAG
|
||||
[ROOT]/home/.cargo/build-dir/debug/.cargo-lock
|
||||
[ROOT]/home/.cargo/build-dir/debug/.cargo-build-lock
|
||||
[ROOT]/home/.cargo/build-dir/debug/.fingerprint/foo-[HASH]/bin-foo
|
||||
[ROOT]/home/.cargo/build-dir/debug/.fingerprint/foo-[HASH]/bin-foo.json
|
||||
[ROOT]/home/.cargo/build-dir/debug/.fingerprint/foo-[HASH]/dep-bin-foo
|
||||
@ -869,7 +872,7 @@ fn template_workspace_path_hash() {
|
||||
build_dir.assert_build_dir_layout(str![[r#"
|
||||
[ROOT]/foo/foo/[HASH]/build-dir/.rustc_info.json
|
||||
[ROOT]/foo/foo/[HASH]/build-dir/CACHEDIR.TAG
|
||||
[ROOT]/foo/foo/[HASH]/build-dir/debug/.cargo-lock
|
||||
[ROOT]/foo/foo/[HASH]/build-dir/debug/.cargo-build-lock
|
||||
[ROOT]/foo/foo/[HASH]/build-dir/debug/.fingerprint/foo-[HASH]/bin-foo
|
||||
[ROOT]/foo/foo/[HASH]/build-dir/debug/.fingerprint/foo-[HASH]/bin-foo.json
|
||||
[ROOT]/foo/foo/[HASH]/build-dir/debug/.fingerprint/foo-[HASH]/dep-bin-foo
|
||||
@ -933,7 +936,7 @@ fn template_workspace_path_hash_should_handle_symlink() {
|
||||
original_hash_dir.assert_build_dir_layout(str![[r#"
|
||||
[ROOT]/foo/foo/[HASH]/build-dir/.rustc_info.json
|
||||
[ROOT]/foo/foo/[HASH]/build-dir/CACHEDIR.TAG
|
||||
[ROOT]/foo/foo/[HASH]/build-dir/debug/.cargo-lock
|
||||
[ROOT]/foo/foo/[HASH]/build-dir/debug/.cargo-build-lock
|
||||
[ROOT]/foo/foo/[HASH]/build-dir/debug/.fingerprint/foo-[HASH]/dep-lib-foo
|
||||
[ROOT]/foo/foo/[HASH]/build-dir/debug/.fingerprint/foo-[HASH]/invoked.timestamp
|
||||
[ROOT]/foo/foo/[HASH]/build-dir/debug/.fingerprint/foo-[HASH]/lib-foo
|
||||
@ -967,7 +970,7 @@ fn template_workspace_path_hash_should_handle_symlink() {
|
||||
symlink_hash_dir.assert_build_dir_layout(str![[r#"
|
||||
[ROOT]/foo/foo/[HASH]/build-dir/.rustc_info.json
|
||||
[ROOT]/foo/foo/[HASH]/build-dir/CACHEDIR.TAG
|
||||
[ROOT]/foo/foo/[HASH]/build-dir/debug/.cargo-lock
|
||||
[ROOT]/foo/foo/[HASH]/build-dir/debug/.cargo-build-lock
|
||||
[ROOT]/foo/foo/[HASH]/build-dir/debug/.fingerprint/foo-[HASH]/dep-lib-foo
|
||||
[ROOT]/foo/foo/[HASH]/build-dir/debug/.fingerprint/foo-[HASH]/invoked.timestamp
|
||||
[ROOT]/foo/foo/[HASH]/build-dir/debug/.fingerprint/foo-[HASH]/lib-foo
|
||||
@ -1098,7 +1101,7 @@ CARGO_BIN_FILE_BAR_bar=[ROOT]/foo/build-dir/debug/deps/artifact/bar-[HASH]/bin/b
|
||||
p.root().join("build-dir").assert_build_dir_layout(str![[r#"
|
||||
[ROOT]/foo/build-dir/.rustc_info.json
|
||||
[ROOT]/foo/build-dir/CACHEDIR.TAG
|
||||
[ROOT]/foo/build-dir/debug/.cargo-lock
|
||||
[ROOT]/foo/build-dir/debug/.cargo-build-lock
|
||||
[ROOT]/foo/build-dir/debug/.fingerprint/bar-[HASH]/bin-bar
|
||||
[ROOT]/foo/build-dir/debug/.fingerprint/bar-[HASH]/bin-bar.json
|
||||
[ROOT]/foo/build-dir/debug/.fingerprint/bar-[HASH]/dep-bin-bar
|
||||
|
||||
@ -1726,7 +1726,7 @@ fn check_build_should_lock_target_dir_when_artifact_dir_is_same_as_build_dir() {
|
||||
.build();
|
||||
|
||||
p.cargo("check").enable_mac_dsym().run();
|
||||
assert!(p.root().join("target/debug/.cargo-lock").exists());
|
||||
assert!(p.root().join("target/debug/.cargo-build-lock").exists());
|
||||
}
|
||||
|
||||
#[cargo_test]
|
||||
@ -1748,7 +1748,7 @@ fn check_build_should_not_lock_artifact_dir_when_build_dir_is_not_same_dir() {
|
||||
// Verify we did NOT take the build-dir lock
|
||||
assert!(!p.root().join("target-dir/debug/.cargo-lock").exists());
|
||||
// Verify we did take the build-dir lock
|
||||
assert!(p.root().join("build-dir/debug/.cargo-lock").exists());
|
||||
assert!(p.root().join("build-dir/debug/.cargo-build-lock").exists());
|
||||
}
|
||||
|
||||
// Regression test for #16305
|
||||
|
||||
@ -736,7 +736,7 @@ fn assert_all_clean(build_dir: &Path) {
|
||||
}) {
|
||||
let entry = entry.unwrap();
|
||||
let path = entry.path();
|
||||
if let ".rustc_info.json" | ".cargo-lock" | "CACHEDIR.TAG" =
|
||||
if let ".rustc_info.json" | ".cargo-lock" | ".cargo-build-lock" | "CACHEDIR.TAG" =
|
||||
path.file_name().unwrap().to_str().unwrap()
|
||||
{
|
||||
continue;
|
||||
|
||||
@ -702,7 +702,7 @@ fn assert_all_clean(build_dir: &Path) {
|
||||
}) {
|
||||
let entry = entry.unwrap();
|
||||
let path = entry.path();
|
||||
if let ".rustc_info.json" | ".cargo-lock" | "CACHEDIR.TAG" =
|
||||
if let ".rustc_info.json" | ".cargo-lock" | ".cargo-build-lock" | "CACHEDIR.TAG" =
|
||||
path.file_name().unwrap().to_str().unwrap()
|
||||
{
|
||||
continue;
|
||||
|
||||
@ -575,6 +575,6 @@ fn verbose_file_lock_blocking() {
|
||||
|
||||
assert!(a.wait().unwrap().success());
|
||||
execs()
|
||||
.with_stderr_contains("[BLOCKING] waiting for file lock on build directory ([ROOT]/foo/target/debug/.cargo-lock)")
|
||||
.with_stderr_contains("[BLOCKING] waiting for file lock on build directory ([ROOT]/foo/target/debug/.cargo-build-lock)")
|
||||
.run_output(&blocked_p_otpt);
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user