From b851c53b91cc9a43c70dd248fb142e6201f203a8 Mon Sep 17 00:00:00 2001 From: Jeff Genovy <29107334+jefgen@users.noreply.github.com> Date: Wed, 4 Sep 2019 22:56:32 -0700 Subject: [PATCH] ICU-20807 BRS65: Environment test failure in cintltst-timezone The test fails for "America/Argentina/ComodRivadavia", which has length of 32, the same as the buffer. The results in the string being not terminated with a NUL. This increases the buffer size used by the test, and also checks for the string not terminated warning. --- icu4c/source/test/cintltst/ccaltst.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/icu4c/source/test/cintltst/ccaltst.c b/icu4c/source/test/cintltst/ccaltst.c index ca6dc94ba6..44cf712e0f 100644 --- a/icu4c/source/test/cintltst/ccaltst.c +++ b/icu4c/source/test/cintltst/ccaltst.c @@ -114,7 +114,8 @@ static void TestCalendar() UChar *result = 0; int32_t resultlength, resultlengthneeded; char tempMsgBuf[1024]; // u_austrcpy() of some formatted dates & times. - UChar zone1[32], zone2[32]; + char tempMsgBuf2[256]; // u_austrcpy() of some formatted dates & times. + UChar zone1[64], zone2[64]; const char *tzver = 0; UChar canonicalID[64]; UBool isSystemID = FALSE; @@ -231,7 +232,7 @@ static void TestCalendar() /*Test ucal_set/getDefaultTimeZone and ucal_getHostTimeZone */ status = U_ZERO_ERROR; i = ucal_getDefaultTimeZone(zone1, UPRV_LENGTHOF(zone1), &status); - if (U_FAILURE(status)) { + if (U_FAILURE(status) || status == U_STRING_NOT_TERMINATED_WARNING) { log_err("FAIL: ucal_getDefaultTimeZone() => %s\n", u_errorName(status)); } else { @@ -250,11 +251,12 @@ static void TestCalendar() } else { // Redetect the host timezone, it should be the same as zone1 even though ICU's default timezone has been changed. i = ucal_getHostTimeZone(zone2, UPRV_LENGTHOF(zone2), &status); - if (U_FAILURE(status)) { + if (U_FAILURE(status) || status == U_STRING_NOT_TERMINATED_WARNING) { log_err("FAIL: ucal_getHostTimeZone() => %s\n", u_errorName(status)); } else { if (u_strcmp(zone1, zone2) != 0) { - log_err("FAIL: ucal_getHostTimeZone() should give the same host timezone even if the default changed.\n"); + log_err("FAIL: ucal_getHostTimeZone() should give the same host timezone even if the default changed. (Got '%s', Expected '%s').\n", + u_austrcpy(tempMsgBuf, zone2), u_austrcpy(tempMsgBuf2, zone1)); } } }