changeset 11187:515db00c4676 v8.0.0480

patch 8.0.0480: the remote_peek() test fails on MS-Windows commit https://github.com/vim/vim/commit/15e737f768542fcc516296b5c158e14cc7ba7feb Author: Bram Moolenaar <Bram@vim.org> 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.
author Christian Brabandt <cb@256bit.org>
date Sat, 18 Mar 2017 21:30:04 +0100
parents b924ba6a4bbc
children d23e8406bb84
files src/os_mswin.c src/testdir/runtest.vim src/version.c
diffstat 3 files changed, 22 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- 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. */
--- 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()
--- 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,