File tree 1 file changed +31
-2
lines changed 1 file changed +31
-2
lines changed Original file line number Diff line number Diff line change @@ -35,12 +35,41 @@ TEST_CASE("Can sync time", "[time]")
35
35
delay (100 );
36
36
}
37
37
{
38
- time_t now = time (nullptr );
39
- Serial.println (ctime (&now));
38
+ time_t now = time (nullptr );
39
+ Serial.println (ctime (&now));
40
40
}
41
41
CHECK (false );
42
42
}
43
43
44
+ TEST_CASE (" #1745 mktime and localtime" , " [time]" )
45
+ {
46
+ struct tm tm_in;
47
+ struct tm tm_out;
48
+
49
+ const int years[] = {2012 , 2013 , 2014 };
50
+ const time_t timestamps[] = {1332640800 , 1364176800 , 1395712800 };
51
+
52
+ for (int i = 0 ; i < sizeof (years)/sizeof (years[0 ]); ++i) {
53
+ tm_in.tm_year = years[i] - 1900 ;
54
+ tm_in.tm_mon = 2 ;
55
+ tm_in.tm_mday = 25 ;
56
+ tm_in.tm_hour = 2 ;
57
+ tm_in.tm_min = 0 ;
58
+ tm_in.tm_sec = 0 ;
59
+ tm_in.tm_wday = 0 ;
60
+ time_t ts = mktime (&tm_in);
61
+ CHECK (ts == timestamps[i]);
62
+ localtime_r (&ts, &tm_out);
63
+ CHECK (tm_in.tm_year == tm_out.tm_year );
64
+ CHECK (tm_in.tm_mon == tm_out.tm_mon );
65
+ CHECK (tm_in.tm_mday == tm_out.tm_mday );
66
+ CHECK (tm_in.tm_hour == tm_out.tm_hour );
67
+ CHECK (tm_in.tm_min == tm_out.tm_min );
68
+ CHECK (tm_in.tm_sec == tm_out.tm_sec );
69
+ CHECK (tm_in.tm_wday == tm_out.tm_wday );
70
+ }
71
+ }
72
+
44
73
void loop ()
45
74
{
46
75
}
You can’t perform that action at this time.
0 commit comments