From: Hirohito Higashi Date: Fri, 5 Jun 2026 11:46:00 +0000 (+0000) Subject: patch 9.2.0598: tests: Test_statusline() is flaky X-Git-Tag: v9.2.0598^0 X-Git-Url: http://git.ipfire.org/gitweb/index.cgi?a=commitdiff_plain;h=db3ce018b5e1b6d0fac482a52f948ba8ca3899fa;p=thirdparty%2Fvim.git patch 9.2.0598: tests: Test_statusline() is flaky Problem: Test_statusline() occasionally fails in CI, reading buffer text instead of the status line (e.g. '9012...' instead of '57,39'). Solution: In s:get_statusline() redraw unconditionally and read the screen cells directly with screenstring(), instead of relying on ScreenLines() whose own redraw! can process events and change the window layout between the redraw and reading the cells. This matches the already-stable s:Assert_match_statusline() helper in test_statuslineopt.vim. closes: #20428 Co-Authored-By: Claude Opus 4.8 (1M context) Signed-off-by: Hirohito Higashi Signed-off-by: Christian Brabandt --- diff --git a/src/testdir/test_statusline.vim b/src/testdir/test_statusline.vim index 48c7bb6696..d4267ee929 100644 --- a/src/testdir/test_statusline.vim +++ b/src/testdir/test_statusline.vim @@ -14,11 +14,15 @@ func TearDown() endfunc func s:get_statusline() + redraw! if has('gui_running') - redraw! sleep 1m endif - return ScreenLines(&lines - 1, &columns)[0] + " Read the screen directly after redraw! instead of going through + " ScreenLines(), whose own redraw! may process events and change the window + " layout between here and the screenstring() calls. + let row = &lines - 1 + return join(map(range(1, &columns), 'screenstring(row, v:val)'), '') endfunc func StatuslineWithCaughtError() diff --git a/src/version.c b/src/version.c index 81bd8d09f4..25903a8ede 100644 --- a/src/version.c +++ b/src/version.c @@ -729,6 +729,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 598, /**/ 597, /**/