patch 8.0.0955: Test_existent_file() fails on some file systems

Problem:    Test_existent_file() fails on some file systems.
Solution:   Run the test again with a sleep when the test fails without a
            sleep. (James McCoy, closes #1984)
diff --git a/src/testdir/test_stat.vim b/src/testdir/test_stat.vim
index 6adc5a9..de5fac4 100644
--- a/src/testdir/test_stat.vim
+++ b/src/testdir/test_stat.vim
@@ -1,20 +1,41 @@
 " Tests for stat functions and checktime
 
-func Test_existent_file()
+func CheckFileTime(doSleep)
   let fname = 'Xtest.tmp'
+  let result = 0
 
   let ts = localtime()
+  if a:doSleep
+    sleep 1
+  endif
   let fl = ['Hello World!']
   call writefile(fl, fname)
   let tf = getftime(fname)
+  if a:doSleep
+    sleep 1
+  endif
   let te = localtime()
 
-  call assert_true(ts <= tf && tf <= te)
-  call assert_equal(strlen(fl[0] . "\n"), getfsize(fname))
-  call assert_equal('file', getftype(fname))
-  call assert_equal('rw-', getfperm(fname)[0:2])
+  let time_correct = (ts <= tf && tf <= te)
+  if a:doSleep || time_correct
+    call assert_true(time_correct)
+    call assert_equal(strlen(fl[0] . "\n"), getfsize(fname))
+    call assert_equal('file', getftype(fname))
+    call assert_equal('rw-', getfperm(fname)[0:2])
+    let result = 1
+  endif
 
   call delete(fname)
+  return result
+endfunc
+
+func Test_existent_file()
+  " On some systems the file timestamp is rounded to a multiple of 2 seconds.
+  " We need to sleep to handle that, but that makes the test slow.  First try
+  " without the sleep, and if it fails try again with the sleep.
+  if CheckFileTime(0) == 0
+    call CheckFileTime(1)
+  endif
 endfunc
 
 func Test_existent_directory()
diff --git a/src/version.c b/src/version.c
index 0990d83..9859b4a 100644
--- a/src/version.c
+++ b/src/version.c
@@ -770,6 +770,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    955,
+/**/
     954,
 /**/
     953,