worktree: Fix tracking of git status scans and re-enable tests (#26926)

Closes #ISSUE

Release Notes:

- N/A
This commit is contained in:
Cole Miller 2025-03-18 12:23:46 -04:00 committed by GitHub
parent b70f21c08d
commit baaafddbeb
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 9 additions and 19 deletions

View File

@ -5461,6 +5461,7 @@ impl BackgroundScanner {
}
};
inc_scans_running(&self.scans_running);
status_updates
.push(self.schedule_git_statuses_update(&mut state, local_repository));
}
@ -5493,9 +5494,12 @@ impl BackgroundScanner {
});
}
let scans_running = self.scans_running.clone();
self.executor.spawn(async move {
let _updates_finished: Vec<Result<(), oneshot::Canceled>> =
let updates_finished: Vec<Result<(), oneshot::Canceled>> =
join_all(status_updates).await;
let n = updates_finished.len();
dec_scans_running(&scans_running, n as i32);
})
}

View File

@ -845,9 +845,7 @@ async fn test_update_gitignore(cx: &mut TestAppContext) {
});
}
// TODO fix flaky test
#[allow(dead_code)]
//#[gpui::test]
#[gpui::test]
async fn test_write_file(cx: &mut TestAppContext) {
init_test(cx);
cx.executor().allow_parking();
@ -2432,9 +2430,7 @@ async fn test_git_repository_for_path(cx: &mut TestAppContext) {
// you can't rename a directory which some program has already open. This is a
// limitation of the Windows. See:
// https://stackoverflow.com/questions/41365318/access-is-denied-when-renaming-folder
// TODO: re-enable flaky test.
//#[gpui::test]
#[allow(dead_code)]
#[gpui::test]
#[cfg_attr(target_os = "windows", ignore)]
async fn test_file_status(cx: &mut TestAppContext) {
init_test(cx);
@ -2627,9 +2623,7 @@ async fn test_file_status(cx: &mut TestAppContext) {
});
}
// TODO fix flaky test
#[allow(unused)]
//#[gpui::test]
#[gpui::test]
async fn test_git_repository_status(cx: &mut TestAppContext) {
init_test(cx);
cx.executor().allow_parking();
@ -2743,9 +2737,7 @@ async fn test_git_repository_status(cx: &mut TestAppContext) {
});
}
// TODO fix flaky test
#[allow(unused)]
//#[gpui::test]
#[gpui::test]
async fn test_git_status_postprocessing(cx: &mut TestAppContext) {
init_test(cx);
cx.executor().allow_parking();
@ -3541,8 +3533,6 @@ fn git_cherry_pick(commit: &git2::Commit<'_>, repo: &git2::Repository) {
repo.cherrypick(commit, None).expect("Failed to cherrypick");
}
// TODO remove this once flaky test is fixed
#[allow(dead_code)]
#[track_caller]
fn git_stash(repo: &mut git2::Repository) {
use git2::Signature;
@ -3552,8 +3542,6 @@ fn git_stash(repo: &mut git2::Repository) {
.expect("Failed to stash");
}
// TODO remove this once flaky test is fixed
#[allow(dead_code)]
#[track_caller]
fn git_reset(offset: usize, repo: &git2::Repository) {
let head = repo.head().expect("Couldn't get repo head");
@ -3586,8 +3574,6 @@ fn git_checkout(name: &str, repo: &git2::Repository) {
repo.checkout_head(None).expect("Failed to check out head");
}
// TODO remove this once flaky test is fixed
#[allow(dead_code)]
#[track_caller]
fn git_status(repo: &git2::Repository) -> collections::HashMap<String, git2::Status> {
repo.statuses(None)