]> granicus.if.org Git - icu/commitdiff
ICU-20119 Fixes for run-without-data BRS test. In all cases an error (#177) pre63-new-master
authorgnrunge <41129501+gnrunge@users.noreply.github.com>
Wed, 26 Sep 2018 23:23:35 +0000 (16:23 -0700)
committerShane Carr <shane@unicode.org>
Thu, 27 Sep 2018 21:27:42 +0000 (14:27 -0700)
check was needed in the test cases to prevent a segmentation fault.

icu4c/source/test/intltest/calregts.cpp
icu4c/source/test/intltest/loctest.cpp
icu4c/source/test/intltest/numfmtst.cpp

index da522637c6f9e83c30dc8ca20a4d44d4f774b48f..fc64851e2494f3bcfcb48270e7bfdfd2fe53a3ec 100644 (file)
@@ -1411,6 +1411,11 @@ void CalendarRegressionTest::test4118384()
 
     delete cal;
     cal = Calendar::createInstance(Locale("th_TH@calendar=buddhist"),status);
+    if(U_FAILURE(status)) {
+      dataerrln("Error creating calendar %s", u_errorName(status));
+      delete cal;
+      return;
+    }    
     // test deprecated functions
     if (cal->getLeastMaximum(Calendar::HOUR) != 11 ||
         cal->getMaximum(Calendar::HOUR) != 11) {
@@ -1425,6 +1430,11 @@ void CalendarRegressionTest::test4118384()
     delete cal;
     // test deprecated functions
     cal = Calendar::createInstance(Locale("ja_JP@calendar=japanese"),status);
+    if(U_FAILURE(status)) {
+      dataerrln("Error creating calendar %s", u_errorName(status));
+      delete cal;
+      return;
+    }    
     if (cal->getLeastMaximum(Calendar::HOUR) != 11 ||
         cal->getMaximum(Calendar::HOUR) != 11) {
         errln("Fail: Japanese:[deprecated functions] maximum of HOUR field should be 11\n");
index ae841189784f5df01e840243979e38c5af14c8a6..c467472767d8287755e2270c651cc5fc9684e231 100644 (file)
@@ -1770,13 +1770,17 @@ LocaleTest::TestCreateUnicodeKeywords(void) {
     status.errIfFailureAndReset("key #1");
     assertEquals("resultLength", 2, resultLength);
     assertTrue("key != nullptr", key != nullptr);
-    assertEquals("calendar", "ca", key);
+    if (key != nullptr) {
+        assertEquals("calendar", "ca", key);
+    }
 
     key = keys->next(&resultLength, status);
     status.errIfFailureAndReset("key #2");
     assertEquals("resultLength", 2, resultLength);
     assertTrue("key != nullptr", key != nullptr);
-    assertEquals("collation", "co", key);
+    if (key != nullptr) {
+        assertEquals("collation", "co", key);
+    }
 
     key = keys->next(&resultLength, status);
     status.errIfFailureAndReset("end of keys");
@@ -1789,12 +1793,16 @@ LocaleTest::TestCreateUnicodeKeywords(void) {
     skey = keys->snext(status);
     status.errIfFailureAndReset("skey #1");
     assertTrue("skey != nullptr", skey != nullptr);
-    assertEquals("calendar", "ca", *skey);
+    if (skey != nullptr) {
+        assertEquals("calendar", "ca", *skey);
+    }
 
     skey = keys->snext(status);
     status.errIfFailureAndReset("skey #2");
     assertTrue("skey != nullptr", skey != nullptr);
-    assertEquals("collation", "co", *skey);
+    if (skey != nullptr) {
+        assertEquals("collation", "co", *skey);
+    }
 
     skey = keys->snext(status);
     status.errIfFailureAndReset("end of keys");
index 5c7094e95697cc5dbf57fe88dca5d04491fd987d..34355939113b83738784a00e5be4eb215b19d5c0 100644 (file)
@@ -8947,6 +8947,10 @@ void NumberFormatTest::Test20073_StrictPercentParseErrorIndex() {
     IcuTestErrorCode status(*this, "Test20073_StrictPercentParseErrorIndex");
     ParsePosition parsePosition(0);
     DecimalFormat df(u"0%", {"en-us", status}, status);
+    if (U_FAILURE(status)) {
+        dataerrln("Unable to create DecimalFormat instance.");
+        return;
+    }
     df.setLenient(FALSE);
     Formattable result;
     df.parse(u"%2%", result, parsePosition);
@@ -9202,22 +9206,26 @@ void NumberFormatTest::Test20037_ScientificIntegerOverflow() {
     IcuTestErrorCode status(*this, "Test20037_ScientificIntegerOverflow");
 
     LocalPointer<NumberFormat> nf(NumberFormat::createInstance(status));
+    if (U_FAILURE(status)) {
+        dataerrln("Unable to create NumberFormat instance.");
+        return;
+    }
     Formattable result;
 
     // Test overflow of exponent
     nf->parse(u"1E-2147483648", result, status);
     StringPiece sp = result.getDecimalNumber(status);
     assertEquals(u"Should snap to zero",
-        u"0",
-        {sp.data(), sp.length(), US_INV});
+                 u"0",
+                 {sp.data(), sp.length(), US_INV});
 
     // Test edge case overflow of exponent
     result = Formattable();
     nf->parse(u"1E-2147483647E-1", result, status);
     sp = result.getDecimalNumber(status);
     assertEquals(u"Should not overflow and should parse only the first exponent",
-        u"1E-2147483647",
-        {sp.data(), sp.length(), US_INV});
+                 u"1E-2147483647",
+                 {sp.data(), sp.length(), US_INV});
 }
 
 void NumberFormatTest::Test13840_ParseLongStringCrash() {