diff options
author | Bram Moolenaar <Bram@vim.org> | 2017-08-17 17:35:36 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2017-08-17 17:35:36 +0200 |
commit | 82de3c2c036bc89c2d9bdea236e0a7f1208a5571 (patch) | |
tree | 08103b0f4960663313bc1ac072a1ca0cb2e57679 /src/testdir/test_stat.vim | |
parent | bc906e445c77eb4fb5ef97465a45b46499bba111 (diff) | |
download | vim-82de3c2c036bc89c2d9bdea236e0a7f1208a5571.zip |
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)
Diffstat (limited to 'src/testdir/test_stat.vim')
-rw-r--r-- | src/testdir/test_stat.vim | 31 |
1 files changed, 26 insertions, 5 deletions
diff --git a/src/testdir/test_stat.vim b/src/testdir/test_stat.vim index 6adc5a945..de5fac46f 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() |