summaryrefslogtreecommitdiff
path: root/Build/source/libs/icu/icu-src/source/test/cintltst/cdattst.c
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs/icu/icu-src/source/test/cintltst/cdattst.c')
-rw-r--r--Build/source/libs/icu/icu-src/source/test/cintltst/cdattst.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/Build/source/libs/icu/icu-src/source/test/cintltst/cdattst.c b/Build/source/libs/icu/icu-src/source/test/cintltst/cdattst.c
index 00b2d6a01a1..2c5d51c64b2 100644
--- a/Build/source/libs/icu/icu-src/source/test/cintltst/cdattst.c
+++ b/Build/source/libs/icu/icu-src/source/test/cintltst/cdattst.c
@@ -45,6 +45,7 @@ static void TestFormatForFields(void);
static void TestForceGannenNumbering(void);
static void TestMapDateToCalFields(void);
static void TestNarrowQuarters(void);
+static void TestExtraneousCharacters(void);
void addDateForTest(TestNode** root);
@@ -67,6 +68,7 @@ void addDateForTest(TestNode** root)
TESTCASE(TestForceGannenNumbering);
TESTCASE(TestMapDateToCalFields);
TESTCASE(TestNarrowQuarters);
+ TESTCASE(TestExtraneousCharacters);
}
/* Testing the DateFormat API */
static void TestDateFormat()
@@ -2017,4 +2019,24 @@ static void TestNarrowQuarters(void) {
}
}
+static void TestExtraneousCharacters(void) {
+ // regression test for ICU-21802
+ UErrorCode err = U_ZERO_ERROR;
+ UCalendar* cal = ucal_open(u"UTC", -1, "en_US", UCAL_GREGORIAN, &err);
+ UDateFormat* df = udat_open(UDAT_PATTERN, UDAT_PATTERN, "en_US", u"UTC", -1, u"yyyyMMdd", -1, &err);
+
+ if (assertSuccess("Failed to create date formatter and calendar", &err)) {
+ udat_setLenient(df, false);
+
+ udat_parseCalendar(df, cal, u"2021", -1, NULL, &err);
+ assertTrue("Success parsing '2021'", err == U_PARSE_ERROR);
+
+ err = U_ZERO_ERROR;
+ udat_parseCalendar(df, cal, u"2021-", -1, NULL, &err);
+ assertTrue("Success parsing '2021-'", err == U_PARSE_ERROR);
+ }
+ udat_close(df);
+ ucal_close(cal);
+}
+
#endif /* #if !UCONFIG_NO_FORMATTING */