diff --git a/crates/language/src/tests.rs b/crates/language/src/tests.rs
index fefbbe04f9..937d0d16c2 100644
--- a/crates/language/src/tests.rs
+++ b/crates/language/src/tests.rs
@@ -941,6 +941,10 @@ fn test_random_collaboration(cx: &mut MutableAppContext, mut rng: StdRng) {
now += Duration::from_millis(rng.gen_range(0..=200));
buffers.extend(new_buffer);
+ for buffer in &buffers {
+ buffer.read(cx).check_invariants();
+ }
+
if mutation_count == 0 && network.is_idle() {
break;
}
diff --git a/crates/text/src/locator.rs b/crates/text/src/locator.rs
index ddd3663e73..cb1e78153c 100644
--- a/crates/text/src/locator.rs
+++ b/crates/text/src/locator.rs
@@ -20,7 +20,7 @@ impl Locator {
}
pub fn from_index(ix: usize, count: usize) -> Self {
- let id = ((ix as u128 * u64::MAX as u128) / count as u128) as u64;
+ let id = (1 + ix as u64) * (u64::MAX / (count as u64 + 2));
Self(smallvec![id])
}
diff --git a/crates/text/src/tests.rs b/crates/text/src/tests.rs
index e1ffc928c0..586be6f9a2 100644
--- a/crates/text/src/tests.rs
+++ b/crates/text/src/tests.rs
@@ -602,36 +602,3 @@ fn test_random_concurrent_edits(mut rng: StdRng) {
buffer.check_invariants();
}
}
-
-impl Buffer {
- fn check_invariants(&self) {
- // Ensure every fragment is ordered by locator in the fragment tree and corresponds
- // to an insertion fragment in the insertions tree.
- let mut prev_fragment_id = Locator::min();
- for fragment in self.snapshot.fragments.items(&None) {
- assert!(fragment.id > prev_fragment_id);
- prev_fragment_id = fragment.id.clone();
-
- let insertion_fragment = self
- .snapshot
- .insertions
- .get(
- &InsertionFragmentKey {
- timestamp: fragment.insertion_timestamp.local(),
- split_offset: fragment.insertion_offset,
- },
- &(),
- )
- .unwrap();
- assert_eq!(insertion_fragment.fragment_id, fragment.id);
- }
-
- let mut cursor = self.snapshot.fragments.cursor::