Mercurial > vim
changeset 12150:709b898e2119 v8.0.0955
patch 8.0.0955: Test_existent_file() fails on some file systems
commit https://github.com/vim/vim/commit/82de3c2c036bc89c2d9bdea236e0a7f1208a5571
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Aug 17 17:35:36 2017 +0200
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)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Thu, 17 Aug 2017 17:45:05 +0200 |
parents | f819c1e17fb9 |
children | dcab6d218e96 |
files | src/testdir/test_stat.vim src/version.c |
diffstat | 2 files changed, 28 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- 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()