diff options
| -rw-r--r-- | test/functional/ui/mode_spec.lua | 53 | ||||
| -rw-r--r-- | test/functional/ui/screen_basic_spec.lua | 1 | 
2 files changed, 31 insertions, 23 deletions
diff --git a/test/functional/ui/mode_spec.lua b/test/functional/ui/mode_spec.lua index 200f6eecdb..9390f268b3 100644 --- a/test/functional/ui/mode_spec.lua +++ b/test/functional/ui/mode_spec.lua @@ -3,6 +3,7 @@ local Screen = require('test.functional.ui.screen')  local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert  local command = helpers.command +local retry = helpers.retry  describe('ui mode_change event', function()    local screen @@ -61,30 +62,36 @@ describe('ui mode_change event', function()                                 |      ]], mode="normal"} +    local matchtime = 0      command("set showmatch") -    command("set matchtime=2") -- tenths of seconds -    feed('a(stuff') -    screen:expect{grid=[[ -      word(stuff^               | -      {0:~                        }| -      {0:~                        }| -      {2:-- INSERT --}             | -    ]], mode="insert"} - -    feed(')') -    screen:expect{grid=[[ -      word^(stuff)              | -      {0:~                        }| -      {0:~                        }| -      {2:-- INSERT --}             | -    ]], mode="showmatch"} - -    screen:expect{grid=[[ -      word(stuff)^              | -      {0:~                        }| -      {0:~                        }| -      {2:-- INSERT --}             | -    ]], mode="insert"} +    retry(nil, nil, function() +      matchtime = matchtime + 1 +      local screen_timeout = 1000 * matchtime  -- fail faster for retry. + +      command("set matchtime=" .. matchtime) -- tenths of seconds +      feed('a(stuff') +      screen:expect{grid=[[ +        word(stuff^               | +        {0:~                        }| +        {0:~                        }| +        {2:-- INSERT --}             | +      ]], mode="insert", timeout=screen_timeout} + +      feed(')') +      screen:expect{grid=[[ +        word^(stuff)              | +        {0:~                        }| +        {0:~                        }| +        {2:-- INSERT --}             | +      ]], mode="showmatch", timeout=screen_timeout} + +      screen:expect{grid=[[ +        word(stuff)^              | +        {0:~                        }| +        {0:~                        }| +        {2:-- INSERT --}             | +      ]], mode="insert", timeout=screen_timeout} +    end)    end)    it('works in replace mode', function() diff --git a/test/functional/ui/screen_basic_spec.lua b/test/functional/ui/screen_basic_spec.lua index 46f0b5060c..150ee2a103 100644 --- a/test/functional/ui/screen_basic_spec.lua +++ b/test/functional/ui/screen_basic_spec.lua @@ -915,6 +915,7 @@ local function screen_tests(linegrid)    -- Regression test for #8357    it('does not have artifacts after temporary chars in insert mode', function() +    command('set timeoutlen=10000')      command('inoremap jk <esc>')      feed('ifooj')      screen:expect([[  | 
