X-Git-Url: https://git.saurik.com/apple/icu.git/blobdiff_plain/73c04bcfe1096173b00431f0cdc742894b15eef0..f3c0d7a59d99c2a94c6b8822291f0e42be3773c9:/icuSources/test/intltest/canittst.cpp diff --git a/icuSources/test/intltest/canittst.cpp b/icuSources/test/intltest/canittst.cpp index 8e97744c..0a6baebb 100644 --- a/icuSources/test/intltest/canittst.cpp +++ b/icuSources/test/intltest/canittst.cpp @@ -1,6 +1,8 @@ +// © 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /******************************************************************** * COPYRIGHT: - * Copyright (c) 2002-2006, International Business Machines Corporation and + * Copyright (c) 2002-2016, International Business Machines Corporation and * others. All Rights Reserved. ******************************************************************** * @@ -13,6 +15,7 @@ #if !UCONFIG_NO_NORMALIZATION #include "intltest.h" +#include "cmemory.h" #include "cstring.h" #include "canittst.h" #include "unicode/caniter.h" @@ -20,8 +23,6 @@ #include "unicode/uchar.h" #include "hash.h" -#define ARRAY_LENGTH(array) ((int32_t)(sizeof (array) / sizeof (*array))) - #define CASE(id,test) case id: \ name = #test; \ if (exec) { \ @@ -71,6 +72,10 @@ CanonicalIteratorTest::~CanonicalIteratorTest() void CanonicalIteratorTest::TestExhaustive() { UErrorCode status = U_ZERO_ERROR; CanonicalIterator it("", status); + if (U_FAILURE(status)) { + dataerrln("Error creating CanonicalIterator: %s", u_errorName(status)); + return; + } UChar32 i = 0; UnicodeString s; // Test static and dynamic class IDs @@ -126,7 +131,7 @@ void CanonicalIteratorTest::TestBasic() { // NOTE: we use a TreeSet below to sort the output, which is not guaranteed to be sorted! Hashtable *permutations = new Hashtable(FALSE, status); - permutations->setValueDeleter(uhash_deleteUnicodeString); + permutations->setValueDeleter(uprv_deleteUObject); UnicodeString toPermute("ABC"); CanonicalIterator::permute(toPermute, FALSE, permutations, status); @@ -140,16 +145,16 @@ void CanonicalIteratorTest::TestBasic() { // try samples logln("testing samples"); Hashtable *set = new Hashtable(FALSE, status); - set->setValueDeleter(uhash_deleteUnicodeString); + set->setValueDeleter(uprv_deleteUObject); int32_t i = 0; CanonicalIterator it("", status); if(U_SUCCESS(status)) { - for (i = 0; i < ARRAY_LENGTH(testArray); ++i) { + for (i = 0; i < UPRV_LENGTHOF(testArray); ++i) { //logln("Results for: " + name.transliterate(testArray[i])); UnicodeString testStr = CharsToUnicodeString(testArray[i][0]); it.setSource(testStr, status); set->removeAll(); - while (TRUE) { + for (;;) { //UnicodeString *result = new UnicodeString(it.next()); UnicodeString result(it.next()); if (result.isBogus()) { @@ -159,11 +164,11 @@ void CanonicalIteratorTest::TestBasic() { //logln(++counter + ": " + hex.transliterate(result)); //logln(" = " + name.transliterate(result)); } - expectEqual(i + ": ", testStr, collectionToString(set), CharsToUnicodeString(testArray[i][1])); + expectEqual(i + UnicodeString(": "), testStr, collectionToString(set), CharsToUnicodeString(testArray[i][1])); } } else { - errln("Couldn't instantiate canonical iterator. Error: %s", u_errorName(status)); + dataerrln("Couldn't instantiate canonical iterator. Error: %s", u_errorName(status)); } delete set; } @@ -187,7 +192,7 @@ void CanonicalIteratorTest::characterTest(UnicodeString &s, UChar32 ch, Canonica it.setSource(s, status); - while (TRUE) { + for (;;) { UnicodeString item = it.next(); if (item.isBogus()) break; if (item == s) gotSource = TRUE; @@ -259,7 +264,7 @@ UnicodeString CanonicalIteratorTest::collectionToString(Hashtable *col) { int32_t i = 0; const UHashElement *ne = NULL; - int32_t el = -1; + int32_t el = UHASH_FIRST; //Iterator it = basic.iterator(); ne = col->nextElement(el); //while (it.hasNext()) @@ -303,6 +308,10 @@ void CanonicalIteratorTest::TestAPI() { logln("Testing CanonicalIterator::getSource"); logln("Instantiating canonical iterator with string "+start); CanonicalIterator can(start, status); + if (U_FAILURE(status)) { + dataerrln("Error creating CanonicalIterator: %s", u_errorName(status)); + return; + } UnicodeString source = can.getSource(); logln("CanonicalIterator::getSource returned "+source); if(start != source) {