diff options
author | Justin M. Keyes <justinkz@gmail.com> | 2019-08-09 23:31:41 +0200 |
---|---|---|
committer | Justin M. Keyes <justinkz@gmail.com> | 2019-09-01 09:03:46 -0700 |
commit | 641c5b3f08076b305e9ae5f9a8843d2647053da0 (patch) | |
tree | 7af33869dad7687863066e910ba084652b451506 /test/functional/ui/inccommand_spec.lua | |
parent | 53b7f60805745c473bc31acc02e018abb6b031a7 (diff) | |
download | rneovim-641c5b3f08076b305e9ae5f9a8843d2647053da0.tar.gz rneovim-641c5b3f08076b305e9ae5f9a8843d2647053da0.tar.bz2 rneovim-641c5b3f08076b305e9ae5f9a8843d2647053da0.zip |
test/inccommand_spec: avoid indeterminism
- Use shell-test.c to avoid the squishiness of system shells.
- Use screen:expect_unchanged() to avoid hardcoded (brittle) test.
Fails correctly if 5020daa6e5ce is reverted (remove terminal_check(),
restore redraw() in refresh_timer_cb()):
[ ERROR ] test/functional/ui/inccommand_spec.lua @ 2550: :substitute with inccommand during :terminal activity
test/functional/helpers.lua:402:
retry() attempts: 2
test/functional/ui/screen.lua:579: Row 8 did not match.
Expected:
|foo bar baz |
|bar baz fox |
|bar foo baz |
|{15:~ }|
|{15:~ }|
|{15:~ }|
|{11:[No Name] [+] }|
|*26: xxx |
|27: xxx |
|28: xxx |
|29: xxx |
|30: xxx |
| |
|{10:term }|
|:%s/foo/ZZZ^ |
Actual:
|foo bar baz |
|bar baz fox |
|bar foo baz |
|{15:~ }|
|{15:~ }|
|{15:~ }|
|{11:[No Name] [+] }|
|*107: xxx |
|108: xxx |
|109: xxx |
|110: xxx |
|111: xxx |
| |
|{10:term }|
|:%s/foo/ZZZ^ |
Diffstat (limited to 'test/functional/ui/inccommand_spec.lua')
-rw-r--r-- | test/functional/ui/inccommand_spec.lua | 48 |
1 files changed, 5 insertions, 43 deletions
diff --git a/test/functional/ui/inccommand_spec.lua b/test/functional/ui/inccommand_spec.lua index 238cc368da..351c4b4bcf 100644 --- a/test/functional/ui/inccommand_spec.lua +++ b/test/functional/ui/inccommand_spec.lua @@ -16,8 +16,8 @@ local retry = helpers.retry local source = helpers.source local wait = helpers.wait local nvim = helpers.nvim -local iswin = helpers.iswin local sleep = helpers.sleep +local nvim_dir = helpers.nvim_dir local default_text = [[ Inc substitution on @@ -2555,56 +2555,18 @@ it(':substitute with inccommand during :terminal activity', function() clear() command("set cmdwinheight=3") - 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 xxx<cr>]]) command('file term') + feed('G') -- Follow :terminal output. command('new') common_setup(screen, 'split', 'foo bar baz\nbar baz fox\nbar foo baz') command('wincmd =') - -- Wait for terminal output. - screen:expect([[ - bar baz fox | - bar foo ba^z | - {15:~ }| - {15:~ }| - {15:~ }| - {15:~ }| - {11:[No Name] [+] }| - xxx | - xxx | - xxx | - xxx | - xxx | - xxx | - {10:term }| - | - ]]) - feed('gg') feed(':%s/foo/ZZZ') sleep(20) -- Allow some terminal activity. - screen:expect([[ - {12:ZZZ} bar baz | - bar baz fox | - bar {12:ZZZ} baz | - {15:~ }| - {15:~ }| - {15:~ }| - {11:[No Name] [+] }| - xxx | - xxx | - {10:term }| - |1| {12:ZZZ} bar baz | - |3| bar {12:ZZZ} baz | - {15:~ }| - {10:[Preview] }| - :%s/foo/ZZZ^ | - ]]) - + helpers.wait() + screen:expect_unchanged() end) end) |