137 lines
4.9 KiB
Diff
137 lines
4.9 KiB
Diff
From 6dd2dae7cfe2077c3af854a6220fe582b6bad999 Mon Sep 17 00:00:00 2001
|
|
From: DJ Delorie <dj@redhat.com>
|
|
Date: Thu, 15 Oct 2020 16:31:04 +0800
|
|
Subject: [PATCH] Add Reiwa era tests to time/tst-strftime3.c Also fix printf
|
|
warning
|
|
|
|
---
|
|
time/tst-strftime3.c | 72 +++++++++++++++++++++++++++++++++++++++++--
|
|
1 files changed, 72 insertions(+), 0 deletions(-)
|
|
|
|
diff --git a/time/tst-strftime3.c b/time/tst-strftime3.c
|
|
index a4c427b3..0ec14869 100644
|
|
--- a/time/tst-strftime3.c
|
|
+++ b/time/tst-strftime3.c
|
|
@@ -1,5 +1,5 @@
|
|
/* Data-driven tests for strftime/strptime.
|
|
- Copyright (C) 2019 Free Software Foundation, Inc. This file is
|
|
+ Copyright (C) 2019-2020 Free Software Foundation, Inc. This file is
|
|
part of the GNU C Library.
|
|
|
|
The GNU C Library is free software; you can redistribute it and/or
|
|
@@ -14,7 +14,7 @@
|
|
|
|
You should have received a copy of the GNU Lesser General Public
|
|
License along with the GNU C Library; if not, see
|
|
- <http://www.gnu.org/licenses/>. */
|
|
+ <https://www.gnu.org/licenses/>. */
|
|
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
@@ -25,6 +25,7 @@
|
|
|
|
#include <support/check.h>
|
|
#include <array_length.h>
|
|
+#include <libc-diag.h>
|
|
|
|
/* These exist for the convenience of writing the test data, because
|
|
zero-based vs one-based. */
|
|
@@ -291,6 +292,62 @@ const Data data[] = {
|
|
1990, Jan, 1, Mon, 12, 00, 00, "ja_JP.EUC-JP", "%EY",
|
|
/* <U5E73><U6210>02<U5E74> 平成02年 */
|
|
"\xca\xbf\xc0\xae""02\xc7\xaf" },
|
|
+
|
|
+
|
|
+ { "Japanese era change, 2019, before transition year",
|
|
+ 2018, Dec, 31, Mon, 12, 00, 00, "ja_JP.UTF-8", "%EY",
|
|
+ /* <U5E73><U6210>30<U5E74> 昭和30年 */
|
|
+ "\xe5\xb9\xb3\xe6\x88\x90""30\xe5\xb9\xb4" },
|
|
+ { "Japanese era change, 2019, start of transition year",
|
|
+ 2019, Jan, 1, Tue, 12, 00, 00, "ja_JP.UTF-8", "%EY",
|
|
+ /* <U5E73><U6210>30<U5E74> 昭和31年 */
|
|
+ "\xe5\xb9\xb3\xe6\x88\x90""31\xe5\xb9\xb4" },
|
|
+
|
|
+ { "Japanese era change, 2019, before transition",
|
|
+ 2019, Apr, 30, Tue, 12, 00, 00, "ja_JP.UTF-8", "%EY",
|
|
+ /* <U5E73><U6210>30<U5E74> 昭和31年 */
|
|
+ "\xe5\xb9\xb3\xe6\x88\x90""31\xe5\xb9\xb4" },
|
|
+ { "Japanese era change, 2019, after transition",
|
|
+ 2019, May, 1, Wed, 12, 00, 00, "ja_JP.UTF-8", "%EY",
|
|
+ /* <U4EE4><U548C><U5143><U5E74> 令和元年 */
|
|
+ "\xe4\xbb\xa4\xe5\x92\x8c\xe5\x85\x83\xe5\xb9\xb4" },
|
|
+
|
|
+ { "Japanese era change, 2019, end of transition year",
|
|
+ 2019, Dec, 31, Tue, 12, 00, 00, "ja_JP.UTF-8", "%EY",
|
|
+ /* <U4EE4><U548C><U5143><U5E74> 令和元年 */
|
|
+ "\xe4\xbb\xa4\xe5\x92\x8c\xe5\x85\x83\xe5\xb9\xb4" },
|
|
+ { "Japanese era change, 2019, after transition year",
|
|
+ 2020, Jan, 1, Wed, 12, 00, 00, "ja_JP.UTF-8", "%EY",
|
|
+ /* <U4EE4><U548C>02<U5E74> 令和02年 */
|
|
+ "\xe4\xbb\xa4\xe5\x92\x8c""02\xe5\xb9\xb4" },
|
|
+
|
|
+
|
|
+ { "Japanese era change, 2019, before transition year",
|
|
+ 2018, Dec, 31, Mon, 12, 00, 00, "ja_JP.EUC-JP", "%EY",
|
|
+ /* <U5E73><U6210>30<U5E74> 昭和30年 */
|
|
+ "\xca\xbf\xc0\xae""30\xc7\xaf" },
|
|
+ { "Japanese era change, 2019, start of transition year",
|
|
+ 2019, Jan, 1, Tue, 12, 00, 00, "ja_JP.EUC-JP", "%EY",
|
|
+ /* <U5E73><U6210>30<U5E74> 昭和31年 */
|
|
+ "\xca\xbf\xc0\xae""31\xc7\xaf" },
|
|
+
|
|
+ { "Japanese era change, 2019, before transition",
|
|
+ 2019, Apr, 30, Tue, 12, 00, 00, "ja_JP.EUC-JP", "%EY",
|
|
+ /* <U5E73><U6210>30<U5E74> 昭和31年 */
|
|
+ "\xca\xbf\xc0\xae""31\xc7\xaf" },
|
|
+ { "Japanese era change, 2019, after transition",
|
|
+ 2019, May, 1, Wed, 12, 00, 00, "ja_JP.EUC-JP", "%EY",
|
|
+ /* <U4EE4><U548C><U5143><U5E74> 令和元年 */
|
|
+ "\xce\xe1\xcf\xc2\xb8\xb5\xc7\xaf" },
|
|
+
|
|
+ { "Japanese era change, 2019, end of transition year",
|
|
+ 2019, Dec, 31, Tue, 12, 00, 00, "ja_JP.EUC-JP", "%EY",
|
|
+ /* <U4EE4><U548C><U5143><U5E74> 令和元年 */
|
|
+ "\xce\xe1\xcf\xc2\xb8\xb5\xc7\xaf" },
|
|
+ { "Japanese era change, 2019, after transition year",
|
|
+ 2020, Jan, 1, Wed, 12, 00, 00, "ja_JP.EUC-JP", "%EY",
|
|
+ /* <U4EE4><U548C>02<U5E74> 令和02年 */
|
|
+ "\xce\xe1\xcf\xc2""02\xc7\xaf" },
|
|
};
|
|
|
|
#define NDATA array_length(data)
|
|
@@ -348,7 +405,7 @@ print_string_hex (const char *header, const char *str)
|
|
if (' ' <= w[i] && w[i] <= '~')
|
|
putchar (w[i]);
|
|
else
|
|
- printf ("<U%04X>", w[i]);
|
|
+ printf ("<U%04X>", (int) w[i]);
|
|
}
|
|
printf ("\n");
|
|
}
|
|
@@ -384,6 +441,14 @@ tm_to_printed (struct tm *tm, char *buffer)
|
|
sprintf (temp, "%d", tm->tm_wday);
|
|
}
|
|
|
|
+ DIAG_PUSH_NEEDS_COMMENT;
|
|
+#if __GNUC_PREREQ (9, 0)
|
|
+ /* GCC 9 warns that strncmp may truncate its output, but that's why
|
|
+ we're using it. When it needs to truncate, it got corrupted
|
|
+ data, and we only care that the string is different than valid
|
|
+ data, which won't truncate. */
|
|
+ DIAG_IGNORE_NEEDS_COMMENT (9, "-Wformat-truncation=");
|
|
+#endif
|
|
snprintf (buffer, TMBUFLEN, "%04d/%02d/%02d %02d:%02d:%02d %s",
|
|
tm->tm_year + 1900,
|
|
tm->tm_mon + 1,
|
|
@@ -392,6 +457,7 @@ tm_to_printed (struct tm *tm, char *buffer)
|
|
tm->tm_min,
|
|
tm->tm_sec,
|
|
wn);
|
|
+ DIAG_POP_NEEDS_COMMENT;
|
|
}
|
|
|
|
static int
|
|
--
|
|
2.23.0
|
|
|