ICU-21268 Add error checks to avoid segmentation faults if tests run with stubdata only.
ICU-21268 Use 'nullptr' instead of NULL when checking for pointer value.
ICU-21268: Fixes error message.
ICU-21268 Style fixes (space before '{').
diff --git a/icu4c/source/test/intltest/dtfmttst.cpp b/icu4c/source/test/intltest/dtfmttst.cpp
index fc0a5f6..3bd5136 100644
--- a/icu4c/source/test/intltest/dtfmttst.cpp
+++ b/icu4c/source/test/intltest/dtfmttst.cpp
@@ -3478,6 +3478,7 @@
UnicodeString actual;
SimpleDateFormat smptfmt("Z", locale, status);
+ ASSERT_OK(status);
assertEquals("TimeZone from SimpleDateFormat constructor",
expectedTimezone, smptfmt.getTimeZone().getID(actual));
assertEquals("Calendar from SimpleDateFormat constructor",
@@ -3485,13 +3486,20 @@
LocalPointer<DateFormat> datefmt(
DateFormat::createDateInstance(DateFormat::kDefault, locale));
+ if (datefmt == nullptr) {
+ dataerrln("Error calling DateFormat::createDateInstance()");
+ return;
+ }
assertEquals("TimeZone from DateFormat::createDateInstance",
expectedTimezone, datefmt->getTimeZone().getID(actual));
assertEquals("Calendar from DateFormat::createDateInstance",
testLine[2], datefmt->getCalendar()->getType());
-
LocalPointer<DateFormat> timefmt(
DateFormat::createTimeInstance(DateFormat::kDefault, locale));
+ if (timefmt == nullptr) {
+ dataerrln("Error calling DateFormat::createTimeInstance()");
+ return;
+ }
assertEquals("TimeZone from TimeFormat::createTimeInstance",
expectedTimezone, timefmt->getTimeZone().getID(actual));
assertEquals("Calendar from DateFormat::createTimeInstance",
@@ -3500,6 +3508,10 @@
LocalPointer<DateFormat> datetimefmt(
DateFormat::createDateTimeInstance(
DateFormat::kDefault, DateFormat::kDefault, locale));
+ if (datetimefmt == nullptr) {
+ dataerrln("Error calling DateFormat::createDateTimeInstance()");
+ return;
+ }
assertEquals("TimeZone from DateTimeFormat::createDateTimeInstance",
expectedTimezone, datetimefmt->getTimeZone().getID(actual));
assertEquals("Calendar from DateFormat::createDateTimeInstance",
diff --git a/icu4c/source/test/intltest/numfmtst.cpp b/icu4c/source/test/intltest/numfmtst.cpp
index 3be453f..86e1032 100644
--- a/icu4c/source/test/intltest/numfmtst.cpp
+++ b/icu4c/source/test/intltest/numfmtst.cpp
@@ -10013,7 +10013,13 @@
ParsePosition ppos;
DecimalFormatSymbols dfs(Locale::getEnglish(), status);
+ if (status.errDataIfFailureAndReset()) {
+ return;
+ }
DecimalFormat df(patternString, dfs, status);
+ if (status.errDataIfFailureAndReset()) {
+ return;
+ }
df.setLenient(FALSE);
LocalPointer<CurrencyAmount> ca_strict(df.parseCurrency(inputString, ppos));
if (ca_strict != nullptr) {