diff options
author | Bram Moolenaar <Bram@vim.org> | 2018-11-18 12:25:09 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2018-11-18 12:25:09 +0100 |
commit | addc156c38d442367854f71baee31f2eb003c699 (patch) | |
tree | f270aed8464bfffd3887f25181ea3c5a11a2b9aa /src | |
parent | 6b731886ca94d66b9bdedfb7e603af44a6400399 (diff) | |
download | vim-git-addc156c38d442367854f71baee31f2eb003c699.tar.gz |
patch 8.1.0536: file time test fails when using NFSv8.1.0536
Problem: File time test fails when using NFS.
Solution: Use three file times instead of localtim(). (James McCoy,
closes #3618)
Diffstat (limited to 'src')
-rw-r--r-- | src/testdir/test_stat.vim | 36 | ||||
-rw-r--r-- | src/version.c | 2 |
2 files changed, 21 insertions, 17 deletions
diff --git a/src/testdir/test_stat.vim b/src/testdir/test_stat.vim index 33509f021..e48e88766 100644 --- 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 index eaaf98ae0..c0a5845d5 100644 --- 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, |