16f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/******************************************************************** 26f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Copyright (c) 1997-2013 International Business Machines 36f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Corporation and others. All Rights Reserved. 46f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org ********************************************************************/ 56f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/******************************************************************************** 66f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org* 76f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org* File CAPITEST.H 86f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org* 96f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org* Modification History: 106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org* Name Description 116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org* Madhu Katragadda Converted to C 126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org* Brian Rower Added TestOpenVsOpenRules 136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org********************************************************************************* 146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org*//* C API TEST For COLLATOR */ 156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#ifndef _CCOLLAPITST 176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define _CCOLLAPITST 186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include "unicode/utypes.h" 206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#if !UCONFIG_NO_COLLATION 226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include "cintltst.h" 246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include "callcoll.h" 256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define MAX_TOKEN_LEN 16 266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * error reporting utility method 306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org **/ 316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org static void doAssert(int condition, const char *message); 336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Collator Class Properties 356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * ctor, dtor, createInstance, compare, getStrength/setStrength 366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * getDecomposition/setDecomposition, getDisplayName 376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void TestProperty(void); 396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Test RuleBasedCollator and getRules 416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org **/ 426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void TestRuleBasedColl(void); 436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Test compare 466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org **/ 476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void TestCompare(void); 486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Test hashCode functionality 506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org **/ 516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void TestHashCode(void); 526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Tests the constructor and numerous other methods for CollationKey 546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org **/ 556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void TestSortKey(void); 566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * test the CollationElementIterator methods 586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org **/ 596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void TestElemIter(void); 606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Test ucol_getAvailable and ucol_countAvailable() 626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org **/ 636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void TestGetAll(void); 646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Test ucol_GetDefaultRules () 666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void TestGetDefaultRules(void); 676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org **/ 686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void TestDecomposition(void); 706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Test ucol_safeClone () 726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org **/ 736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void TestSafeClone(void); 746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Test ucol_cloneBinary(), ucol_openBinary() 776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org **/ 786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void TestCloneBinary(void); 796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Test ucol_open() vs. ucol_openRules() 826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org **/ 836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void TestOpenVsOpenRules(void); 846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Test getting bounds for a sortkey 876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void TestBounds(void); 896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Test ucol_getLocale function 926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void TestGetLocale(void); 946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Test buffer overrun while having smaller buffer for sortkey (j1865) 976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void TestSortKeyBufferOverrun(void); 996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 1006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Test getting and setting of attributes 1016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 1026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void TestGetSetAttr(void); 1036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 1046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Test getTailoredSet 1056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 1066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void TestGetTailoredSet(void); 1076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 1096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Test mergeSortKeys 1106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 1116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void TestMergeSortKeys(void); 1126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 1146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * test short string and collator identifier functions 1156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 1166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org static void TestShortString(void); 1176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 1196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * test getContractions and getUnsafeSet 1206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 1216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org static void TestGetContractionsAndUnsafes(void); 1226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 1246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Test funny stuff with open binary 1256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 1266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org static void TestOpenBinary(void); 1276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 1296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Test getKeywordValuesForLocale API 1306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 1316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org static void TestGetKeywordValuesForLocale(void); 1326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 1346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * test strcoll with null arg 1356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 1366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org static void TestStrcollNull(void); 1376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif /* #if !UCONFIG_NO_COLLATION */ 1396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif 141