]> granicus.if.org Git - icu/commitdiff
ICU-20438 Fixes issues found in the no-data testing of ICU4C (BRS health check)
authorNorbert Runge <nrunge@google.com>
Thu, 28 Feb 2019 01:54:49 +0000 (17:54 -0800)
committergnrunge <41129501+gnrunge@users.noreply.github.com>
Thu, 28 Feb 2019 17:59:48 +0000 (09:59 -0800)
ICU-20438 Review feedback worked in.

icu4c/source/test/cintltst/uformattedvaluetst.c
icu4c/source/test/intltest/dtifmtts.cpp
icu4c/source/test/intltest/formattedvaluetest.cpp
icu4c/source/test/intltest/listformattertest.cpp
icu4c/source/test/intltest/measfmttest.cpp
icu4c/source/test/intltest/numfmtst.cpp
icu4c/source/test/intltest/reldatefmttest.cpp

index b046880114b121c79b2e5347102bdf96858f7d1a..a5e378664592ecfa946d2e1e8bf516b3392e35c6 100644 (file)
@@ -194,6 +194,10 @@ static void checkFormattedValueString(
         UErrorCode* ec) {
     int32_t length;
     const UChar* actualString = ufmtval_getString(fv, &length, ec);
+    if (U_FAILURE(*ec)) {
+        assertIntEquals(message, 0, length);
+        return;
+    }
     assertSuccess(message, ec);
     // The string is guaranteed to be NUL-terminated.
     int32_t actualLength = u_strlen(actualString);
index 6955c532239d935502b9bf553d32b1842c78541a..5c610ebb3effb334ebe94ae7e9c5d1a89b3825ad 100644 (file)
@@ -1673,7 +1673,9 @@ void DateIntervalFormatTest::testFormattedDateInterval() {
         const char16_t* message = u"FormattedDateInterval test 1";
         const char16_t* expectedString = u"July 20 \u2013 25, 2018";
         LocalPointer<Calendar> input1(Calendar::createInstance("en-GB", status));
+        if (status.errIfFailureAndReset()) { return; }
         LocalPointer<Calendar> input2(Calendar::createInstance("en-GB", status));
+        if (status.errIfFailureAndReset()) { return; }
         input1->set(2018, 6, 20);
         input2->set(2018, 6, 25);
         FormattedDateInterval result = fmt->formatToValue(*input1, *input2, status);
@@ -1704,7 +1706,9 @@ void DateIntervalFormatTest::testFormattedDateInterval() {
         const char16_t* message = u"FormattedDateInterval with fallback format test 1";
         const char16_t* expectedString = u"<< July 25, 2018 --- July 20, 2018 >>";
         LocalPointer<Calendar> input1(Calendar::createInstance("en-GB", status));
+        if (status.errIfFailureAndReset()) { return; }
         LocalPointer<Calendar> input2(Calendar::createInstance("en-GB", status));
+        if (status.errIfFailureAndReset()) { return; }
         input1->set(2018, 6, 20);
         input2->set(2018, 6, 25);
         FormattedDateInterval result = fmt->formatToValue(*input1, *input2, status);
index 0b84b4cb2f33c4e15cd8a5e7b3d97deb596ff5b4..976a90ba38eada00eba24475aa478c88973dff9e 100644 (file)
@@ -212,8 +212,10 @@ void IntlTestWithFieldPosition::checkMixedFormattedValue(
 
     // The temp string is guaranteed to be NUL-terminated
     UnicodeString readOnlyAlias = fv.toTempString(status);
-    assertEquals(baseMessage + u"NUL-terminated",
-        0, readOnlyAlias.getBuffer()[readOnlyAlias.length()]);
+    if (!status.errIfFailureAndReset()) {
+        assertEquals(baseMessage + u"NUL-terminated",
+            0, readOnlyAlias.getBuffer()[readOnlyAlias.length()]);
+    }
 
     // Check nextPosition over all fields
     ConstrainedFieldPosition cfpos;
index 952ef7dc11ba8f8c3d910f13acf2523b2e5a5ba8..763f933095e2ef39992ce7f1e872595cf4d77aec 100644 (file)
@@ -544,6 +544,7 @@ void ListFormatterTest::TestOutOfOrderPatterns() {
 void ListFormatterTest::TestFormattedValue() {
     IcuTestErrorCode status(*this, "TestFormattedValue");
     LocalPointer<ListFormatter> fmt(ListFormatter::createInstance("en", status));
+    if (status.errIfFailureAndReset()) { return; }
 
     {
         const char16_t* message = u"Field position test 1";
index 71d8d2bafa4b940c0c388d9926ba1abb9dbecbcf..1b73f541559ad048f8658e49e7bd414efcf481db 100644 (file)
@@ -2684,7 +2684,9 @@ void MeasureFormatTest::Test20332_PersonUnits() {
     };
     for (const auto& cas : cases) {
         MeasureFormat mf(cas.locale, cas.width, status);
+        if (status.errIfFailureAndReset()) { return; }
         Measure measure(25, cas.unitToAdopt, status);
+        if (status.errIfFailureAndReset()) { return; }
         verifyFormat(cas.locale, mf, &measure, 1, cas.expected);
     }
 }
index e79be759ba02b235b2c651494c03f1f7e70d78fc..26ae4046459fa4158e860cfea09a2d6819edf43e 100644 (file)
@@ -9472,6 +9472,7 @@ void NumberFormatTest::Test20348_CurrencyPrefixOverride() {
     IcuTestErrorCode status(*this, "Test20348_CurrencyPrefixOverride");
     LocalPointer<DecimalFormat> fmt(static_cast<DecimalFormat*>(
         NumberFormat::createCurrencyInstance("en", status)));
+    if (status.errIfFailureAndReset()) { return; }
     UnicodeString result;
     assertEquals("Initial pattern",
         u"¤#,##0.00", fmt->toPattern(result.remove()));
@@ -9507,6 +9508,7 @@ void NumberFormatTest::Test20358_GroupingInPattern() {
     IcuTestErrorCode status(*this, "Test20358_GroupingInPattern");
     LocalPointer<DecimalFormat> fmt(static_cast<DecimalFormat*>(
         NumberFormat::createInstance("en", status)));
+    if (status.errIfFailureAndReset()) { return; }
     UnicodeString result;
     assertEquals("Initial pattern",
         u"#,##0.###", fmt->toPattern(result.remove()));
@@ -9538,6 +9540,7 @@ void NumberFormatTest::Test13731_DefaultCurrency() {
     {
         LocalPointer<NumberFormat> nf(NumberFormat::createInstance(
             "en", UNumberFormatStyle::UNUM_CURRENCY, status), status);
+        if (status.errIfFailureAndReset()) { return; }
         assertEquals("symbol", u"¤1.10",
             nf->format(1.1, result.remove(), status));
         assertEquals("currency", u"XXX", nf->getCurrency());
@@ -9545,6 +9548,7 @@ void NumberFormatTest::Test13731_DefaultCurrency() {
     {
         LocalPointer<NumberFormat> nf(NumberFormat::createInstance(
             "en", UNumberFormatStyle::UNUM_CURRENCY_ISO, status), status);
+        if (status.errIfFailureAndReset()) { return; }
         assertEquals("iso_code", u"XXX 1.10",
             nf->format(1.1, result.remove(), status));
         assertEquals("currency", u"XXX", nf->getCurrency());
@@ -9552,6 +9556,7 @@ void NumberFormatTest::Test13731_DefaultCurrency() {
     {
         LocalPointer<NumberFormat> nf(NumberFormat::createInstance(
             "en", UNumberFormatStyle::UNUM_CURRENCY_PLURAL, status), status);
+        if (status.errIfFailureAndReset()) { return; }
         assertEquals("plural", u"1.10 (unknown currency)",
             nf->format(1.1, result.remove(), status));
         assertEquals("currency", u"XXX", nf->getCurrency());
index f95e4bbc24d6f09ad08e53ce49140e7d916bb962..baccceb33cd33486ccc7e25b83b5e82f67ea3187 100644 (file)
@@ -1424,6 +1424,7 @@ void RelativeDateTimeFormatterTest::TestRBNF() {
     IcuTestErrorCode status(*this, "TestRBNF");
 
     LocalPointer<RuleBasedNumberFormat> rbnf(new RuleBasedNumberFormat(URBNF_SPELLOUT, "en-us", status));
+    if (status.errIfFailureAndReset()) { return; }
     RelativeDateTimeFormatter fmt("en-us", rbnf.orphan(), status);
     UnicodeString result;
     assertEquals("format (direction)", "in five seconds",