From b15c90ee32f8c85ffad72619edd2b2a093d1b540 Mon Sep 17 00:00:00 2001
From: Peter Limkilde Svendsen <peter.limkilde@gmail.com>
Date: Tue, 26 May 2020 00:20:14 +0200
Subject: [PATCH] Add test for ctime_r()

---
 tests/expected/time/localtime.stdout |  1 +
 tests/time/localtime.c               | 11 +++++++++++
 2 files changed, 12 insertions(+)

diff --git a/tests/expected/time/localtime.stdout b/tests/expected/time/localtime.stdout
index e79e0fb8..a3807007 100644
--- a/tests/expected/time/localtime.stdout
+++ b/tests/expected/time/localtime.stdout
@@ -6,3 +6,4 @@ Year 70, Day of year: 0, Month 0, Day of month: 1, Day of week: 4, 0:0:0
 Year 70, Day of year: 0, Month 0, Day of month: 1, Day of week: 4, 0:0:1
 Year 118, Day of year: 193, Month 6, Day of month: 13, Day of week: 5, 4:9:10
 Fri Jul 13 06:03:43 2018
+Fri Jul 13 06:03:43 2018
diff --git a/tests/time/localtime.c b/tests/time/localtime.c
index df8d2d55..fd7af735 100644
--- a/tests/time/localtime.c
+++ b/tests/time/localtime.c
@@ -17,4 +17,15 @@ int main(void) {
 
     time_t input = 1531461823;
     fputs(ctime(&input), stdout); // Omit newline
+
+    char ctime_r_buffer[26];
+    /* ctime_r() generally returns the address of the provided buffer,
+     * but may return NULL upon error according to the spec. */
+    char *ctime_r_result = ctime_r(&input, ctime_r_buffer);
+    if (ctime_r_result == ctime_r_buffer) {
+        fputs(ctime_r_result, stdout);
+    }
+    else {
+        printf("Unexpected pointer from ctime_r: %p\n", ctime_r_result);
+    }
 }
-- 
GitLab