@@ -26,10 +26,10 @@ void check_gmtime_localtime(time_t time) {
2626
2727 // gmtime and localtime are only equal when timezone is UTC
2828 if ((timezone == 0 ) && (strcmp (gmbuf , locbuf ) != 0 )) {
29- printf ("time: %lld, gmtime: %s != localtime: %s\n" , time , gmbuf , locbuf );
29+ printf ("time: %lld, gmtime: %s != localtime: %s\n" , ( long long ) time , gmbuf , locbuf );
3030 puts ("failed" );
3131 } else {
32- printf ("time: %lld, gmtime: %s\n" , time , gmbuf );
32+ printf ("time: %lld, gmtime: %s\n" , ( long long ) time , gmbuf );
3333 }
3434}
3535
@@ -38,13 +38,14 @@ int main() {
3838 time_t summer2002 = 1025528525ll ;
3939 struct tm * tm_ptr ;
4040
41+ #ifdef __EMSCRIPTEN__
4142 // Make sure stime() always fails.
4243 printf ("stime: %d\n" , stime (& xmas2002 ));
44+ #endif
4345
4446 // Verify that tzname sets *something*.
4547 tzset ();
4648 printf ("tzname[0] set: %d\n" , strlen (tzname [0 ]) >= 3 );
47- printf ("tzname[1] set: %d\n" , strlen (tzname [1 ]) >= 3 );
4849
4950 // Verify gmtime() creates correct struct.
5051 tm_ptr = gmtime (& xmas2002 );
@@ -58,7 +59,8 @@ int main() {
5859 printf ("yday: %d\n" , tm_ptr -> tm_yday );
5960 printf ("dst: %d\n" , tm_ptr -> tm_isdst );
6061 printf ("off: %ld\n" , (long )tm_ptr -> tm_gmtoff );
61- printf ("zone: %s\n" , tm_ptr -> tm_zone );
62+ // glibc used "GMT" there whereas musl uses "UTC"
63+ assert (strcmp (tm_ptr -> tm_zone , "GMT" ) || strcmp (tm_ptr -> tm_zone , "UTC" ));
6264
6365 // Verify timegm() reverses gmtime; run through an entire year in half hours.
6466 int timegmOk = 1 ;
@@ -89,7 +91,7 @@ int main() {
8991 printf ("localtime found DST data (summer): %s\n" , tm_summer .tm_isdst < 0 ? "no" : "yes" );
9092 printf ("localtime found DST data (winter): %s\n" , tm_winter .tm_isdst < 0 ? "no" : "yes" );
9193 int localeHasDst = tm_winter .tm_isdst == 1 || tm_summer .tm_isdst == 1 ; // DST is in December in south
92- printf ("localtime matches daylight: %s\n" , localeHasDst == _daylight ? "yes" : "no" );
94+ printf ("localtime matches daylight: %s\n" , localeHasDst == daylight ? "yes" : "no" );
9395 int goodGmtOff = (tm_winter .tm_gmtoff != tm_summer .tm_gmtoff ) == localeHasDst ;
9496 printf ("localtime gmtoff matches DST: %s\n" , goodGmtOff ? "yes" : "no" );
9597 printf ("localtime tm_zone matches tzname (winter): %s\n" ,
@@ -169,9 +171,7 @@ int main() {
169171 struct tm tm_big = {0 };
170172 tm_big .tm_year = 292278994 ;
171173 time_t tbig = mktime (& tm_big );
172- printf ("tbig: %lld\n" , tbig );
173- assert (tbig == -1 );
174- assert (errno == EOVERFLOW );
174+ assert ((tbig == -1 && errno == EOVERFLOW ) || tbig == 9223431975273600 );
175175
176176 // Verify localtime_r() doesn't clobber static data.
177177 time_t t3 = 60 * 60 * 24 * 5 ; // Jan 5 1970
0 commit comments