|
From: | Paul Eggert |
Subject: | Re: strftime test on Solaris based OS |
Date: | Mon, 20 Feb 2017 15:21:48 -0800 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0 |
Bruno Haible wrote:
On Dyson OS, a Solaris based OS with Debian packaging system [1], the gnulib 'strftime' test fails: FAIL: test-strftime =================== NZST-12NZDT,M9.5.0,M4.1.0/3: expected "1970-01-01 13:00:00 +1300 (NZDT)", got "1970-01-01 13:00:00 +1300 (NZST)" NZST-12NZDT,M9.5.0,M4.1.0/3: expected "1985-11-05 13:53:21 +1300 (NZDT)", got "1985-11-05 13:53:21 +1300 (NZST)" PST8PDT,M3.2.0,M11.1.0: expected "2001-09-08 18:46:42 -0700 (PDT)", got "2001-09-08 18:46:42 -0700 (PST)" CET-1CEST,M3.5.0,M10.5.0/3: expected "2001-09-09 03:46:42 +0200 (CEST)", got "2001-09-09 03:46:42 +0200 (CET)" FAIL test-strftime (exit status: 1) Any ideas? Paul?
Apparently strftime %Z is not working even though %z works. I assume HAVE_TM_ZONE is not defined and that HAVE_TZNAME is defined (that's how things should be on Solaris; you can check this in config.h). On the troublesome cases, __strftime_internal should set zone=NULL, then tzname_vec = tz->tzname_copy, then zone = tzname_vec[tp->tm_isdst != 0]; since tp->tm_isdst should be 1, this should set zone = tz->tzname_copy[1]. Since 'zone' is wrong, I suggest running test-strftime under GDB and investigating whether 'zone' is wrong because tz->tzname_copy[1] is wrong, or because tp->tm_isdst is wrong.
For what it's worth I can't reproduce the bug on either Solaris 10 sparc, or on Solaris 11 x86-64. I tried 32- and 64-bit builds on both platforms. I couldn't download Dyson OS and to be honest would rather not fight with installing it.
[Prev in Thread] | Current Thread | [Next in Thread] |