# HG changeset patch # User Bram Moolenaar # Date 1542540606 -3600 # Node ID c7628d6bc0dca6e1433055030bf3df428e96f376 # Parent 8fd94c25a9399a9028e88c0e9c007b71060acd7a patch 8.1.0536: file time test fails when using NFS commit https://github.com/vim/vim/commit/addc156c38d442367854f71baee31f2eb003c699 Author: Bram Moolenaar Date: Sun Nov 18 12:25:09 2018 +0100 patch 8.1.0536: file time test fails when using NFS Problem: File time test fails when using NFS. Solution: Use three file times instead of localtim(). (James McCoy, closes #3618) diff --git a/src/testdir/test_stat.vim b/src/testdir/test_stat.vim --- a/src/testdir/test_stat.vim +++ b/src/testdir/test_stat.vim @@ -1,31 +1,33 @@ " Tests for stat functions and checktime func CheckFileTime(doSleep) - let fname = 'Xtest.tmp' + let fnames = ['Xtest1.tmp', 'Xtest2.tmp', 'Xtest3.tmp'] + let times = [] let result = 0 - let ts = localtime() - if a:doSleep - sleep 1 - endif + " Use three files istead of localtim(), with a network filesystem the file + " times may differ at bit let fl = ['Hello World!'] - call writefile(fl, fname) - let tf = getftime(fname) - if a:doSleep - sleep 1 - endif - let te = localtime() + for fname in fnames + call writefile(fl, fname) + call add(times, getftime(fname)) + if a:doSleep + sleep 1 + endif + endfor - let time_correct = (ts <= tf && tf <= te) + let time_correct = (times[0] <= times[1] && times[1] <= times[2]) 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]) + call assert_true(time_correct, printf('Expected %s <= %s <= %s', times[0], times[1], times[2])) + call assert_equal(strlen(fl[0] . "\n"), getfsize(fnames[0])) + call assert_equal('file', getftype(fnames[0])) + call assert_equal('rw-', getfperm(fnames[0])[0:2]) let result = 1 endif - call delete(fname) + for fname in fnames + call delete(fname) + endfor return result endfunc diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -793,6 +793,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 536, +/**/ 535, /**/ 534,