From b5e8865ff2049b4da31a295c5b97e2740e98d26f Mon Sep 17 00:00:00 2001 From: Norbert Runge Date: Tue, 6 Mar 2018 23:13:49 +0000 Subject: [PATCH] ICU-13581 Make tests work, not crash, when run without ICU data X-SVN-Rev: 41073 --- icu4c/source/test/intltest/alphaindextst.cpp | 6 +++++- .../test/intltest/numbertest_patternmodifier.cpp | 9 +++++++-- icu4c/source/test/intltest/numfmtst.cpp | 16 ++++++++++++---- 3 files changed, 24 insertions(+), 7 deletions(-) diff --git a/icu4c/source/test/intltest/alphaindextst.cpp b/icu4c/source/test/intltest/alphaindextst.cpp index 667e0435a86..8a4edb27711 100644 --- a/icu4c/source/test/intltest/alphaindextst.cpp +++ b/icu4c/source/test/intltest/alphaindextst.cpp @@ -736,7 +736,11 @@ void AlphabeticIndexTest::testHasBuckets() { void AlphabeticIndexTest::checkHasBuckets(const Locale &locale, UScriptCode script) { IcuTestErrorCode errorCode(*this, "checkHasBuckets"); AlphabeticIndex aindex(locale, errorCode); - LocalPointer index(aindex.buildImmutableIndex(errorCode)); + LocalPointer index(aindex.buildImmutableIndex(errorCode), errorCode); + if (U_FAILURE(errorCode)) { + dataerrln("%s %d Error in index creation", __FILE__, __LINE__); + return; + } UnicodeString loc = locale.getName(); assertTrue(loc + u" at least 3 buckets", index->getBucketCount() >= 3); const AlphabeticIndex::Bucket *bucket = index->getBucket(1); diff --git a/icu4c/source/test/intltest/numbertest_patternmodifier.cpp b/icu4c/source/test/intltest/numbertest_patternmodifier.cpp index 07f840576bf..79c99e9c224 100644 --- a/icu4c/source/test/intltest/numbertest_patternmodifier.cpp +++ b/icu4c/source/test/intltest/numbertest_patternmodifier.cpp @@ -106,8 +106,13 @@ void PatternModifierTest::testPatternWithNoPlaceholder() { nsb.append(u"x123y", UNUM_FIELD_COUNT, status); assertSuccess("Spot 5", status); MicroProps micros; - LocalPointer imod(mod.createImmutable(status)); - assertSuccess("Spot 6", status); + LocalPointer imod(mod.createImmutable(status), status); + if (U_FAILURE(status)) { + dataerrln("%s %d Error in ImmutablePatternModifier creation", + __FILE__, __LINE__); + assertSuccess("Spot 6", status); + return; + } DecimalQuantity quantity; imod->applyToMicros(micros, quantity); micros.modMiddle->apply(nsb, 1, 4, status); diff --git a/icu4c/source/test/intltest/numfmtst.cpp b/icu4c/source/test/intltest/numfmtst.cpp index a72567903f5..c8fce9e28b6 100644 --- a/icu4c/source/test/intltest/numfmtst.cpp +++ b/icu4c/source/test/intltest/numfmtst.cpp @@ -8934,8 +8934,12 @@ void NumberFormatTest::Test11035_FormatCurrencyAmount() { // Test two ways to set a currency via API Locale loc1 = Locale("pt_PT"); - LocalPointer fmt1(NumberFormat::createCurrencyInstance(loc1, status)); - assertSuccess("Creating fmt1", status); + LocalPointer fmt1(NumberFormat::createCurrencyInstance("loc1", status), + status); + if (U_FAILURE(status)) { + dataerrln("%s %d NumberFormat instance fmt1 is null", __FILE__, __LINE__); + return; + } fmt1->setCurrency(u"PTE", status); assertSuccess("Setting currency on fmt1", status); UnicodeString actualSetCurrency; @@ -8947,7 +8951,7 @@ void NumberFormatTest::Test11035_FormatCurrencyAmount() { UnicodeString actualLocaleString; fmt2->format(amount, actualLocaleString); - // TODO: The following test fill fail until DecimalFormat wraps NumberFormatter. + // TODO: The following test will fail until DecimalFormat wraps NumberFormatter. if (!logKnownIssue("13574")) { assertEquals("Custom Currency Pattern, Set Currency", expected, actualSetCurrency); } @@ -8955,7 +8959,11 @@ void NumberFormatTest::Test11035_FormatCurrencyAmount() { void NumberFormatTest::Test11318_DoubleConversion() { IcuTestErrorCode status(*this, "Test11318_DoubleConversion"); - LocalPointer nf(NumberFormat::createInstance("en", status)); + LocalPointer nf(NumberFormat::createInstance("en", status), status); + if (U_FAILURE(status)) { + dataerrln("%s %d Error in NumberFormat instance creation", __FILE__, __LINE__); + return; + } nf->setMaximumFractionDigits(40); nf->setMaximumIntegerDigits(40); UnicodeString appendTo; -- 2.40.0