diff options
author | Justin M. Keyes <justinkz@gmail.com> | 2019-07-20 14:01:33 +0200 |
---|---|---|
committer | Justin M. Keyes <justinkz@gmail.com> | 2019-07-20 14:25:07 +0200 |
commit | 6b45e12d67ec01c8a7c5896529df88b9105d5c2b (patch) | |
tree | c8f63b0447a08a34ce49d3fddf1b1230862fc044 /test/functional/ui/searchhl_spec.lua | |
parent | 643ba06d4d4373d2d3f8936f71f777f627fad5f6 (diff) | |
download | rneovim-6b45e12d67ec01c8a7c5896529df88b9105d5c2b.tar.gz rneovim-6b45e12d67ec01c8a7c5896529df88b9105d5c2b.tar.bz2 rneovim-6b45e12d67ec01c8a7c5896529df88b9105d5c2b.zip |
screen.lua: expect_unchanged(), get_snapshot()
Factor `get_snapshot()` out of `print_snapshot()`, so that callers can
get a table (for use with `expect()`) instead of the string form.
Try to use this to fix indeterminism in `searchhl_spec.lua`.
- Since the screen state is collected by `screen:expect_unchanged()`,
we don't need a deterministic initial state (which would then be
hardcoded into the test). This allows us to check "did anything
change in the last N ms?" rather than "did anything change compared
to a hardcoded screen-state?"
- This may end up fruitless, because `expect_unchanged()` depends on
timing to wait for an initial "current state".
Diffstat (limited to 'test/functional/ui/searchhl_spec.lua')
-rw-r--r-- | test/functional/ui/searchhl_spec.lua | 27 |
1 files changed, 3 insertions, 24 deletions
diff --git a/test/functional/ui/searchhl_spec.lua b/test/functional/ui/searchhl_spec.lua index 65ae124353..c68a2bad45 100644 --- a/test/functional/ui/searchhl_spec.lua +++ b/test/functional/ui/searchhl_spec.lua @@ -5,8 +5,7 @@ local command = helpers.command local feed_command = helpers.feed_command local eq = helpers.eq local eval = helpers.eval -local iswin = helpers.iswin -local sleep = helpers.sleep +local nvim_dir = helpers.nvim_dir describe('search highlighting', function() local screen @@ -148,11 +147,7 @@ describe('search highlighting', function() end) it('is preserved during :terminal activity', function() - if iswin() then - feed([[:terminal for /L \%I in (1,1,5000) do @(echo xxx & echo xxx & echo xxx)<cr>]]) - else - feed([[:terminal for i in $(seq 1 5000); do printf 'xxx\nxxx\nxxx\n'; done<cr>]]) - end + feed([[:terminal "]]..nvim_dir..[[/shell-test" REP 5000 foo<cr>]]) feed(':file term<CR>') feed(':vnew<CR>') @@ -162,23 +157,7 @@ describe('search highlighting', function() bar foo baz ]]) feed('/foo') - sleep(50) -- Allow some terminal activity. - -- NB: in earlier versions terminal output was redrawn during cmdline mode. - -- For now just assert that the screens remain unchanged. - screen:expect([[ - {3:foo} bar baz {3:│} | - bar baz {2:foo} {3:│} | - bar {2:foo} baz {3:│} | - {3:│} | - {1:~ }{3:│} | - {5:[No Name] [+] }{3:term }| - /foo^ | - ]], { [1] = {bold = true, foreground = Screen.colors.Blue1}, - [2] = {background = Screen.colors.Yellow}, - [3] = {reverse = true}, - [4] = {foreground = Screen.colors.Red}, - [5] = {bold = true, reverse = true}, - }) + screen:expect_unchanged() end) it('works with incsearch', function() |