Skip to content

Commit 4ed84a6

Browse files
committed
Improve tests (and maybe more) to assure parallel worktree tests are deterministic
At least so that tests deal with hardly avoidable non-determinism and there are no spurious failures.
1 parent 33be0e0 commit 4ed84a6

File tree

1 file changed

+12
-9
lines changed

1 file changed

+12
-9
lines changed

gix-worktree/tests/worktree/checkout.rs

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -290,7 +290,12 @@ fn keep_going_collects_results() {
290290
}
291291

292292
if multi_threaded() {
293-
assert_eq!(dir_structure(&destination).len(), 3);
293+
let actual = dir_structure(&destination);
294+
assert!(
295+
(2..=3).contains(&actual.len()),
296+
"it's 3 most of the time, but can be 2 of the 'empty' file is missing as the object couldn't be accessed.\
297+
It's unclear why there isn't more, as it would keep going"
298+
);
294299
} else {
295300
assert_eq!(
296301
stripped_prefix(&destination, &dir_structure(&destination)),
@@ -350,10 +355,9 @@ fn collisions_are_detected_on_a_case_insensitive_filesystem_even_with_delayed_fi
350355

351356
let dest_files = dir_structure(&destination);
352357
if multi_threaded() {
353-
assert_eq!(
354-
dest_files.len(),
355-
5,
356-
"can only assert on number as it's racily creating files so unclear which one clashes"
358+
assert!(
359+
(4..=6).contains(&dest_files.len()),
360+
"due to the clash happening at nearly any time, and keep-going is false, we get a variance of files"
357361
);
358362
} else {
359363
assert_eq!(
@@ -370,10 +374,9 @@ fn collisions_are_detected_on_a_case_insensitive_filesystem_even_with_delayed_fi
370374
let error_kind_dir = error_kind;
371375

372376
if multi_threaded() {
373-
assert_eq!(
374-
outcome.collisions.len(),
375-
5,
376-
"can only assert on number as it's racily creating files so unclear which one clashes"
377+
assert!(
378+
(5..=6).contains(&outcome.collisions.len()),
379+
"can only assert on number as it's racily creating files so unclear which one clashes, and due to keep-going = false there is variance"
377380
);
378381
} else {
379382
assert_eq!(

0 commit comments

Comments
 (0)