vim/runtime
Yee Cheng Chin e70587dbdb
patch 9.1.1110: Vim tests are slow and flaky
Problem:  Vim tests are slow and flaky at the same time due to reliance
          on timeouts which are unreliable.
Solution: improve Vim test performance and reduce flakiness
          (Yee Cheng Chin)

A lot of Vim tests currently rely on waiting a specific amount of time
before asserting a condition. This is bad because 1) it is slow, as the
timeout is hardcoded, 2) it's unreliable as a resource-starved runner
may overshoot the timeout. Also, there are a lot of builtin sleep
commands in commonly used utilities like VerifyScreenDump and WaitFor()
which leads to a lot of unnecessary idle time.

Fix these issues by doing the following:
1. Make utilities like VerifyScreenDump and WaitFor use the lowest wait
   time possible (1 ms). This essentially turns it into a spin wait. On
   fast machines, these will finish very quickly. For existing tests
   that had an implicit reliance on the old timeouts (e.g.
   VerifyScreenDump had a 50ms wait before), fix the tests to wait that
   specific amount explicitly.
2. Fix tests that sleep or wait for long amounts of time to instead
   explicitly use a callback mechanism to be notified when a child
   terminal job has finished. This allows the test to only take as much
   time as possible instead of having to hard code an unreliable
   timeout.

With these fixes, tests should 1) completely quickly on fast machines,
and 2) on slow machines they will still run to completion albeit slowly.
Note that previoulsy both were not true. The hardcoded timeouts meant
that on fast machines the tests were mostly idling wasting time, whereas
on slow machines, the timeouts often were not generous enough to allow
them to run to completion.

closes: #16615

Signed-off-by: Yee Cheng Chin <ychin.git@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-02-13 20:55:45 +01:00
..
autoload runtime(misc): Add support for lz4 to tar & gzip plugin 2025-02-06 21:10:49 +01:00
bitmaps
colors runtime(colors): Update colorschemes, include new unokai colorscheme 2025-01-14 17:15:59 +01:00
compiler patch 9.1.0967: SpotBugs compiler setup can be further improved 2024-12-27 16:47:44 +01:00
doc patch 9.1.1110: Vim tests are slow and flaky 2025-02-13 20:55:45 +01:00
ftplugin runtime(exports): include simple filetype plugin 2025-02-13 20:45:13 +01:00
icons
import/dist
indent patch 9.1.1042: filetype: just files are not recognized 2025-01-20 21:56:41 +01:00
keymap runtime(keymap): include Georgian keymap 2024-06-14 20:13:39 +02:00
lang translation(fi): Fix typoes in Finish menu translation 2024-12-25 10:28:29 +01:00
macros patch 9.1.0588: The maze program no longer compiles on newer clang 2024-07-15 20:23:36 +02:00
pack/dist/opt runtime(netrw): correct wrong version check 2025-01-30 11:00:35 +01:00
plugin runtime(misc): Add support for lz4 to tar & gzip plugin 2025-02-06 21:10:49 +01:00
print
spell
syntax runtime(vim): Update base-syntax, always match continuation comments to EOL 2025-02-13 20:24:42 +01:00
tools patch 9.1.0736: Unicode tables are outdated 2024-09-17 20:24:56 +02:00
tutor patch 9.1.1058: translation(sr): Missing Serbian translation for the tutor 2025-01-31 15:20:03 +01:00
bugreport.vim
defaults.vim patch 9.1.0899: default for 'backspace' can be set in C code 2024-12-01 16:25:53 +01:00
delmenu.vim
doc.info
evim.vim
filetype.vim patch 9.1.1086: completion doesn't work with multi lines 2025-02-08 19:09:02 +01:00
ftoff.vim
ftplugin.vim
ftplugof.vim
gvim.desktop
gvimrc_example.vim
hi16-action-make.png
hi22-action-make.png
icons.info
indent.vim
indoff.vim
macmap.vim
macros.info
makemenu.vim
menu.vim runtime(misc): Use consistent "Vim script" spelling 2024-10-13 19:16:42 +02:00
mswin.vim
optwin.vim patch 9.1.1084: Unable to persistently ignore events in a window and its buffers 2025-02-08 18:52:39 +01:00
scripts.vim
synmenu.vim
termcap
tools.info
tutor.info
vim.desktop
vim16x16.gif
vim16x16.png
vim16x16.xpm patch 9.1.0437: Motif requires non-const char pointer for XPM data 2024-05-23 17:49:39 +02:00
vim32x32.gif
vim32x32.png
vim32x32.xpm patch 9.1.0437: Motif requires non-const char pointer for XPM data 2024-05-23 17:49:39 +02:00
vim48x48.gif
vim48x48.png
vim48x48.xpm patch 9.1.0437: Motif requires non-const char pointer for XPM data 2024-05-23 17:49:39 +02:00
vimlogo.cdr
vimlogo.eps
vimlogo.gif
vimlogo.pdf
vimlogo.svg
vimlogo.xpm
vimrc_example.vim