# HG changeset patch # User Christian Brabandt # Date 1489869004 -3600 # Node ID 515db00c4676a2f2c66c716933e54322d4003a9f # Parent b924ba6a4bbc351a491d22b4025bd2af204ae2d4 patch 8.0.0480: the remote_peek() test fails on MS-Windows commit https://github.com/vim/vim/commit/15e737f768542fcc516296b5c158e14cc7ba7feb Author: Bram Moolenaar Date: Sat Mar 18 21:22:47 2017 +0100 patch 8.0.0480: the remote_peek() test fails on MS-Windows Problem: The remote_peek() test fails on MS-Windows. Solution: Check for pending messages. Also report errors in the first run if a flaky test fails twice. diff --git a/src/os_mswin.c b/src/os_mswin.c --- a/src/os_mswin.c +++ b/src/os_mswin.c @@ -2526,6 +2526,7 @@ serverGetReply(HWND server, int *expr_re int i; char_u *reply; reply_T *rep; + int did_process = FALSE; /* When waiting, loop until the message waiting for is received. */ for (;;) @@ -2562,7 +2563,17 @@ serverGetReply(HWND server, int *expr_re /* If we got here, we didn't find a reply. Return immediately if the * "wait" parameter isn't set. */ if (!wait) + { + /* Process pending messages once. Without this, looping on + * remote_peek() would never get the reply. */ + if (!did_process) + { + did_process = TRUE; + serverProcessPendingMessages(); + continue; + } break; + } /* We need to wait for a reply. Enter a message loop until the * "reply_received" flag gets set. */ diff --git a/src/testdir/runtest.vim b/src/testdir/runtest.vim --- a/src/testdir/runtest.vim +++ b/src/testdir/runtest.vim @@ -250,8 +250,17 @@ for s:test in sort(s:tests) call add(s:messages, 'Found errors in ' . s:test . ':') call extend(s:messages, v:errors) call add(s:messages, 'Flaky test failed, running it again') + let first_run = v:errors + let v:errors = [] call RunTheTest(s:test) + if len(v:errors) > 0 + let second_run = v:errors + let v:errors = ['First run:'] + call extend(v:errors, first_run) + call add(v:errors, 'Second run:') + call extend(v:errors, second_run) + endif endif call AfterTheTest() diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -765,6 +765,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 480, +/**/ 479, /**/ 478,