Change summary
crates/collab/src/tests/randomized_integration_tests.rs | 12 +++
crates/project/src/project.rs | 36 +---------
2 files changed, 16 insertions(+), 32 deletions(-)
Detailed changes
@@ -869,7 +869,17 @@ fn check_consistency_between_clients(clients: &[(Rc<TestClient>, TestAppContext)
}
}
- guest_project.check_invariants(cx);
+ for buffer in guest_project.opened_buffers(cx) {
+ let buffer = buffer.read(cx);
+ assert_eq!(
+ buffer.deferred_ops_len(),
+ 0,
+ "{} has deferred operations for buffer {:?} in project {:?}",
+ client.username,
+ buffer.file().unwrap().full_path(cx),
+ guest_project.remote_id(),
+ );
+ }
});
}
@@ -659,37 +659,11 @@ impl Project {
}
#[cfg(any(test, feature = "test-support"))]
- pub fn check_invariants(&self, cx: &AppContext) {
- if self.is_local() {
- let mut worktree_root_paths = HashMap::default();
- for worktree in self.worktrees(cx) {
- let worktree = worktree.read(cx);
- let abs_path = worktree.as_local().unwrap().abs_path().clone();
- let prev_worktree_id = worktree_root_paths.insert(abs_path.clone(), worktree.id());
- assert_eq!(
- prev_worktree_id,
- None,
- "abs path {:?} for worktree {:?} is not unique ({:?} was already registered with the same path)",
- abs_path,
- worktree.id(),
- prev_worktree_id
- )
- }
- } else {
- let replica_id = self.replica_id();
- for buffer in self.opened_buffers.values() {
- if let Some(buffer) = buffer.upgrade(cx) {
- let buffer = buffer.read(cx);
- assert_eq!(
- buffer.deferred_ops_len(),
- 0,
- "replica {}, buffer {} has deferred operations",
- replica_id,
- buffer.remote_id()
- );
- }
- }
- }
+ pub fn opened_buffers(&self, cx: &AppContext) -> Vec<ModelHandle<Buffer>> {
+ self.opened_buffers
+ .values()
+ .filter_map(|b| b.upgrade(cx))
+ .collect()
}
#[cfg(any(test, feature = "test-support"))]