From 93deb1a062bd22d62f2003284f4e38abc8422a29 Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Wed, 4 Sep 2019 17:26:40 -0700 Subject: [PATCH] test/wildmode_spec: fix flaky test a00eb23c27da fixed one race, but not this one: [ ERROR ] test/functional/ui/wildmode_spec.lua @ 84: 'wildmenu' is preserved during :terminal activity test/functional/ui/screen.lua:587: Row 1 did not match. Expected: |* | | | | | |define jump list > | |:sign define^ | Actual: |*0: !terminal_output! | | | | | |define jump list > | |:sign define^ | To print the expect() call that would assert the current screen state, use screen:snapshot_util(). In case of non-deterministic failures, use screen:redraw_debug() to show all intermediate screen states. stack traceback: test/functional/ui/screen.lua:587: in function '_wait' test/functional/ui/screen.lua:370: in function 'expect' test/functional/ui/wildmode_spec.lua:22: in function 'expect_stay_unchanged' test/functional/ui/wildmode_spec.lua:92: in function --- test/functional/ui/wildmode_spec.lua | 32 +++++++--------------------- 1 file changed, 8 insertions(+), 24 deletions(-) diff --git a/test/functional/ui/wildmode_spec.lua b/test/functional/ui/wildmode_spec.lua index 2215c0c7d9..36f8dd8bfb 100644 --- a/test/functional/ui/wildmode_spec.lua +++ b/test/functional/ui/wildmode_spec.lua @@ -17,14 +17,6 @@ describe("'wildmenu'", function() screen:attach() end) - -- expect the screen stayed unchanged some time after first seen success - local function expect_stay_unchanged(args) - screen:expect(args) - args = shallowcopy(args) - args.unchanged = true - screen:expect(args) - end - it(':sign shows wildmenu completions', function() command('set wildmenu wildmode=full') feed(':sign ') @@ -89,24 +81,14 @@ describe("'wildmenu'", function() feed([[:sign ]]) -- Invoke wildmenu. -- NB: in earlier versions terminal output was redrawn during cmdline mode. -- For now just assert that the screen remains unchanged. - expect_stay_unchanged{grid=[[ - | - | - | - define jump list > | - :sign define^ | - ]]} + screen:expect{any='define jump list > '} + screen:expect_unchanged() -- cmdline CTRL-D display should also be preserved. feed([[]]) feed([[sign ]]) -- Invoke cmdline CTRL-D. - expect_stay_unchanged{grid=[[ - :sign | - define place | - jump undefine | - list unplace | - :sign ^ | - ]]} + screen:expect{any='define place '} + screen:expect_unchanged() -- Exiting cmdline should show the buffer. feed([[]]) @@ -118,13 +100,14 @@ describe("'wildmenu'", function() command([[call timer_start(10, {->execute('redrawstatus')}, {'repeat':-1})]]) feed([[]]) feed([[:sign ]]) -- Invoke wildmenu. - expect_stay_unchanged{grid=[[ + screen:expect{grid=[[ | ~ | ~ | define jump list > | :sign define^ | ]]} + screen:expect_unchanged() end) it('with laststatus=0, :vsplit, :term #2255', function() @@ -152,7 +135,8 @@ describe("'wildmenu'", function() feed([[:]]) -- Invoke wildmenu. -- Check only the last 2 lines, because the shell output is -- system-dependent. - expect_stay_unchanged{any='! # & < = > @ > |\n:!^'} + screen:expect{any='! # & < = > @ > |\n:!^'} + screen:expect_unchanged() end) it('wildmode=list,full and display+=msgsep interaction #10092', function()