Lines Matching defs:errorCode
17 #include "unicode/errorcode.h"
102 UBool readLine(UCHARBUF *f, IcuTestErrorCode &errorCode);
103 void parseString(int32_t &start, UnicodeString &prefix, UnicodeString &s, UErrorCode &errorCode);
104 Collation::Level parseRelationAndString(UnicodeString &s, IcuTestErrorCode &errorCode);
105 void parseAndSetAttribute(IcuTestErrorCode &errorCode);
106 void parseAndSetReorderCodes(int32_t start, IcuTestErrorCode &errorCode);
107 void buildTailoring(UCHARBUF *f, IcuTestErrorCode &errorCode);
108 void setRootCollator(IcuTestErrorCode &errorCode);
109 void setLocaleCollator(IcuTestErrorCode &errorCode);
111 UBool needsNormalization(const UnicodeString &s, UErrorCode &errorCode) const;
115 IcuTestErrorCode &errorCode);
118 CollationKey &key, IcuTestErrorCode &errorCode);
122 IcuTestErrorCode &errorCode);
123 void checkCompareStrings(UCHARBUF *f, IcuTestErrorCode &errorCode);
155 IcuTestErrorCode errorCode(*this, "TestMinMax");
157 setRootCollator(errorCode);
158 if(errorCode.isFailure()) {
159 errorCode.reset();
169 UVector64 ces(errorCode);
170 rbc->internalGetCEs(UnicodeString(FALSE, s, 2), ces, errorCode);
171 errorCode.assertSuccess();
192 IcuTestErrorCode errorCode(*this, "TestImplicits");
194 const CollationData *cd = CollationRoot::getData(errorCode);
195 if(errorCode.logDataIfFailureAndReset("CollationRoot::getBaseData()")) {
206 errorCode);
211 errorCode);
212 UnicodeSet unassigned("[[:Cn:][:Cs:][:Co:]]", errorCode);
214 if(errorCode.logIfFailureAndReset("UnicodeSet")) {
227 int64_t ce = ci.nextCE(errorCode);
228 int64_t ce2 = ci.nextCE(errorCode);
229 if(errorCode.logIfFailureAndReset("CollationIterator.nextCE()")) {
253 IcuTestErrorCode errorCode(*this, "TestNulTerminated");
254 const CollationData *data = CollationRoot::getData(errorCode);
255 if(errorCode.logDataIfFailureAndReset("CollationRoot::getData()")) {
264 int64_t ce1 = ci1.nextCE(errorCode);
265 int64_t ce2 = ci2.nextCE(errorCode);
266 if(errorCode.logIfFailureAndReset("CollationIterator.nextCE()")) {
278 IcuTestErrorCode errorCode(*this, "TestIllegalUTF8");
280 setRootCollator(errorCode);
281 if(errorCode.isFailure()) {
282 errorCode.reset();
285 coll->setAttribute(UCOL_STRENGTH, UCOL_IDENTICAL, errorCode);
303 UCollationResult order = coll->compareUTF8(fffd, illegal, errorCode);
327 IcuTestErrorCode errorCode(*this, "TestShortFCDData");
328 UnicodeSet expectedLccc("[:^lccc=0:]", errorCode);
329 errorCode.assertSuccess();
348 UnicodeSet expectedTccc("[:^tccc=0:]", errorCode);
349 if (errorCode.isSuccess()) {
383 IcuTestErrorCode errorCode(*this, "checkFCD");
387 UChar32 c1 = ci.nextCodePoint(errorCode);
399 UChar32 c1 = ci.previousCodePoint(errorCode);
410 UChar32 c1 = ci.nextCodePoint(errorCode);
422 UChar32 c1 = ci.previousCodePoint(errorCode);
434 IcuTestErrorCode errorCode(*this, "TestFCD");
435 const CollationData *data = CollationRoot::getData(errorCode);
436 if(errorCode.logDataIfFailureAndReset("CollationRoot::getData()")) {
469 if(errorCode.logIfFailureAndReset("FCDUTF16CollationIterator constructor")) {
481 if(errorCode.logIfFailureAndReset("FCDUTF8CollationIterator constructor")) {
491 if(errorCode.logIfFailureAndReset("FCDUIterCollationIterator constructor")) {
739 IcuTestErrorCode errorCode(*this, "TestRootElements");
740 const CollationData *root = CollationRoot::getData(errorCode);
741 if(errorCode.logDataIfFailureAndReset("CollationRoot::getData()")) {
842 IcuTestErrorCode errorCode(*this, "TestTailoredElements");
843 const CollationData *root = CollationRoot::getData(errorCode);
844 if(errorCode.logDataIfFailureAndReset("CollationRoot::getData()")) {
849 UHashtable *prevLocales = uhash_open(uhash_hashChars, uhash_compareChars, NULL, errorCode);
850 if(errorCode.logIfFailureAndReset("failed to create a hash table")) {
855 uhash_puti(prevLocales, uprv_strdup(""), 1, errorCode);
856 uhash_puti(prevLocales, uprv_strdup("root"), 1, errorCode);
857 uhash_puti(prevLocales, uprv_strdup("root@collation=standard"), 1, errorCode);
859 UVector64 ces(errorCode);
866 Collator::getKeywordValuesForLocale("collation", locale, FALSE, errorCode));
867 errorCode.assertSuccess();
872 localeWithType.setKeywordValue("collation", type, errorCode);
874 errorCode.assertSuccess();
875 LocalPointer<Collator> coll(Collator::createInstance(localeWithType, errorCode));
876 if(errorCode.logIfFailureAndReset("Collator::createInstance(%s)",
880 Locale actual = coll->getLocale(ULOC_ACTUAL_LOCALE, errorCode);
884 uhash_puti(prevLocales, uprv_strdup(actual.getName()), 1, errorCode);
885 errorCode.assertSuccess();
900 LocalPointer<UnicodeSet> tailored(coll->getTailoredSet(errorCode));
901 errorCode.assertSuccess();
906 rbc->internalGetCEs(s, ces, errorCode);
907 errorCode.assertSuccess();
917 } while((type = types->next(NULL, errorCode)) != NULL);
918 } while((localeID = locales->next(NULL, errorCode)) != NULL);
944 UBool CollationTest::readLine(UCHARBUF *f, IcuTestErrorCode &errorCode) {
946 const UChar *line = ucbuf_readline(f, &lineLength, errorCode);
947 if(line == NULL || errorCode.isFailure()) {
965 UErrorCode &errorCode) {
975 errorCode = U_PARSE_ERROR;
986 errorCode = U_PARSE_ERROR;
992 Collation::Level CollationTest::parseRelationAndString(UnicodeString &s, IcuTestErrorCode &errorCode) {
1031 errorCode.set(U_PARSE_ERROR);
1036 parseString(start, prefix, s, errorCode);
1037 if(errorCode.isSuccess() && !prefix.isEmpty()) {
1040 errorCode.set(U_PARSE_ERROR);
1046 errorCode.set(U_PARSE_ERROR);
1084 void CollationTest::parseAndSetAttribute(IcuTestErrorCode &errorCode) {
1089 parseAndSetReorderCodes(start + 7, errorCode);
1094 errorCode.set(U_PARSE_ERROR);
1113 errorCode.set(U_PARSE_ERROR);
1116 coll->setMaxVariable(max, errorCode);
1117 if(errorCode.isFailure()) {
1119 (int)fileLineNumber, errorCode.errorName());
1132 errorCode.set(U_PARSE_ERROR);
1146 errorCode.set(U_PARSE_ERROR);
1155 coll->setAttribute(attr, value, errorCode);
1156 if(errorCode.isFailure()) {
1158 (int)fileLineNumber, errorCode.errorName());
1165 void CollationTest::parseAndSetReorderCodes(int32_t start, IcuTestErrorCode &errorCode) {
1166 UVector32 reorderCodes(errorCode);
1172 name.appendInvariantChars(fileLine.tempSubStringBetween(start, limit), errorCode);
1177 errorCode.set(U_PARSE_ERROR);
1180 reorderCodes.addElement(code, errorCode);
1183 coll->setReorderCodes(reorderCodes.getBuffer(), reorderCodes.size(), errorCode);
1184 if(errorCode.isFailure()) {
1185 errln("setReorderCodes() failed on line %d: %s", (int)fileLineNumber, errorCode.errorName());
1192 void CollationTest::buildTailoring(UCHARBUF *f, IcuTestErrorCode &errorCode) {
1194 while(readLine(f, errorCode)) {
1199 if(errorCode.isFailure()) { return; }
1205 coll = new RuleBasedCollator(rules, parseError, reason, errorCode);
1208 errorCode.set(U_MEMORY_ALLOCATION_ERROR);
1211 if(errorCode.isFailure()) {
1212 errln("RuleBasedCollator(rules) failed - %s", errorCode.errorName());
1225 void CollationTest::setRootCollator(IcuTestErrorCode &errorCode) {
1226 if(errorCode.isFailure()) { return; }
1228 coll = Collator::createInstance(Locale::getRoot(), errorCode);
1229 if(errorCode.isFailure()) {
1235 void CollationTest::setLocaleCollator(IcuTestErrorCode &errorCode) {
1236 if(errorCode.isFailure()) { return; }
1242 localeID.appendInvariantChars(fileLine.tempSubString(9), errorCode);
1247 if(fileLine.length() == 9 || errorCode.isFailure() || locale.isBogus()) {
1250 if(errorCode.isSuccess()) { errorCode.set(U_PARSE_ERROR); }
1255 Collator *newColl = Collator::createInstance(locale, errorCode);
1256 if(errorCode.isFailure()) {
1266 UBool CollationTest::needsNormalization(const UnicodeString &s, UErrorCode &errorCode) const {
1267 if(U_FAILURE(errorCode) || !fcd->isNormalized(s, errorCode)) { return TRUE; }
1284 IcuTestErrorCode &errorCode) {
1285 if(errorCode.isFailure()) { return FALSE; }
1292 int32_t partLength = coll->internalNextSortKeyPart(&iter, state, part, partSize, errorCode);
1298 dest.append(reinterpret_cast<char *>(part), partLength, errorCode);
1300 return errorCode.isSuccess();
1307 CollationKey &key, IcuTestErrorCode &errorCode) {
1308 if(errorCode.isFailure()) { return FALSE; }
1309 coll->getCollationKey(s, length, key, errorCode);
1310 if(errorCode.isFailure()) {
1313 norm, errorCode.errorName());
1328 int32_t numLevels = coll->getAttribute(UCOL_STRENGTH, errorCode);
1334 if(coll->getAttribute(UCOL_CASE_LEVEL, errorCode) == UCOL_ON) {
1337 errorCode.assertSuccess();
1378 coll->getCollationKey(s + segmentStart, i - segmentStart, key2, errorCode);
1428 if(!getSortKeyParts(s, length, parts, 32, errorCode)) {
1431 norm, (int)partSize, errorCode.errorName());
1480 IcuTestErrorCode &errorCode) {
1481 if(errorCode.isFailure()) { return FALSE; }
1486 prevKey, errorCode)) {
1490 if(!getCollationKey(norm, fileLine, s.getBuffer(), s.length(), key, errorCode)) { return FALSE; }
1492 UCollationResult order = coll->compare(prevString, s, errorCode);
1493 if(order != expectedOrder || errorCode.isFailure()) {
1496 (int)fileLineNumber, norm, order, expectedOrder, errorCode.errorName());
1503 order = coll->compare(s, prevString, errorCode);
1504 if(order != -expectedOrder || errorCode.isFailure()) {
1507 (int)fileLineNumber, norm, order, -expectedOrder, errorCode.errorName());
1517 order = coll->compare(prevString.getBuffer(), -1, s.getBuffer(), -1, errorCode);
1518 if(order != expectedOrder || errorCode.isFailure()) {
1521 (int)fileLineNumber, norm, order, expectedOrder, errorCode.errorName());
1528 order = coll->compare(s.getBuffer(), -1, prevString.getBuffer(), -1, errorCode);
1529 if(order != -expectedOrder || errorCode.isFailure()) {
1532 (int)fileLineNumber, norm, order, -expectedOrder, errorCode.errorName());
1556 expectedUTF8Order = coll->compare(prevValid, sValid, errorCode);
1559 order = coll->compareUTF8(prevUTF8, sUTF8, errorCode);
1560 if(order != expectedUTF8Order || errorCode.isFailure()) {
1563 (int)fileLineNumber, norm, order, expectedUTF8Order, errorCode.errorName());
1570 order = coll->compareUTF8(sUTF8, prevUTF8, errorCode);
1571 if(order != -expectedUTF8Order || errorCode.isFailure()) {
1574 (int)fileLineNumber, norm, order, -expectedUTF8Order, errorCode.errorName());
1583 order = coll->internalCompareUTF8(prevUTF8.c_str(), -1, sUTF8.c_str(), -1, errorCode);
1584 if(order != expectedUTF8Order || errorCode.isFailure()) {
1587 (int)fileLineNumber, norm, order, expectedUTF8Order, errorCode.errorName());
1594 order = coll->internalCompareUTF8(sUTF8.c_str(), -1, prevUTF8.c_str(), -1, errorCode);
1595 if(order != -expectedUTF8Order || errorCode.isFailure()) {
1598 (int)fileLineNumber, norm, order, -expectedUTF8Order, errorCode.errorName());
1612 order = coll->compare(leftIter, rightIter, errorCode);
1613 if(order != expectedOrder || errorCode.isFailure()) {
1617 (int)fileLineNumber, norm, order, expectedOrder, errorCode.errorName());
1625 order = prevKey.compareTo(key, errorCode);
1626 if(order != expectedOrder || errorCode.isFailure()) {
1629 (int)fileLineNumber, norm, order, expectedOrder, errorCode.errorName());
1648 coll->getAttribute(UCOL_CASE_LEVEL, errorCode) == UCOL_OFF) {
1667 void CollationTest::checkCompareStrings(UCHARBUF *f, IcuTestErrorCode &errorCode) {
1668 if(errorCode.isFailure()) { return; }
1672 while(readLine(f, errorCode)) {
1675 Collation::Level relation = parseRelationAndString(s, errorCode);
1676 if(errorCode.isFailure()) {
1677 errorCode.reset();
1684 if(!needsNormalization(prevString, errorCode) && !needsNormalization(s, errorCode)) {
1685 coll->setAttribute(UCOL_NORMALIZATION_MODE, UCOL_OFF, errorCode);
1687 expectedOrder, expectedLevel, errorCode);
1690 coll->setAttribute(UCOL_NORMALIZATION_MODE, UCOL_ON, errorCode);
1692 expectedOrder, expectedLevel, errorCode);
1694 errorCode) || !nfd->isNormalized(s, errorCode))) {
1695 UnicodeString pn = nfd->normalize(prevString, errorCode);
1696 UnicodeString n = nfd->normalize(s, errorCode);
1699 errorCode.assertSuccess();
1701 expectedOrder, expectedLevel, errorCode);
1704 errorCode.reset(); // already reported
1713 IcuTestErrorCode errorCode(*this, "TestDataDriven");
1715 fcd = Normalizer2Factory::getFCDInstance(errorCode);
1716 nfd = Normalizer2Factory::getNFDInstance(errorCode);
1717 if(errorCode.logDataIfFailureAndReset("Normalizer2Factory::getFCDInstance() or getNFDInstance()")) {
1721 CharString path(getSourceTestData(errorCode), errorCode);
1722 path.appendPathPart("collationtest.txt", errorCode);
1724 LocalUCHARBUFPointer f(ucbuf_open(path.data(), &codePage, TRUE, FALSE, errorCode));
1725 if(errorCode.logIfFailureAndReset("ucbuf_open(collationtest.txt)")) {
1728 while(errorCode.isSuccess()) {
1732 if(!readLine(f.getAlias(), errorCode)) { break; }
1745 setRootCollator(errorCode);
1748 setLocaleCollator(errorCode);
1751 buildTailoring(f.getAlias(), errorCode);
1753 parseAndSetAttribute(errorCode);
1755 checkCompareStrings(f.getAlias(), errorCode);