2 Copyright (C) 2024 Free Software Foundation, Inc.
4 This program is free software: you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation, either version 3 of the License, or
7 (at your option) any later version.
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
14 You should have received a copy of the GNU General Public License
15 along with this program. If not, see <https://www.gnu.org/licenses/>. */
17 /* Written by Bruno Haible <bruno@clisp.org>, 2024. */
32 time_t t
= 1509000003; /* 2017-10-26 06:40:03 */
34 struct tm
*result
= gmtime_r (&t
, &tm
);
35 ASSERT (result
== &tm
);
36 ASSERT (result
->tm_sec
== 3);
37 ASSERT (result
->tm_min
== 40);
38 ASSERT (result
->tm_hour
== 6);
39 ASSERT (result
->tm_mday
== 26);
40 ASSERT (result
->tm_mon
== 10 - 1);
41 ASSERT (result
->tm_year
== 2017 - 1900);
42 ASSERT (result
->tm_wday
== 4);
43 ASSERT (result
->tm_yday
== 298);
44 ASSERT (result
->tm_isdst
== 0);
45 #if HAVE_STRUCT_TM_TM_GMTOFF /* glibc, musl, macOS, FreeBSD, NetBSD, OpenBSD, Minix, Cygwin, Android */
46 ASSERT (result
->tm_gmtoff
== 0);
48 #if HAVE_STRUCT_TM_TM_ZONE /* glibc, musl, macOS, FreeBSD, NetBSD, OpenBSD, Minix, Cygwin, Android */
49 printf ("tm_zone = %s\n", result
->tm_zone
== NULL
? "(null)" : result
->tm_zone
);
50 ASSERT (strcmp (result
->tm_zone
, "GMT") == 0 /* glibc, NetBSD, OpenBSD, Minix, Cygwin, Android */
51 || strcmp (result
->tm_zone
, "UTC") == 0 /* musl, macOS, FreeBSD */);
55 return test_exit_status
;