diff options
author | Justin M. Keyes <justinkz@gmail.com> | 2016-12-07 13:01:03 +0100 |
---|---|---|
committer | Justin M. Keyes <justinkz@gmail.com> | 2016-12-07 17:03:52 +0100 |
commit | 1a4f13ba8f93dc006d3c24de10f406367724573c (patch) | |
tree | 5fb0a7424dc1ee371e0e388b3a6fc0c75f27aad9 | |
parent | 8da23cb919e55825bc89f0ebfcebcc07374d9d18 (diff) | |
download | rneovim-1a4f13ba8f93dc006d3c24de10f406367724573c.tar.gz rneovim-1a4f13ba8f93dc006d3c24de10f406367724573c.tar.bz2 rneovim-1a4f13ba8f93dc006d3c24de10f406367724573c.zip |
test: helpers.retry()
-rw-r--r-- | test/functional/helpers.lua | 14 | ||||
-rw-r--r-- | test/functional/legacy/061_undo_tree_spec.lua | 10 |
2 files changed, 15 insertions, 9 deletions
diff --git a/test/functional/helpers.lua b/test/functional/helpers.lua index ff62b4de86..d1ab02f361 100644 --- a/test/functional/helpers.lua +++ b/test/functional/helpers.lua @@ -243,6 +243,19 @@ local function connect(file_or_address) return Session.new(stream) end +-- Calls fn() until it returns without error, up to `max` times. +local function retry(fn, max) + local retries = max and (max - 1) or 2 + for _ = 1, retries do + local success = pcall(fn) + if success then + return + end + end + -- pcall() is not used for the final attempt so failure can bubble up. + fn() +end + local function clear(...) local args = {unpack(nvim_argv)} local new_args @@ -530,6 +543,7 @@ return function(after_each) prepend_argv = prepend_argv, clear = clear, connect = connect, + retry = retry, spawn = spawn, dedent = dedent, source = source, diff --git a/test/functional/legacy/061_undo_tree_spec.lua b/test/functional/legacy/061_undo_tree_spec.lua index 9bf69ccba1..2069204938 100644 --- a/test/functional/legacy/061_undo_tree_spec.lua +++ b/test/functional/legacy/061_undo_tree_spec.lua @@ -98,15 +98,7 @@ describe('undo tree:', function() expect_line('123456abc') end - -- Retry up to 3 times. pcall() is _not_ used for the final attempt, so - -- that failure messages can bubble up. - for _ = 1, 2 do - local success = pcall(test_earlier_later) - if success then - return - end - end - test_earlier_later() + helpers.retry(test_earlier_later) end) it('file-write specifications', function() |