Discussion:
strftime test on Solaris based OS
(too old to reply)
Bruno Haible
2017-02-19 15:17:06 UTC
Permalink
Raw Message
Hi,

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?


How to reproduce:
- Install Dyson OS in a VM [2][3].
- Download development packages.
# apt-get update; apt-get install bzip2 make gcc binutils-doc libc-manpages gdb vim-nox vim-doc
- Build a gnulib testdir.

Bruno

[1] https://www.osdyson.org/projects/dyson/wiki
[2] http://ftp.nluug.nl/os/illumos/dyson/ftp/iso/2016-09-24/
[3] https://www.osdyson.org/projects/dyson/wiki/Dyson_Installer
Paul Eggert
2017-02-20 23:21:48 UTC
Permalink
Raw Message
Post by Bruno Haible
On Dyson OS, a Solaris based OS with Debian packaging system [1],
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.
Loading...