Skip to content

Commit 6cea00c

Browse files
authored
Split build-dir lock into dedicated lock (#16708)
### What does this PR try to resolve? This PR separates 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` (the default) However, note that this does NOT feature gate the lock file renaming as build-dir is not considered to be part of the public interface of Cargo. Tracking issue: #4282 ### How to test and review this PR? See the updated tests in `build_dir.rs` Also note that while testing this change I discovered a separate bug around `cargo package`. For now I opened a separate issue (#16707) added a FIXME to make it clear that the tests describe the current behavior, its not ideal. ### Open Questions - [ ] Are we happy with `.cargo-build-lock`? - In the recent office hours, we mentioned having the `.cargo-` prefix would be nice for consistency. - [ ] Should we also rename `.cargo-lock` to `.cargo-artifact-lock`? - not sure if this is considered public interface since its in target-dir but not really meant for external consumption r? @epage
2 parents 0ada615 + e4d8f88 commit 6cea00c

File tree

7 files changed

+46
-46
lines changed

7 files changed

+46
-46
lines changed

src/cargo/core/compiler/layout.rs

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -258,25 +258,19 @@ impl Layout {
258258
// actual destination (sub)subdirectory.
259259
paths::create_dir_all(dest.as_path_unlocked())?;
260260

261-
// We always need to take the build-dir lock but if the build-dir == artifact-dir then we
262-
// only take the artifact-dir. (locking both as they are the same dir)
263-
// However we need to take into account that for some builds like `cargo check` we avoid
264-
// locking the artifact-dir. We still need to lock the build-dir to avoid file corruption.
265-
let build_dir_lock = if (must_take_artifact_dir_lock && root == build_root)
266-
|| is_on_nfs_mount(build_root.as_path_unlocked())
267-
{
261+
let build_dir_lock = if is_on_nfs_mount(build_root.as_path_unlocked()) {
268262
None
269263
} else {
270264
if ws.gctx().cli_unstable().fine_grain_locking && !must_take_build_dir_lock_exclusively
271265
{
272266
Some(build_dest.open_ro_shared_create(
273-
".cargo-lock",
267+
".cargo-build-lock",
274268
ws.gctx(),
275269
"build directory",
276270
)?)
277271
} else {
278272
Some(build_dest.open_rw_exclusive_create(
279-
".cargo-lock",
273+
".cargo-build-lock",
280274
ws.gctx(),
281275
"build directory",
282276
)?)

tests/testsuite/build_dir.rs

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ fn binary_with_debug() {
3939
p.root().join("build-dir").assert_build_dir_layout(str![[r#"
4040
[ROOT]/foo/build-dir/.rustc_info.json
4141
[ROOT]/foo/build-dir/CACHEDIR.TAG
42-
[ROOT]/foo/build-dir/debug/.cargo-lock
42+
[ROOT]/foo/build-dir/debug/.cargo-build-lock
4343
[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/bin-foo
4444
[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/bin-foo.json
4545
[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/dep-bin-foo
@@ -94,7 +94,7 @@ fn binary_with_release() {
9494
p.root().join("build-dir").assert_build_dir_layout(str![[r#"
9595
[ROOT]/foo/build-dir/.rustc_info.json
9696
[ROOT]/foo/build-dir/CACHEDIR.TAG
97-
[ROOT]/foo/build-dir/release/.cargo-lock
97+
[ROOT]/foo/build-dir/release/.cargo-build-lock
9898
[ROOT]/foo/build-dir/release/build/foo/[HASH]/fingerprint/bin-foo
9999
[ROOT]/foo/build-dir/release/build/foo/[HASH]/fingerprint/bin-foo.json
100100
[ROOT]/foo/build-dir/release/build/foo/[HASH]/fingerprint/dep-bin-foo
@@ -205,6 +205,7 @@ fn should_default_to_target() {
205205
[ROOT]/foo/target/.rustc_info.json
206206
[ROOT]/foo/target/CACHEDIR.TAG
207207
[ROOT]/foo/target/debug/.cargo-lock
208+
[ROOT]/foo/target/debug/.cargo-build-lock
208209
[ROOT]/foo/target/debug/build/foo/[HASH]/fingerprint/bin-foo
209210
[ROOT]/foo/target/debug/build/foo/[HASH]/fingerprint/bin-foo.json
210211
[ROOT]/foo/target/debug/build/foo/[HASH]/fingerprint/dep-bin-foo
@@ -233,7 +234,7 @@ fn should_respect_env_var() {
233234
p.root().join("build-dir").assert_build_dir_layout(str![[r#"
234235
[ROOT]/foo/build-dir/.rustc_info.json
235236
[ROOT]/foo/build-dir/CACHEDIR.TAG
236-
[ROOT]/foo/build-dir/debug/.cargo-lock
237+
[ROOT]/foo/build-dir/debug/.cargo-build-lock
237238
[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/bin-foo
238239
[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/bin-foo.json
239240
[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/dep-bin-foo
@@ -278,7 +279,7 @@ fn build_script_should_output_to_build_dir() {
278279

279280
p.root().join("build-dir").assert_build_dir_layout(str![[r#"
280281
[ROOT]/foo/build-dir/CACHEDIR.TAG
281-
[ROOT]/foo/build-dir/debug/.cargo-lock
282+
[ROOT]/foo/build-dir/debug/.cargo-build-lock
282283
[ROOT]/foo/build-dir/debug/build/foo/[HASH]/out/foo.txt
283284
[ROOT]/foo/build-dir/debug/build/foo/[HASH]/out/build_script_build[..].d
284285
[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() {
341342

342343
p.root().join("build-dir").assert_build_dir_layout(str![[r#"
343344
[ROOT]/foo/build-dir/CACHEDIR.TAG
344-
[ROOT]/foo/build-dir/debug/.cargo-lock
345+
[ROOT]/foo/build-dir/debug/.cargo-build-lock
345346
[ROOT]/foo/build-dir/debug/build/foo/[HASH]/out/foo-[HASH].d
346347
[ROOT]/foo/build-dir/debug/build/foo/[HASH]/out/foo.d
347348
[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() {
401402
p.root().join("build-dir").assert_build_dir_layout(str![[r#"
402403
[ROOT]/foo/build-dir/.rustc_info.json
403404
[ROOT]/foo/build-dir/CACHEDIR.TAG
404-
[ROOT]/foo/build-dir/debug/.cargo-lock
405+
[ROOT]/foo/build-dir/debug/.cargo-build-lock
405406
[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/dep-example-foo
406407
[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/example-foo
407408
[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/example-foo.json
@@ -447,7 +448,7 @@ fn benches_should_output_to_build_dir() {
447448

448449
p.root().join("build-dir").assert_build_dir_layout(str![[r#"
449450
[ROOT]/foo/build-dir/CACHEDIR.TAG
450-
[ROOT]/foo/build-dir/debug/.cargo-lock
451+
[ROOT]/foo/build-dir/debug/.cargo-build-lock
451452
[ROOT]/foo/build-dir/debug/build/foo/[HASH]/out/foo-[HASH].d
452453
[ROOT]/foo/build-dir/debug/build/foo/[HASH]/out/foo[..].d
453454
[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() {
524525
assert_exists(&package_artifact_dir);
525526
assert_exists(&package_artifact_dir.join("foo-0.0.1.crate"));
526527
assert!(package_artifact_dir.join("foo-0.0.1.crate").is_file());
528+
// FIXME: The `.cargo-lock` file should be in target-dir not build-dir. See #16707
527529
p.root().join("build-dir").assert_build_dir_layout(str![[r#"
528530
[ROOT]/foo/build-dir/.rustc_info.json
529531
[ROOT]/foo/build-dir/debug/.cargo-lock
532+
[ROOT]/foo/build-dir/debug/.cargo-build-lock
530533
[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/bin-foo
531534
[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/bin-foo.json
532535
[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() {
607610
p.root().join("build-dir").assert_build_dir_layout(str![[r#"
608611
[ROOT]/foo/build-dir/.rustc_info.json
609612
[ROOT]/foo/build-dir/CACHEDIR.TAG
610-
[ROOT]/foo/build-dir/debug/.cargo-lock
613+
[ROOT]/foo/build-dir/debug/.cargo-build-lock
611614
[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/bin-foo
612615
[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/bin-foo.json
613616
[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/dep-bin-foo
@@ -677,7 +680,7 @@ fn cargo_clean_should_remove_correct_files() {
677680
p.root().join("build-dir").assert_build_dir_layout(str![[r#"
678681
[ROOT]/foo/build-dir/.rustc_info.json
679682
[ROOT]/foo/build-dir/CACHEDIR.TAG
680-
[ROOT]/foo/build-dir/debug/.cargo-lock
683+
[ROOT]/foo/build-dir/debug/.cargo-build-lock
681684
[ROOT]/foo/build-dir/debug/build/bar/[HASH]/out/bar-[HASH].d
682685
[ROOT]/foo/build-dir/debug/build/bar/[HASH]/out/libbar-[HASH].rlib
683686
[ROOT]/foo/build-dir/debug/build/bar/[HASH]/out/libbar-[HASH].rmeta
@@ -704,7 +707,7 @@ fn cargo_clean_should_remove_correct_files() {
704707
p.root().join("build-dir").assert_build_dir_layout(str![[r#"
705708
[ROOT]/foo/build-dir/.rustc_info.json
706709
[ROOT]/foo/build-dir/CACHEDIR.TAG
707-
[ROOT]/foo/build-dir/debug/.cargo-lock
710+
[ROOT]/foo/build-dir/debug/.cargo-build-lock
708711
[ROOT]/foo/build-dir/debug/build/foo/[HASH]/out/foo[..][EXE]
709712
[ROOT]/foo/build-dir/debug/build/foo/[HASH]/out/foo[..].d
710713
[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/bin-foo
@@ -840,7 +843,7 @@ fn template_workspace_root() {
840843
p.root().join("build-dir").assert_build_dir_layout(str![[r#"
841844
[ROOT]/foo/build-dir/.rustc_info.json
842845
[ROOT]/foo/build-dir/CACHEDIR.TAG
843-
[ROOT]/foo/build-dir/debug/.cargo-lock
846+
[ROOT]/foo/build-dir/debug/.cargo-build-lock
844847
[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/bin-foo
845848
[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/bin-foo.json
846849
[ROOT]/foo/build-dir/debug/build/foo/[HASH]/fingerprint/dep-bin-foo
@@ -888,7 +891,7 @@ fn template_cargo_cache_home() {
888891
.assert_build_dir_layout(str![[r#"
889892
[ROOT]/home/.cargo/build-dir/.rustc_info.json
890893
[ROOT]/home/.cargo/build-dir/CACHEDIR.TAG
891-
[ROOT]/home/.cargo/build-dir/debug/.cargo-lock
894+
[ROOT]/home/.cargo/build-dir/debug/.cargo-build-lock
892895
[ROOT]/home/.cargo/build-dir/debug/build/foo/[HASH]/fingerprint/bin-foo
893896
[ROOT]/home/.cargo/build-dir/debug/build/foo/[HASH]/fingerprint/bin-foo.json
894897
[ROOT]/home/.cargo/build-dir/debug/build/foo/[HASH]/fingerprint/dep-bin-foo
@@ -950,7 +953,7 @@ fn template_workspace_path_hash() {
950953
build_dir.assert_build_dir_layout(str![[r#"
951954
[ROOT]/foo/foo/[HASH]/build-dir/.rustc_info.json
952955
[ROOT]/foo/foo/[HASH]/build-dir/CACHEDIR.TAG
953-
[ROOT]/foo/foo/[HASH]/build-dir/debug/.cargo-lock
956+
[ROOT]/foo/foo/[HASH]/build-dir/debug/.cargo-build-lock
954957
[ROOT]/foo/foo/[HASH]/build-dir/debug/build/foo/[HASH]/fingerprint/bin-foo
955958
[ROOT]/foo/foo/[HASH]/build-dir/debug/build/foo/[HASH]/fingerprint/bin-foo.json
956959
[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() {
10181021
original_hash_dir.assert_build_dir_layout(str![[r#"
10191022
[ROOT]/foo/foo/[HASH]/build-dir/.rustc_info.json
10201023
[ROOT]/foo/foo/[HASH]/build-dir/CACHEDIR.TAG
1021-
[ROOT]/foo/foo/[HASH]/build-dir/debug/.cargo-lock
1024+
[ROOT]/foo/foo/[HASH]/build-dir/debug/.cargo-build-lock
10221025
[ROOT]/foo/foo/[HASH]/build-dir/debug/build/foo/[HASH]/fingerprint/dep-lib-foo
10231026
[ROOT]/foo/foo/[HASH]/build-dir/debug/build/foo/[HASH]/fingerprint/invoked.timestamp
10241027
[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() {
10571060
symlink_hash_dir.assert_build_dir_layout(str![[r#"
10581061
[ROOT]/foo/foo/[HASH]/build-dir/.rustc_info.json
10591062
[ROOT]/foo/foo/[HASH]/build-dir/CACHEDIR.TAG
1060-
[ROOT]/foo/foo/[HASH]/build-dir/debug/.cargo-lock
1063+
[ROOT]/foo/foo/[HASH]/build-dir/debug/.cargo-build-lock
10611064
[ROOT]/foo/foo/[HASH]/build-dir/debug/build/foo/[HASH]/fingerprint/dep-lib-foo
10621065
[ROOT]/foo/foo/[HASH]/build-dir/debug/build/foo/[HASH]/fingerprint/invoked.timestamp
10631066
[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/
11901193
p.root().join("build-dir").assert_build_dir_layout(str![[r#"
11911194
[ROOT]/foo/build-dir/.rustc_info.json
11921195
[ROOT]/foo/build-dir/CACHEDIR.TAG
1193-
[ROOT]/foo/build-dir/debug/.cargo-lock
1196+
[ROOT]/foo/build-dir/debug/.cargo-build-lock
11941197
[ROOT]/foo/build-dir/debug/build/bar/[HASH]/fingerprint/bin-bar
11951198
[ROOT]/foo/build-dir/debug/build/bar/[HASH]/fingerprint/bin-bar.json
11961199
[ROOT]/foo/build-dir/debug/build/bar/[HASH]/fingerprint/dep-bin-bar

tests/testsuite/build_dir_legacy.rs

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ fn binary_with_debug() {
3636
p.root().join("build-dir").assert_build_dir_layout(str![[r#"
3737
[ROOT]/foo/build-dir/.rustc_info.json
3838
[ROOT]/foo/build-dir/CACHEDIR.TAG
39-
[ROOT]/foo/build-dir/debug/.cargo-lock
39+
[ROOT]/foo/build-dir/debug/.cargo-build-lock
4040
[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/bin-foo
4141
[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/bin-foo.json
4242
[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/dep-bin-foo
@@ -87,7 +87,7 @@ fn binary_with_release() {
8787
p.root().join("build-dir").assert_build_dir_layout(str![[r#"
8888
[ROOT]/foo/build-dir/.rustc_info.json
8989
[ROOT]/foo/build-dir/CACHEDIR.TAG
90-
[ROOT]/foo/build-dir/release/.cargo-lock
90+
[ROOT]/foo/build-dir/release/.cargo-build-lock
9191
[ROOT]/foo/build-dir/release/.fingerprint/foo-[HASH]/bin-foo
9292
[ROOT]/foo/build-dir/release/.fingerprint/foo-[HASH]/bin-foo.json
9393
[ROOT]/foo/build-dir/release/.fingerprint/foo-[HASH]/dep-bin-foo
@@ -191,6 +191,7 @@ fn should_default_to_target() {
191191
[ROOT]/foo/target/.rustc_info.json
192192
[ROOT]/foo/target/CACHEDIR.TAG
193193
[ROOT]/foo/target/debug/.cargo-lock
194+
[ROOT]/foo/target/debug/.cargo-build-lock
194195
[ROOT]/foo/target/debug/.fingerprint/foo-[HASH]/bin-foo
195196
[ROOT]/foo/target/debug/.fingerprint/foo-[HASH]/bin-foo.json
196197
[ROOT]/foo/target/debug/.fingerprint/foo-[HASH]/dep-bin-foo
@@ -217,7 +218,7 @@ fn should_respect_env_var() {
217218
p.root().join("build-dir").assert_build_dir_layout(str![[r#"
218219
[ROOT]/foo/build-dir/.rustc_info.json
219220
[ROOT]/foo/build-dir/CACHEDIR.TAG
220-
[ROOT]/foo/build-dir/debug/.cargo-lock
221+
[ROOT]/foo/build-dir/debug/.cargo-build-lock
221222
[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/bin-foo
222223
[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/bin-foo.json
223224
[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/dep-bin-foo
@@ -258,7 +259,7 @@ fn build_script_should_output_to_build_dir() {
258259

259260
p.root().join("build-dir").assert_build_dir_layout(str![[r#"
260261
[ROOT]/foo/build-dir/CACHEDIR.TAG
261-
[ROOT]/foo/build-dir/debug/.cargo-lock
262+
[ROOT]/foo/build-dir/debug/.cargo-build-lock
262263
[ROOT]/foo/build-dir/debug/deps/foo[..].d
263264
[ROOT]/foo/build-dir/debug/deps/foo[..][EXE]
264265
[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/invoked.timestamp
@@ -315,7 +316,7 @@ fn cargo_tmpdir_should_output_to_build_dir() {
315316

316317
p.root().join("build-dir").assert_build_dir_layout(str![[r#"
317318
[ROOT]/foo/build-dir/CACHEDIR.TAG
318-
[ROOT]/foo/build-dir/debug/.cargo-lock
319+
[ROOT]/foo/build-dir/debug/.cargo-build-lock
319320
[ROOT]/foo/build-dir/debug/deps/foo-[HASH].d
320321
[ROOT]/foo/build-dir/debug/deps/foo-[HASH].d
321322
[ROOT]/foo/build-dir/debug/deps/foo[..].d
@@ -369,7 +370,7 @@ fn examples_should_output_to_build_dir_and_uplift_to_target_dir() {
369370
p.root().join("build-dir").assert_build_dir_layout(str![[r#"
370371
[ROOT]/foo/build-dir/.rustc_info.json
371372
[ROOT]/foo/build-dir/CACHEDIR.TAG
372-
[ROOT]/foo/build-dir/debug/.cargo-lock
373+
[ROOT]/foo/build-dir/debug/.cargo-build-lock
373374
[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/dep-example-foo
374375
[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/example-foo
375376
[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/example-foo.json
@@ -409,7 +410,7 @@ fn benches_should_output_to_build_dir() {
409410

410411
p.root().join("build-dir").assert_build_dir_layout(str![[r#"
411412
[ROOT]/foo/build-dir/CACHEDIR.TAG
412-
[ROOT]/foo/build-dir/debug/.cargo-lock
413+
[ROOT]/foo/build-dir/debug/.cargo-build-lock
413414
[ROOT]/foo/build-dir/debug/deps/foo-[HASH].d
414415
[ROOT]/foo/build-dir/debug/deps/foo[..].d
415416
[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() {
478479
assert_exists(&package_artifact_dir);
479480
assert_exists(&package_artifact_dir.join("foo-0.0.1.crate"));
480481
assert!(package_artifact_dir.join("foo-0.0.1.crate").is_file());
482+
// FIXME: The `.cargo-lock` file should be in target-dir not build-dir. See #16707
481483
p.root().join("build-dir").assert_build_dir_layout(str![[r#"
482484
[ROOT]/foo/build-dir/.rustc_info.json
483485
[ROOT]/foo/build-dir/debug/.cargo-lock
486+
[ROOT]/foo/build-dir/debug/.cargo-build-lock
484487
[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/bin-foo
485488
[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/bin-foo.json
486489
[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() {
556559
p.root().join("build-dir").assert_build_dir_layout(str![[r#"
557560
[ROOT]/foo/build-dir/.rustc_info.json
558561
[ROOT]/foo/build-dir/CACHEDIR.TAG
559-
[ROOT]/foo/build-dir/debug/.cargo-lock
562+
[ROOT]/foo/build-dir/debug/.cargo-build-lock
560563
[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/bin-foo
561564
[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/bin-foo.json
562565
[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/dep-bin-foo
@@ -619,7 +622,7 @@ fn cargo_clean_should_remove_correct_files() {
619622
p.root().join("build-dir").assert_build_dir_layout(str![[r#"
620623
[ROOT]/foo/build-dir/.rustc_info.json
621624
[ROOT]/foo/build-dir/CACHEDIR.TAG
622-
[ROOT]/foo/build-dir/debug/.cargo-lock
625+
[ROOT]/foo/build-dir/debug/.cargo-build-lock
623626
[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/bin-foo
624627
[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/bin-foo.json
625628
[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/dep-bin-foo
@@ -641,7 +644,7 @@ fn cargo_clean_should_remove_correct_files() {
641644
p.root().join("build-dir").assert_build_dir_layout(str![[r#"
642645
[ROOT]/foo/build-dir/.rustc_info.json
643646
[ROOT]/foo/build-dir/CACHEDIR.TAG
644-
[ROOT]/foo/build-dir/debug/.cargo-lock
647+
[ROOT]/foo/build-dir/debug/.cargo-build-lock
645648
[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/bin-foo
646649
[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/bin-foo.json
647650
[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/dep-bin-foo
@@ -767,7 +770,7 @@ fn template_workspace_root() {
767770
p.root().join("build-dir").assert_build_dir_layout(str![[r#"
768771
[ROOT]/foo/build-dir/.rustc_info.json
769772
[ROOT]/foo/build-dir/CACHEDIR.TAG
770-
[ROOT]/foo/build-dir/debug/.cargo-lock
773+
[ROOT]/foo/build-dir/debug/.cargo-build-lock
771774
[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/bin-foo
772775
[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/bin-foo.json
773776
[ROOT]/foo/build-dir/debug/.fingerprint/foo-[HASH]/dep-bin-foo
@@ -811,7 +814,7 @@ fn template_cargo_cache_home() {
811814
.assert_build_dir_layout(str![[r#"
812815
[ROOT]/home/.cargo/build-dir/.rustc_info.json
813816
[ROOT]/home/.cargo/build-dir/CACHEDIR.TAG
814-
[ROOT]/home/.cargo/build-dir/debug/.cargo-lock
817+
[ROOT]/home/.cargo/build-dir/debug/.cargo-build-lock
815818
[ROOT]/home/.cargo/build-dir/debug/.fingerprint/foo-[HASH]/bin-foo
816819
[ROOT]/home/.cargo/build-dir/debug/.fingerprint/foo-[HASH]/bin-foo.json
817820
[ROOT]/home/.cargo/build-dir/debug/.fingerprint/foo-[HASH]/dep-bin-foo
@@ -869,7 +872,7 @@ fn template_workspace_path_hash() {
869872
build_dir.assert_build_dir_layout(str![[r#"
870873
[ROOT]/foo/foo/[HASH]/build-dir/.rustc_info.json
871874
[ROOT]/foo/foo/[HASH]/build-dir/CACHEDIR.TAG
872-
[ROOT]/foo/foo/[HASH]/build-dir/debug/.cargo-lock
875+
[ROOT]/foo/foo/[HASH]/build-dir/debug/.cargo-build-lock
873876
[ROOT]/foo/foo/[HASH]/build-dir/debug/.fingerprint/foo-[HASH]/bin-foo
874877
[ROOT]/foo/foo/[HASH]/build-dir/debug/.fingerprint/foo-[HASH]/bin-foo.json
875878
[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() {
933936
original_hash_dir.assert_build_dir_layout(str![[r#"
934937
[ROOT]/foo/foo/[HASH]/build-dir/.rustc_info.json
935938
[ROOT]/foo/foo/[HASH]/build-dir/CACHEDIR.TAG
936-
[ROOT]/foo/foo/[HASH]/build-dir/debug/.cargo-lock
939+
[ROOT]/foo/foo/[HASH]/build-dir/debug/.cargo-build-lock
937940
[ROOT]/foo/foo/[HASH]/build-dir/debug/.fingerprint/foo-[HASH]/dep-lib-foo
938941
[ROOT]/foo/foo/[HASH]/build-dir/debug/.fingerprint/foo-[HASH]/invoked.timestamp
939942
[ROOT]/foo/foo/[HASH]/build-dir/debug/.fingerprint/foo-[HASH]/lib-foo
@@ -967,7 +970,7 @@ fn template_workspace_path_hash_should_handle_symlink() {
967970
symlink_hash_dir.assert_build_dir_layout(str![[r#"
968971
[ROOT]/foo/foo/[HASH]/build-dir/.rustc_info.json
969972
[ROOT]/foo/foo/[HASH]/build-dir/CACHEDIR.TAG
970-
[ROOT]/foo/foo/[HASH]/build-dir/debug/.cargo-lock
973+
[ROOT]/foo/foo/[HASH]/build-dir/debug/.cargo-build-lock
971974
[ROOT]/foo/foo/[HASH]/build-dir/debug/.fingerprint/foo-[HASH]/dep-lib-foo
972975
[ROOT]/foo/foo/[HASH]/build-dir/debug/.fingerprint/foo-[HASH]/invoked.timestamp
973976
[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
10981101
p.root().join("build-dir").assert_build_dir_layout(str![[r#"
10991102
[ROOT]/foo/build-dir/.rustc_info.json
11001103
[ROOT]/foo/build-dir/CACHEDIR.TAG
1101-
[ROOT]/foo/build-dir/debug/.cargo-lock
1104+
[ROOT]/foo/build-dir/debug/.cargo-build-lock
11021105
[ROOT]/foo/build-dir/debug/.fingerprint/bar-[HASH]/bin-bar
11031106
[ROOT]/foo/build-dir/debug/.fingerprint/bar-[HASH]/bin-bar.json
11041107
[ROOT]/foo/build-dir/debug/.fingerprint/bar-[HASH]/dep-bin-bar

tests/testsuite/check.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1726,7 +1726,7 @@ fn check_build_should_lock_target_dir_when_artifact_dir_is_same_as_build_dir() {
17261726
.build();
17271727

17281728
p.cargo("check").enable_mac_dsym().run();
1729-
assert!(p.root().join("target/debug/.cargo-lock").exists());
1729+
assert!(p.root().join("target/debug/.cargo-build-lock").exists());
17301730
}
17311731

17321732
#[cargo_test]
@@ -1748,7 +1748,7 @@ fn check_build_should_not_lock_artifact_dir_when_build_dir_is_not_same_dir() {
17481748
// Verify we did NOT take the build-dir lock
17491749
assert!(!p.root().join("target-dir/debug/.cargo-lock").exists());
17501750
// Verify we did take the build-dir lock
1751-
assert!(p.root().join("build-dir/debug/.cargo-lock").exists());
1751+
assert!(p.root().join("build-dir/debug/.cargo-build-lock").exists());
17521752
}
17531753

17541754
// Regression test for #16305

0 commit comments

Comments
 (0)