Mercurial > vim
diff src/testdir/test_functions.vim @ 17135:d03a52e02f1a v8.1.1567
patch 8.1.1567: localtime_r() does not respond to $TZ changes
commit https://github.com/vim/vim/commit/db51730df1817fc4b6ecf5a065c69fac518ad821
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue Jun 18 22:53:24 2019 +0200
patch 8.1.1567: localtime_r() does not respond to $TZ changes
Problem: Localtime_r() does not respond to $TZ changes.
Solution: If $TZ changes then call tzset(). (Tom Ryder)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Tue, 18 Jun 2019 23:00:07 +0200 |
parents | efd36a9052cc |
children | ca4e6685e2f4 |
line wrap: on
line diff
--- a/src/testdir/test_functions.vim +++ b/src/testdir/test_functions.vim @@ -187,6 +187,30 @@ func Test_strftime() call assert_fails('call strftime([])', 'E730:') call assert_fails('call strftime("%Y", [])', 'E745:') + + " Check that the time changes after we change the timezone + " Save previous timezone value, if any + if exists('$TZ') + let tz = $TZ + endif + + " Force EST and then UTC, save the current hour (24-hour clock) for each + let $TZ = 'EST' | let est = strftime('%H') + let $TZ = 'UTC' | let utc = strftime('%H') + + " Those hours should be two bytes long, and should not be the same; if they + " are, a tzset(3) call may have failed somewhere + call assert_equal(strlen(est), 2) + call assert_equal(strlen(utc), 2) + call assert_notequal(est, utc) + + " If we cached a timezone value, put it back, otherwise clear it + if exists('tz') + let $TZ = tz + else + unlet $TZ + endif + endfunc func Test_resolve_unix()