X-Git-Url: https://git.saurik.com/apple/icu.git/blobdiff_plain/729e4ab9bc6618bc3d8a898e575df7f4019e29ca..1a147d096ae81f4c8262f7bfc56bd19fc2dee932:/icuSources/test/cintltst/creststn.c diff --git a/icuSources/test/cintltst/creststn.c b/icuSources/test/cintltst/creststn.c index c77bdcdb..4fe69d7a 100644 --- a/icuSources/test/cintltst/creststn.c +++ b/icuSources/test/cintltst/creststn.c @@ -1,11 +1,13 @@ +// © 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /******************************************************************** * COPYRIGHT: - * Copyright (c) 1997-2010, International Business Machines Corporation and + * Copyright (c) 1997-2016, International Business Machines Corporation and * others. All Rights Reserved. ********************************************************************/ /******************************************************************************* * -* File CRESTST.C +* File creststn.c * * Modification History: * Name Date Description @@ -21,7 +23,10 @@ #include "unicode/putil.h" #include "unicode/ustring.h" #include "unicode/ucnv.h" +#include "unicode/utf8.h" +#include "unicode/utf16.h" #include "string.h" +#include "cmemory.h" #include "cstring.h" #include "unicode/uchar.h" #include "ucol_imp.h" /* for U_ICUDATA_COLL */ @@ -170,7 +175,7 @@ param[] = { "ne", U_USING_DEFAULT_WARNING, e_Root, { TRUE, FALSE, FALSE }, { TRUE, FALSE, FALSE } } }; -static int32_t bundles_count = sizeof(param) / sizeof(param[0]); +static int32_t bundles_count = UPRV_LENGTHOF(param); @@ -202,11 +207,13 @@ void addNEWResourceBundleTest(TestNode** root) addTest(root, &TestDecodedBundle, "tsutil/creststn/TestDecodedBundle"); addTest(root, &TestResourceLevelAliasing, "tsutil/creststn/TestResourceLevelAliasing"); addTest(root, &TestDirectAccess, "tsutil/creststn/TestDirectAccess"); + addTest(root, &TestTicket9804, "tsutil/creststn/TestTicket9804"); addTest(root, &TestXPath, "tsutil/creststn/TestXPath"); addTest(root, &TestCLDRStyleAliases, "tsutil/creststn/TestCLDRStyleAliases"); addTest(root, &TestFallbackCodes, "tsutil/creststn/TestFallbackCodes"); addTest(root, &TestGetUTF8String, "tsutil/creststn/TestGetUTF8String"); addTest(root, &TestCLDRVersion, "tsutil/creststn/TestCLDRVersion"); + addTest(root, &TestPreventFallback, "tsutil/creststn/TestPreventFallback"); #endif addTest(root, &TestFallback, "tsutil/creststn/TestFallback"); addTest(root, &TestGetVersion, "tsutil/creststn/TestGetVersion"); @@ -250,7 +257,6 @@ static void checkStatus(int32_t line, UErrorCode expected, UErrorCode status) { } static void TestErrorCodes(void) { - static const UVersionInfo icu47 = { 4, 7, 0, 0 }; UErrorCode status = U_USING_DEFAULT_WARNING; UResourceBundle *r = NULL, *r2 = NULL; @@ -270,7 +276,7 @@ static void TestErrorCodes(void) { if(U_SUCCESS(status) && r != NULL) { status = U_USING_DEFAULT_WARNING; - r2 = ures_getByKey(r, "LocaleScript", NULL, &status); /* LocaleScript lives in ti */ + r2 = ures_getByKey(r, "ExemplarCharacters", NULL, &status); /* ExemplarCharacters lives in ti */ checkStatus(__LINE__, U_USING_FALLBACK_WARNING, status); } ures_close(r); @@ -279,14 +285,6 @@ static void TestErrorCodes(void) { status = U_USING_DEFAULT_WARNING; r = ures_open(U_ICUDATA_REGION, "ti", &status); checkStatus(__LINE__, U_USING_DEFAULT_WARNING, status); - - /* we look up the resource which is aliased and at our level */ - /* TODO: restore the following test when cldrbug 3058: is fixed */ - if(U_SUCCESS(status) && r != NULL && isICUVersionAtLeast(icu47)) { - status = U_USING_DEFAULT_WARNING; - r2 = ures_getByKey(r, "Countries", r2, &status); - checkStatus(__LINE__, U_USING_DEFAULT_WARNING, status); - } ures_close(r); status = U_USING_FALLBACK_WARNING; @@ -295,6 +293,7 @@ static void TestErrorCodes(void) { ures_close(r); ures_close(r2); +#if !UCONFIG_NO_COLLATION /** Now, with the collation bundle **/ /* first bundle should return fallback warning */ @@ -333,6 +332,7 @@ static void TestErrorCodes(void) { checkStatus(__LINE__, U_USING_DEFAULT_WARNING, status); ures_close(r); ures_close(r2); +#endif /* !UCONFIG_NO_COLLATION */ } static void TestAliasConflict(void) { @@ -358,7 +358,7 @@ static void TestAliasConflict(void) { } ures_close(he); - size = sizeof(norwayNames)/sizeof(norwayNames[0]); + size = UPRV_LENGTHOF(norwayNames); for(i = 0; i < size; i++) { status = U_ZERO_ERROR; norway = ures_open(NULL, norwayNames[i], &status); @@ -429,14 +429,10 @@ static void TestDecodedBundle(){ /* pre-flight */ int32_t num =0; const char *testdatapath = loadTestData(&error); - resB = ures_open(testdatapath, "iscii", &error); + resB = ures_open(testdatapath, "encoded", &error); srcFromRes=tres_getString(resB,-1,"str",&len,&error); if(U_FAILURE(error)){ -#if UCONFIG_NO_LEGACY_CONVERSION - log_info("Couldn't load iscii.bin from test data bundle, (because UCONFIG_NO_LEGACY_CONVERSION is turned on)\n"); -#else - log_data_err("Could not find iscii.bin from test data bundle. Error: %s\n", u_errorName(error)); -#endif + log_data_err("Could not find encoded.res from test data bundle. Error: %s\n", u_errorName(error)); ures_close(resB); return; } @@ -768,7 +764,7 @@ static void TestEmptyTypes() { int32_t len = 0; int32_t intResult = 0; const UChar *zeroString; - const int32_t *zeroIntVect; + const int32_t *zeroIntVect = NULL; strcpy(action, "Construction of testtypes bundle"); testdatapath=loadTestData(&status); @@ -843,6 +839,7 @@ static void TestEmptyTypes() { } else { zeroIntVect=ures_getIntVector(res, &len, &status); + (void)zeroIntVect; /* Suppress set but not used warning. */ if(!U_SUCCESS(status) || resArray != NULL || len != 0) { log_err("Shouldn't get emptyintv\n"); } @@ -859,6 +856,7 @@ static void TestEmptyTypes() { } else { binResult=ures_getBinary(res, &len, &status); + (void)binResult; /* Suppress set but not used warning. */ if(!U_SUCCESS(status) || len != 0) { log_err("Couldn't get emptybin, or it's not empty\n"); } @@ -925,11 +923,10 @@ static void TestEmptyBundle(){ } static void TestBinaryCollationData(){ +#if !UCONFIG_NO_COLLATION UErrorCode status=U_ZERO_ERROR; const char* locale="te"; -#if !UCONFIG_NO_COLLATION const char* testdatapath; -#endif UResourceBundle *teRes = NULL; UResourceBundle *coll=NULL; UResourceBundle *binColl = NULL; @@ -937,7 +934,6 @@ static void TestBinaryCollationData(){ int32_t len=0; const char* action="testing the binary collaton data"; -#if !UCONFIG_NO_COLLATION log_verbose("Testing binary collation data resource......\n"); testdatapath=loadTestData(&status); @@ -964,6 +960,7 @@ static void TestBinaryCollationData(){ CONFIRM_ErrorCode(status, U_ZERO_ERROR); CONFIRM_INT_EQ(ures_getType(binColl), URES_BINARY); binResult=(uint8_t*)ures_getBinary(binColl, &len, &status); + (void)binResult; /* Suppress set but not used warning. */ if(U_SUCCESS(status)){ CONFIRM_ErrorCode(status, U_ZERO_ERROR); CONFIRM_INT_GE(len, 1); @@ -1019,8 +1016,8 @@ static void TestAPI() { } #endif - u_memset(largeBuffer, 0x0030, sizeof(largeBuffer)/sizeof(largeBuffer[0])); - largeBuffer[sizeof(largeBuffer)/sizeof(largeBuffer[0])-1] = 0; + u_memset(largeBuffer, 0x0030, UPRV_LENGTHOF(largeBuffer)); + largeBuffer[UPRV_LENGTHOF(largeBuffer)-1] = 0; /*Test ures_openU */ @@ -1056,6 +1053,7 @@ static void TestAPI() { teFillin=ures_getByKey(teRes, "tagged_array_in_te_te_IN", teFillin, &status); key=ures_getKey(teFillin); value=(UChar*)ures_getNextString(teFillin, &len, &key, &status); + (void)value; /* Suppress set but not used warning. */ ures_resetIterator(NULL); value=(UChar*)ures_getNextString(teFillin, &len, &key, &status); if(status !=U_INDEX_OUTOFBOUNDS_ERROR){ @@ -1180,7 +1178,7 @@ static void TestErrorConditions(){ log_err("ERROR: ures_openU() is supposed to fail path =%s with status != U_ZERO_ERROR\n", austrdup(utestdatapath)); ures_close(teRes); } - /*Test ures_openFillIn with UResourceBundle = NULL*/ + /*Test ures_openFillIn fails when input UResourceBundle parameter is NULL*/ log_verbose("Testing ures_openFillIn with UResourceBundle = NULL.....\n"); status=U_ZERO_ERROR; ures_openFillIn(NULL, testdatapath, "te", &status); @@ -1188,6 +1186,14 @@ static void TestErrorConditions(){ log_err("ERROR: ures_openFillIn with UResourceBundle= NULL should fail. Expected U_ILLEGAL_ARGUMENT_ERROR, Got: %s\n", myErrorName(status)); } + /*Test ures_openDirectFillIn fails when input UResourceBundle parameter is NULL*/ + log_verbose("Testing ures_openDirectFillIn with UResourceBundle = NULL.....\n"); + status=U_ZERO_ERROR; + ures_openDirectFillIn(NULL, testdatapath, "te", &status); + if(status != U_ILLEGAL_ARGUMENT_ERROR){ + log_err("ERROR: ures_openDirectFillIn with UResourceBundle= NULL should fail. Expected U_ILLEGAL_ARGUMENT_ERROR, Got: %s\n", + myErrorName(status)); + } /*Test ures_getLocale() with status != U_ZERO_ERROR*/ status=U_ZERO_ERROR; teRes=ures_openU(utestdatapath, "te", &status); @@ -1410,6 +1416,7 @@ static void TestGetVersion(){ static void TestGetVersionColl(){ +#if !UCONFIG_NO_COLLATION UVersionInfo minVersionArray = {0x00, 0x00, 0x00, 0x00}; UVersionInfo maxVersionArray = {0x50, 0x80, 0xcf, 0xcf}; UVersionInfo versionArray; @@ -1421,7 +1428,18 @@ static void TestGetVersionColl(){ int32_t locLen; const UChar* rules =NULL; int32_t len = 0; - + + /* test NUL termination of UCARules */ + resB = ures_open(U_ICUDATA_COLL,locName, &status); + rules = tres_getString(resB,-1,"UCARules",&len, &status); + if(!rules || U_FAILURE(status)) { + log_data_err("Could not load UCARules for locale %s\n", locName); + status = U_ZERO_ERROR; + } else if(u_strlen(rules) != len){ + log_err("UCARules string not nul terminated! \n"); + } + ures_close(resB); + log_verbose("The ures_getVersion(%s) tests begin : \n", U_ICUDATA_COLL); locs = ures_openAvailableLocales(U_ICUDATA_COLL, &status); if (U_FAILURE(status)) { @@ -1429,22 +1447,13 @@ static void TestGetVersionColl(){ return; } - do{ + for (;;) { log_verbose("Testing version number for locale %s\n", locName); resB = ures_open(U_ICUDATA_COLL,locName, &status); if (U_FAILURE(status)) { log_err("Resource bundle creation for locale %s:%s failed.: %s\n", U_ICUDATA_COLL, locName, myErrorName(status)); ures_close(resB); - return; - } - /* test NUL termination of UCARules */ - rules = tres_getString(resB,-1,"UCARules",&len, &status); - if(!rules || U_FAILURE(status)) { - log_data_err("Could not load UCARules for locale %s\n", locName); - continue; - } - if(u_strlen(rules) != len){ - log_err("UCARules string not nul terminated! \n"); + break; } ures_getVersion(resB, versionArray); for (i=0; i<4; ++i) { @@ -1457,12 +1466,17 @@ static void TestGetVersionColl(){ } } ures_close(resB); - } while((locName = uenum_next(locs,&locLen,&status))&&U_SUCCESS(status)); - - if(U_FAILURE(status)) { - log_err("Err %s testing Collation locales.\n", u_errorName(status)); + locName = uenum_next(locs, &locLen, &status); + if(U_FAILURE(status)) { + log_err("uenum_next(locs) error %s\n", u_errorName(status)); + break; + } + if(locName == NULL) { + break; + } } uenum_close(locs); +#endif /* !UCONFIG_NO_COLLATION */ } static void TestResourceBundles() @@ -1599,7 +1613,7 @@ static UBool testTag(const char* frag, int32_t count = 0; int32_t row_count=0; int32_t column_count=0; - int32_t index = 0; + int32_t idx = 0; int32_t tag_count= 0; const char* testdatapath; char verboseOutput[256]; @@ -1775,25 +1789,25 @@ static UBool testTag(const char* frag, for (j=0; j<10; ++j){ - index = count ? (randi(count * 3) - count) : (randi(200) - 100); + idx = count ? (randi(count * 3) - count) : (randi(200) - 100); status = U_ZERO_ERROR; string=kERROR; array=ures_getByKey(theBundle, tag, array, &status); if(!U_FAILURE(status)){ UChar *t=NULL; - t=(UChar*)ures_getStringByIndex(array, index, &len, &status); + t=(UChar*)ures_getStringByIndex(array, idx, &len, &status); if(!U_FAILURE(status)){ UChar element[3]; string=t; u_strcpy(expected_string, base); - u_uastrcpy(element, itoa1(index,buf)); + u_uastrcpy(element, itoa1(idx,buf)); u_strcat(expected_string, element); } else { u_strcpy(expected_string, kERROR); } } - expected_status = (index >= 0 && index < count) ? expected_resource_status : U_MISSING_RESOURCE_ERROR; + expected_status = (idx >= 0 && idx < count) ? expected_resource_status : U_MISSING_RESOURCE_ERROR; CONFIRM_ErrorCode(status,expected_status); CONFIRM_EQ(string,expected_string); @@ -1919,11 +1933,11 @@ static UBool testTag(const char* frag, tag_count=ures_getSize(tags); CONFIRM_INT_GE((int32_t)tag_count, (int32_t)0); - for(index=0; index loc=%s\n", - gotAvail?'t':'f', equivLocale, - i/3, - expectAvail?'t':'f', inLocale, expectLocale); + log_err("FAIL: #%d: %s -> expect avail=%c, loc=%s but get %c, loc=%s\n", + i/3, inLocale, + expectAvail?'t':'f', expectLocale, + gotAvail?'t':'f', equivLocale); } } @@ -2554,12 +2629,14 @@ static void TestGetFunctionalEquivalentOf(const char *path, const char *resName, } static void TestGetFunctionalEquivalent(void) { +#if !UCONFIG_NO_COLLATION static const char * const collCases[] = { - /* avail locale equiv */ - "f", "de_US_CALIFORNIA", "de", + /* avail locale equiv */ + /* note: in ICU 64, empty locales are shown as available for collation */ + "f", "sv_US_CALIFORNIA", "sv", "f", "zh_TW@collation=stroke", "zh@collation=stroke", /* alias of zh_Hant_TW */ "t", "zh_Hant_TW@collation=stroke", "zh@collation=stroke", - "f", "de_CN@collation=pinyin", "de", + "f", "sv_CN@collation=pinyin", "sv", "t", "zh@collation=pinyin", "zh", "f", "zh_CN@collation=pinyin", "zh", /* alias of zh_Hans_CN */ "t", "zh_Hans_CN@collation=pinyin", "zh", @@ -2572,39 +2649,56 @@ static void TestGetFunctionalEquivalent(void) { "f", "zh_MO", "zh@collation=stroke", /* alias of zh_Hant_MO */ "t", "zh_Hant_MO", "zh@collation=stroke", "f", "zh_TW_STROKE", "zh@collation=stroke", - "f", "zh_TW_STROKE@collation=big5han", "zh@collation=big5han", - "f", "de_CN@calendar=japanese", "de", - "t", "de@calendar=japanese", "de", - "f", "zh_TW@collation=big5han", "zh@collation=big5han", /* alias of zh_Hant_TW */ - "t", "zh_Hant_TW@collation=big5han", "zh@collation=big5han", - "f", "zh_TW@collation=gb2312han", "zh@collation=gb2312han", /* alias of zh_Hant_TW */ - "t", "zh_Hant_TW@collation=gb2312han", "zh@collation=gb2312han", - "f", "zh_CN@collation=big5han", "zh@collation=big5han", /* alias of zh_Hans_CN */ - "t", "zh_Hans_CN@collation=big5han", "zh@collation=big5han", - "f", "zh_CN@collation=gb2312han", "zh@collation=gb2312han", /* alias of zh_Hans_CN */ - "t", "zh_Hans_CN@collation=gb2312han", "zh@collation=gb2312han", - "t", "zh@collation=big5han", "zh@collation=big5han", - "t", "zh@collation=gb2312han", "zh@collation=gb2312han", - "t", "hi_IN@collation=direct", "hi@collation=direct", + "f", "zh_TW_STROKE@collation=pinyin", "zh", + "f", "sv_CN@calendar=japanese", "sv", + "t", "sv@calendar=japanese", "sv", + "f", "zh_TW@collation=pinyin", "zh", /* alias of zh_Hant_TW */ + "t", "zh_Hant_TW@collation=pinyin", "zh", + "f", "zh_CN@collation=stroke", "zh@collation=stroke", /* alias of zh_Hans_CN */ + "t", "zh_Hans_CN@collation=stroke", "zh@collation=stroke", + "t", "de@collation=phonebook", "de@collation=phonebook", "t", "hi@collation=standard", "hi", - "t", "hi@collation=direct", "hi@collation=direct", - "f", "hi_AU@collation=direct;currency=CHF;calendar=buddhist", "hi@collation=direct", "f", "hi_AU@collation=standard;currency=CHF;calendar=buddhist", "hi", - "t", "de_DE@collation=pinyin", "de", /* bug 4582 tests */ - "f", "de_DE_BONN@collation=pinyin", "de", + "f", "sv_SE@collation=pinyin", "sv", /* bug 4582 tests */ + "f", "sv_SE_BONN@collation=pinyin", "sv", "t", "nl", "root", - "t", "nl_NL", "root", + "f", "nl_NL", "root", "f", "nl_NL_EEXT", "root", "t", "nl@collation=stroke", "root", - "t", "nl_NL@collation=stroke", "root", + "f", "nl_NL@collation=stroke", "root", "f", "nl_NL_EEXT@collation=stroke", "root", + /* Additions to test aliased locales */ + "f", "yue_HK", "zh@collation=stroke", + "f", "yue_Hant", "zh@collation=stroke", + "f", "yue_Hant_HK", "zh@collation=stroke", + "f", "yue@collation=stroke", "zh@collation=stroke", + "f", "yue@collation=pinyin", "zh", + "f", "yue_CN", "zh", + "f", "yue_Hans", "zh", + "f", "yue_Hans_CN", "zh", + "f", "yue_Hans@collation=pinyin", "zh", + "f", "yue_Hans@collation=stroke", "zh@collation=stroke", + "f", "mo", "mo", /* ? */ + "f", "no", "no", /* ? */ + "f", "ars", "ars", /* ? */ + "t", "wuu", "wuu", /* ? */ + /* Additions to test locales without resources */ + "f", "en_CN", "root", + "f", "zh_Hant_CN", "zh@collation=stroke", + "f", "zh_Hant_US", "zh@collation=stroke", + "f", "zh_Hans_US", "zh", + "f", "yue_TW", "zh@collation=stroke", + "f", "yue_US", "zh@collation=stroke", + "f", "ja_CN", "ja", + "f", "ja_US", "ja", NULL }; +#endif /* !UCONFIG_NO_COLLATION */ static const char *calCases[] = { - /* avail locale equiv */ - "t", "en_US_POSIX", "en_US@calendar=gregorian", - "f", "ja_JP_TOKYO", "ja_JP@calendar=gregorian", + /* avail locale equiv */ + "t", "en_US_POSIX", "en@calendar=gregorian", + "f", "ja_JP_TOKYO", "ja@calendar=gregorian", "f", "ja_JP_TOKYO@calendar=japanese", "ja@calendar=japanese", "t", "sr@calendar=gregorian", "sr@calendar=gregorian", "t", "en", "en@calendar=gregorian", @@ -2627,6 +2721,7 @@ static void TestGetFunctionalEquivalent(void) { len = ures_getFunctionalEquivalent(equivLocale, 255, U_ICUDATA_COLL, "calendar", "calendar", "ar_EG@calendar=islamic", &gotAvail, FALSE, &status); + (void)len; /* Suppress set but not used warning. */ if(status == U_MISSING_RESOURCE_ERROR) { log_verbose("PASS: Got expected U_MISSING_RESOURCE_ERROR\n"); @@ -2732,7 +2827,7 @@ static void TestCLDRStyleAliases(void) { /* instead of sprintf(resource, "a%i", i); */ a = ures_getByKeyWithFallback(alias, resource, a, &status); result = tres_getString(a, -1, NULL, &len, &status); - u_charsToUChars(expects[i], expected, strlen(expects[i])+1); + u_charsToUChars(expects[i], expected, (int32_t)strlen(expects[i])+1); if(U_FAILURE(status) || !result || u_strcmp(result, expected)) { log_err("CLDR style aliases failed resource with name \"%s\" resource, exp %s, got %S (%s)\n", resource, expects[i], result, myErrorName(status)); status = U_ZERO_ERROR; @@ -2806,7 +2901,7 @@ static void TestStackReuse(void) { */ extern const UChar * tres_getString(const UResourceBundle *resB, - int32_t index, const char *key, + int32_t idx, const char *key, int32_t *length, UErrorCode *status) { char buffer8[16]; @@ -2820,8 +2915,8 @@ tres_getString(const UResourceBundle *resB, if(length == NULL) { length = &length16; } - if(index >= 0) { - s16 = ures_getStringByIndex(resB, index, length, status); + if(idx >= 0) { + s16 = ures_getStringByIndex(resB, idx, length, status); } else if(key != NULL) { s16 = ures_getStringByKey(resB, key, length, status); } else { @@ -2836,8 +2931,8 @@ tres_getString(const UResourceBundle *resB, for(forceCopy = FALSE; forceCopy <= TRUE; ++forceCopy) { p8 = buffer8; length8 = (int32_t)sizeof(buffer8); - if(index >= 0) { - s8 = ures_getUTF8StringByIndex(resB, index, p8, &length8, forceCopy, status); + if(idx >= 0) { + s8 = ures_getUTF8StringByIndex(resB, idx, p8, &length8, forceCopy, status); } else if(key != NULL) { s8 = ures_getUTF8StringByKey(resB, key, p8, &length8, forceCopy, status); } else { @@ -2853,8 +2948,8 @@ tres_getString(const UResourceBundle *resB, if(p8 == NULL) { return s16; } - if(index >= 0) { - s8 = ures_getUTF8StringByIndex(resB, index, p8, &length8, forceCopy, status); + if(idx >= 0) { + s8 = ures_getUTF8StringByIndex(resB, idx, p8, &length8, forceCopy, status); } else if(key != NULL) { s8 = ures_getUTF8StringByKey(resB, key, p8, &length8, forceCopy, status); } else { @@ -2871,13 +2966,13 @@ tres_getString(const UResourceBundle *resB, if(forceCopy && s8 != p8) { log_err("ures_getUTF8String(%p, %ld, '%s') did not write the string to dest\n", - resB, (long)index, key); + resB, (long)idx, key); } /* verify NUL-termination */ if((p8 != buffer8 || length8 < sizeof(buffer8)) && s8[length8] != 0) { log_err("ures_getUTF8String(%p, %ld, '%s') did not NUL-terminate\n", - resB, (long)index, key); + resB, (long)idx, key); } /* verify correct string */ i16 = i8 = 0; @@ -2886,17 +2981,17 @@ tres_getString(const UResourceBundle *resB, U8_NEXT(s8, i8, length8, c8); if(c16 != c8) { log_err("ures_getUTF8String(%p, %ld, '%s') got a bad string, c16=U+%04lx!=U+%04lx=c8 before i16=%ld\n", - resB, (long)index, key, (long)c16, (long)c8, (long)i16); + resB, (long)idx, key, (long)c16, (long)c8, (long)i16); } } /* verify correct length */ if(i16 < length16) { log_err("ures_getUTF8String(%p, %ld, '%s') UTF-8 string too short, length8=%ld, length16=%ld\n", - resB, (long)index, key, (long)length8, (long)length16); + resB, (long)idx, key, (long)length8, (long)length16); } if(i8 < length8) { log_err("ures_getUTF8String(%p, %ld, '%s') UTF-8 string too long, length8=%ld, length16=%ld\n", - resB, (long)index, key, (long)length8, (long)length16); + resB, (long)idx, key, (long)length8, (long)length16); } /* clean up */ @@ -2942,6 +3037,7 @@ TestGetUTF8String() { status = U_ZERO_ERROR; length8 = (int32_t)sizeof(buffer8); s8 = ures_getUTF8StringByKey(res, "string_only_in_Root", buffer8, &length8, FALSE, &status); + (void)s8; /* Suppress set but not used warning. */ if(status != U_ZERO_ERROR) { log_err("ures_getUTF8StringByKey(testdata/root string) malfunctioned - %s\n", u_errorName(status)); }