Make vim::test_remap less flaky on linux (#15040)

Conrad Irwin created

Release Notes:

- N/A

Change summary

crates/picker/src/picker.rs | 13 +++++++++++--
crates/vim/src/test.rs      |  2 --
2 files changed, 11 insertions(+), 4 deletions(-)

Detailed changes

crates/picker/src/picker.rs 🔗

@@ -22,6 +22,15 @@ enum ElementContainer {
 
 actions!(picker, [ConfirmCompletion]);
 
+// How long to give the command palette to return if a user
+// types j<enter> quickly.
+// Longer in debug builds to reduce flaky test on linux.
+#[cfg(debug_assertions)]
+static FINALIZE_TIMEOUT: Duration = Duration::from_millis(32);
+
+#[cfg(not(debug_assertions))]
+static FINALIZE_TIMEOUT: Duration = Duration::from_millis(16);
+
 /// ConfirmInput is an alternative editor action which - instead of selecting active picker entry - treats pickers editor input literally,
 /// performing some kind of action on it.
 #[derive(PartialEq, Clone, Deserialize, Default)]
@@ -324,7 +333,7 @@ impl<D: PickerDelegate> Picker<D> {
         if self.pending_update_matches.is_some()
             && !self
                 .delegate
-                .finalize_update_matches(self.query(cx), Duration::from_millis(16), cx)
+                .finalize_update_matches(self.query(cx), FINALIZE_TIMEOUT, cx)
         {
             self.confirm_on_update = Some(false)
         } else {
@@ -337,7 +346,7 @@ impl<D: PickerDelegate> Picker<D> {
         if self.pending_update_matches.is_some()
             && !self
                 .delegate
-                .finalize_update_matches(self.query(cx), Duration::from_millis(16), cx)
+                .finalize_update_matches(self.query(cx), FINALIZE_TIMEOUT, cx)
         {
             self.confirm_on_update = Some(true)
         } else {

crates/vim/src/test.rs 🔗

@@ -956,8 +956,6 @@ async fn test_remap(cx: &mut gpui::TestAppContext) {
     cx.simulate_keystrokes("g x");
     cx.assert_state("1234fooˇ56789", Mode::Normal);
 
-    cx.executor().allow_parking();
-
     // test command
     cx.update(|cx| {
         cx.bind_keys([KeyBinding::new(