Skip to content

Commit 3617ff4

Browse files
committed
auto-clean test fixtures on re-run if they failed previously (#391)
1 parent 624ad2e commit 3617ff4

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

tests/tools/src/lib.rs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,11 @@ pub fn scripted_fixture_repo_read_only_with_args(
127127
git_lock::acquire::Fail::AfterDurationWithBackoff(Duration::from_secs(5)),
128128
None,
129129
)?;
130-
if !script_result_directory.is_dir() {
130+
let failure_marker = script_result_directory.join("_invalid_state_due_to_script_failure_");
131+
if !script_result_directory.is_dir() || failure_marker.is_file() {
132+
if failure_marker.is_file() {
133+
std::fs::remove_dir_all(&script_result_directory)?;
134+
}
131135
std::fs::create_dir_all(&script_result_directory)?;
132136
match extract_archive(&archive_file_path, &script_result_directory, script_identity) {
133137
Ok((archive_id, platform)) => {
@@ -168,6 +172,9 @@ pub fn scripted_fixture_repo_read_only_with_args(
168172
.env("GIT_CONFIG_KEY_1", "init.defaultBranch")
169173
.env("GIT_CONFIG_VALUE_1", "main")
170174
.output()?;
175+
if !output.status.success() {
176+
std::fs::write(failure_marker, &[]).ok();
177+
}
171178
assert!(
172179
output.status.success(),
173180
"repo script failed: stdout: {}\nstderr: {}",

0 commit comments

Comments
 (0)