[PATCH] test-parse-date: fix timezone name used to test local time with DST
Yuya Nishihara
yuya at tcha.org
Sat Feb 13 03:19:40 EST 2016
On Sat, 13 Feb 2016 07:24:11 +0100, Sébastien Brissaud wrote:
> On 2016-02-11 07:29, Yuya Nishihara wrote:
> > On Sun, 07 Feb 2016 09:31:22 +0100, Sébastien Brissaud wrote:
> >> - $ TZ="PST+8PDT"
> >> + $ TZ="PST8PDT"
> >> $ export TZ
> >
> > It seems "PST+8PDT" is valid.
> >
> > http://www.gnu.org/software/libc/manual/html_node/TZ-Variable.html
>
> > Do you have any problem with "PST+8PDT" ?
>
> I'm running Debian testing and test-parse-date.t failed with incorrect
> DST offsets:
> - Sat Jul 15 13:30:00 2006 -0700
> + Sat Jul 15 13:30:00 2006 -0800
Hmm, I'm on Debian sid, but I couldn't reproduce the problem.
ii libc6:amd64 2.21-7 amd64 GNU C Library: Shared libraries
ii python 2.7.11-1 amd64 interactive high-level object-ori
ii tzdata 2016a-1 all time zone and daylight-saving tim
> Setting TZ to PST8PDT make the test pass.
> But as you said earlier 'PST+8PDT' is a valid TZ value.
>
> In fact it seems to be related as how TZ is managed on my system.
>
> Testing it directly in a python shell exhibit the same problem:
> Python 2.7.11 (default, Jan 11 2016, 21:04:40)
> [GCC 5.3.1 20160101] on linux2
> >>> os.environ['TZ'] = 'PST+8PDT'
> >>> time.tzset()
> >>> time.tzname
> ('PST', 'PST')
> >>>
> >>> os.environ['TZ'] = 'PST8PDT'
> >>> time.tzset()
> >>> time.tzname
> ('PST', 'PDT')
>
> PST8PDT works for me because it's resolved to a timezone file in
> /usr/share/zoneinfo.
> I'll investigate the posix compliancy/configuration of TZ in my system.
>
> test-parse-date.t is thus correct and my patch is irrelevant.
That said, since "PST+8PDT" does not specify dst start/end, it would depend
on the system zoneinfo files anyway.
% TZ=PST+8PDT strace date 2>&1 | grep zoneinfo
open("/usr/share/zoneinfo/PST+8PDT", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/share/zoneinfo/posixrules", O_RDONLY|O_CLOEXEC) = 3
% TZ=PST8PDT strace date 2>&1 | grep zoneinfo
open("/usr/share/zoneinfo/PST8PDT", O_RDONLY|O_CLOEXEC) = 3
https://sourceware.org/git/?p=glibc.git;a=blob;f=time/tzset.c;h=8bc7a2e05bb83e9e6e37d6f2b6db2d6ad49b9b8b;hb=4e42b5b8f89f0e288e68be7ad70f9525aebc2cff#l278
If PST8PDT can provide more stable result, it will be fine to use that TZ
value. Can you resend the patch with updated commit message?
More information about the Mercurial-devel
mailing list