From b04028b5d8ea4ab9984f9ab648791013004dcefb Mon Sep 17 00:00:00 2001
From: Oliver Schmidt
Date: Tue, 24 Jul 2018 03:25:49 +0200
Subject: [PATCH] Added test for mktime() and gmtime().
A recent regression makes gmtime()/localtime() fail. So it's obviously desirable to have a test for that code.
---
test/val/time.c | 36 ++++++++++++++++++++++++++++++++++++
1 file changed, 36 insertions(+)
create mode 100644 test/val/time.c
diff --git a/test/val/time.c b/test/val/time.c
new file mode 100644
index 000000000..11b0dcf91
--- /dev/null
+++ b/test/val/time.c
@@ -0,0 +1,36 @@
+#include
+#include
+
+int main(void)
+{
+ int failures = 0;
+
+ struct tm timeinfo;
+ time_t rawtime;
+ struct tm *p_timeinfo;
+
+ timeinfo.tm_year = 2020 - 1900;
+ timeinfo.tm_mon = 12 - 1;
+ timeinfo.tm_mday = 24;
+ timeinfo.tm_hour = 10;
+ timeinfo.tm_min = 30;
+ timeinfo.tm_sec = 50;
+ timeinfo.tm_isdst = 0;
+
+ rawtime = mktime(&timeinfo);
+
+ failures += !(rawtime == 1608805850);
+
+ p_timeinfo = gmtime(&rawtime);
+
+ failures += !(p_timeinfo->tm_year == timeinfo.tm_year);
+ failures += !(p_timeinfo->tm_mon == timeinfo.tm_mon);
+ failures += !(p_timeinfo->tm_mday == timeinfo.tm_mday);
+ failures += !(p_timeinfo->tm_hour == timeinfo.tm_hour);
+ failures += !(p_timeinfo->tm_min == timeinfo.tm_min);
+ failures += !(p_timeinfo->tm_sec == timeinfo.tm_sec);
+
+ printf("%lu\n%s%d\n", rawtime, asctime(p_timeinfo), failures);
+
+ return failures;
+}
--
2.39.5