]> git.saurik.com Git - apple/icu.git/blobdiff - icuSources/test/intltest/regiontst.cpp
ICU-551.24.tar.gz
[apple/icu.git] / icuSources / test / intltest / regiontst.cpp
index 635a1b5623585a09bd4c75ae5714cd826d53dcdd..7f0b9625967239d7ae241722db702679c67148c2 100644 (file)
@@ -1,6 +1,6 @@
 /***********************************************************************
  * COPYRIGHT: 
- * Copyright (c) 2013, International Business Machines Corporation
+ * Copyright (c) 2013-2015, International Business Machines Corporation
  * and others. All Rights Reserved.
  ***********************************************************************/
  
@@ -25,8 +25,6 @@ typedef struct KnownRegion {
   const char *containingContinent;
 } KnownRegion;
 
-#define LENGTHOF(array) (int32_t)(sizeof(array) / sizeof((array)[0]))
-
 static KnownRegion knownRegions[] = {
     // Code, Num, Parent, Type,             Containing Continent
     { "TP" , 626, "035", URGN_TERRITORY, "142" },
@@ -364,7 +362,7 @@ RegionTest::runIndexedTest( int32_t index, UBool exec, const char* &name, char*
 
 void RegionTest::TestKnownRegions() {
 
-    for (int32_t i = 0 ; i < LENGTHOF(knownRegions) ; i++ ) {
+    for (int32_t i = 0 ; i < UPRV_LENGTHOF(knownRegions) ; i++ ) {
         KnownRegion rd = knownRegions[i];
         UErrorCode status = U_ZERO_ERROR;
         const Region *r = Region::getInstance(rd.code,status);
@@ -415,17 +413,17 @@ void RegionTest::TestGetInstanceString() {
     UErrorCode status = U_ZERO_ERROR;
     const Region *r = Region::getInstance((const char *)NULL,status);
     if ( status != U_ILLEGAL_ARGUMENT_ERROR ) {
-        errln("Calling Region::getInstance(NULL) should have triggered an U_ILLEGAL_ARGUMENT_ERROR, but didn't.");
+        errcheckln(status, "Calling Region::getInstance(NULL) should have triggered an U_ILLEGAL_ARGUMENT_ERROR, but didn't. - %s", u_errorName(status));
     }
 
     status = U_ZERO_ERROR;
     r = Region::getInstance("BOGUS",status);
     if ( status != U_ILLEGAL_ARGUMENT_ERROR ) {
-        errln("Calling Region::getInstance(\"BOGUS\") should have triggered an U_ILLEGAL_ARGUMENT_ERROR, but didn't.");
+        errcheckln(status, "Calling Region::getInstance(\"BOGUS\") should have triggered an U_ILLEGAL_ARGUMENT_ERROR, but didn't. - %s", u_errorName(status));
     }
 
 
-    for (int32_t i = 0 ; i < LENGTHOF(testData) ; i++ ) {
+    for (int32_t i = 0 ; i < UPRV_LENGTHOF(testData) ; i++ ) {
         TestData data = testData[i];
         status = U_ZERO_ERROR;
         r = Region::getInstance(data.inputID,status);
@@ -466,10 +464,10 @@ void RegionTest::TestGetInstanceInt() {
     UErrorCode status = U_ZERO_ERROR;
     Region::getInstance(-123,status);
     if ( status != U_ILLEGAL_ARGUMENT_ERROR ) {
-        errln("Calling Region::getInstance(-123) should have triggered an U_ILLEGAL_ARGUMENT_ERROR, but didn't.");
+        errcheckln(status, "Calling Region::getInstance(-123) should have triggered an U_ILLEGAL_ARGUMENT_ERROR, but didn't. - %s", u_errorName(status));
     }
 
-    for (int32_t i = 0 ; i < LENGTHOF(testData) ; i++ ) {
+    for (int32_t i = 0 ; i < UPRV_LENGTHOF(testData) ; i++ ) {
         TestData data = testData[i];
         status = U_ZERO_ERROR;
         const Region *r = Region::getInstance(data.inputID,status);
@@ -492,7 +490,7 @@ void RegionTest::TestGetInstanceInt() {
 }
 
 void RegionTest::TestGetContainedRegions() {
-    for (int32_t i = 0 ; i < LENGTHOF(knownRegions) ; i++ ) {
+    for (int32_t i = 0 ; i < UPRV_LENGTHOF(knownRegions) ; i++ ) {
         KnownRegion rd = knownRegions[i];
         UErrorCode status = U_ZERO_ERROR;
 
@@ -501,7 +499,11 @@ void RegionTest::TestGetContainedRegions() {
             if (r->getType() == URGN_GROUPING) {
                 continue;
             }
-            StringEnumeration *containedRegions = r->getContainedRegions();
+            StringEnumeration *containedRegions = r->getContainedRegions(status);
+            if (U_FAILURE(status)) {
+              errln("%s->getContainedRegions(status) failed: %s", r->getRegionCode(), u_errorName(status));
+              continue;
+            }
             for ( int32_t i = 0 ; i < containedRegions->count(status); i++ ) {
                 const char *crID = containedRegions->next(NULL,status);
                 const Region *cr = Region::getInstance(crID,status);
@@ -519,7 +521,7 @@ void RegionTest::TestGetContainedRegions() {
 }
 
 void RegionTest::TestGetContainedRegionsWithType() {
-    for (int32_t i = 0 ; i < LENGTHOF(knownRegions) ; i++ ) {
+    for (int32_t i = 0 ; i < UPRV_LENGTHOF(knownRegions) ; i++ ) {
         KnownRegion rd = knownRegions[i];
         UErrorCode status = U_ZERO_ERROR;
 
@@ -528,7 +530,11 @@ void RegionTest::TestGetContainedRegionsWithType() {
             if (r->getType() != URGN_CONTINENT) {
                 continue;
             }
-            StringEnumeration *containedRegions = r->getContainedRegions(URGN_TERRITORY);
+            StringEnumeration *containedRegions = r->getContainedRegions(URGN_TERRITORY, status);
+            if (U_FAILURE(status)) {
+              errln("%s->getContainedRegions(URGN_TERRITORY, status) failed: %s", r->getRegionCode(), u_errorName(status));
+              continue;
+            }
             for ( int32_t j = 0 ; j < containedRegions->count(status); j++ ) {
                 const char *crID = containedRegions->next(NULL,status);
                 const Region *cr = Region::getInstance(crID,status);
@@ -546,7 +552,7 @@ void RegionTest::TestGetContainedRegionsWithType() {
 }
 
 void RegionTest::TestGetContainingRegion() {        
-    for (int32_t i = 0 ; i < LENGTHOF(knownRegions) ; i++ ) {
+    for (int32_t i = 0 ; i < UPRV_LENGTHOF(knownRegions) ; i++ ) {
         KnownRegion rd = knownRegions[i];
         UErrorCode status = U_ZERO_ERROR;
         const Region *r = Region::getInstance(rd.code,status);
@@ -570,7 +576,7 @@ void RegionTest::TestGetContainingRegion() {
 }
 
 void RegionTest::TestGetContainingRegionWithType() {        
-    for (int32_t i = 0 ; i < LENGTHOF(knownRegions) ; i++ ) {
+    for (int32_t i = 0 ; i < UPRV_LENGTHOF(knownRegions) ; i++ ) {
         KnownRegion rd = knownRegions[i];
         UErrorCode status = U_ZERO_ERROR;
 
@@ -610,7 +616,11 @@ void RegionTest::TestGetPreferredValues() {
         UErrorCode status = U_ZERO_ERROR;
         const Region *r = Region::getInstance(data[0],status);
         if (r) {
-            StringEnumeration *preferredValues = r->getPreferredValues();
+            StringEnumeration *preferredValues = r->getPreferredValues(status);
+            if (U_FAILURE(status)) {
+              errln("%s->getPreferredValues(status) failed: %s", r->getRegionCode(), u_errorName(status));
+              continue;
+            }
             for ( int i = 1 ; data[i] ; i++ ) {
                 UBool found = FALSE;
                 preferredValues->reset(status);
@@ -632,7 +642,7 @@ void RegionTest::TestGetPreferredValues() {
 }
 
 void RegionTest::TestContains() {        
-    for (int32_t i = 0 ; i < LENGTHOF(knownRegions) ; i++ ) {
+    for (int32_t i = 0 ; i < UPRV_LENGTHOF(knownRegions) ; i++ ) {
         KnownRegion rd = knownRegions[i];
         UErrorCode status = U_ZERO_ERROR;
 
@@ -655,13 +665,21 @@ void RegionTest::TestAvailableTerritories() {
     // Test to make sure that the set of territories contained in World and the set of all available
     // territories are one and the same.
     UErrorCode status = U_ZERO_ERROR;
-    StringEnumeration *availableTerritories = Region::getAvailable(URGN_TERRITORY);
+    StringEnumeration *availableTerritories = Region::getAvailable(URGN_TERRITORY, status);
+    if (U_FAILURE(status)) {
+        dataerrln("Region::getAvailable(URGN_TERRITORY,status) failed: %s", u_errorName(status));
+        return;
+    }
     const Region *world = Region::getInstance("001",status);
     if (U_FAILURE(status)) {
         dataerrln("Region::getInstance(\"001\",status) failed: %s", u_errorName(status));
         return;
     }
-    StringEnumeration *containedInWorld = world->getContainedRegions(URGN_TERRITORY);
+    StringEnumeration *containedInWorld = world->getContainedRegions(URGN_TERRITORY, status);
+    if (U_FAILURE(status)) {
+        errln("world->getContainedRegions(URGN_TERRITORY, status) failed: %s", u_errorName(status));
+        return;
+    }
     if ( !availableTerritories || !containedInWorld || *availableTerritories != *containedInWorld ) {
         char availableTerritoriesString[1024] = "";
         char containedInWorldString[1024] = "";
@@ -699,7 +717,11 @@ void RegionTest::TestNoContainedRegions(void) {
       dataerrln("Fail called to Region::getInstance(\"BM\", status) - %s", u_errorName(status));
       return;
   }
-  StringEnumeration *containedRegions = region->getContainedRegions();
+  StringEnumeration *containedRegions = region->getContainedRegions(status);
+  if (U_FAILURE(status)) {
+      errln("%s->getContainedRegions(status) failed: %s", region->getRegionCode(), u_errorName(status));
+      return;
+  }
   const char *emptyStr = containedRegions->next(NULL, status);
   if (U_FAILURE(status)||(emptyStr!=NULL)) {
     errln("Error, 'BM' should have no subregions, but returned str=%p, err=%s\n", emptyStr, u_errorName(status));