1 /******************************************************************** 2 * COPYRIGHT: 3 * Copyright (c) 1998-2009, International Business Machines Corporation and 4 * others. All Rights Reserved. 5 ********************************************************************/ 6 7 /** 8 * MajorTestLevel is the top level test class for everything in the directory "IntlWork". 9 */ 10 11 /*********************************************************************** 12 * Modification history 13 * Date Name Description 14 * 02/14/2001 synwee Release collation for testing. 15 ***********************************************************************/ 16 17 #include "unicode/utypes.h" 18 #include "unicode/localpointer.h" 19 #include "itmajor.h" 20 21 #include "itutil.h" 22 #include "tscoll.h" 23 #include "itformat.h" 24 #include "ittrans.h" 25 #include "itrbbi.h" 26 #include "itrbnf.h" 27 #include "itrbnfp.h" 28 #include "itrbnfrt.h" 29 #include "itspoof.h" 30 #include "normconf.h" 31 #include "regextst.h" 32 #include "tstnorm.h" 33 #include "canittst.h" 34 #include "icusvtst.h" 35 #include "testidna.h" 36 #include "convtest.h" 37 #include "csdetest.h" 38 39 extern IntlTest *createBiDiConformanceTest(); 40 41 #define CASE_SUITE(id, suite) case id: \ 42 name = #suite; \ 43 if(exec) { \ 44 logln(#suite "---"); \ 45 suite test; \ 46 callTest(test, par); \ 47 } \ 48 break 49 50 void MajorTestLevel::runIndexedTest( int32_t index, UBool exec, const char* &name, char* par ) 51 { 52 switch (index) { 53 case 0: name = "utility"; 54 if (exec) { 55 logln("TestSuite Utilities---"); logln(); 56 IntlTestUtilities test; 57 callTest( test, par ); 58 } 59 break; 60 61 case 1: name = "normalize"; 62 #if !UCONFIG_NO_NORMALIZATION 63 if (exec) { 64 logln("TestSuite Normalize---"); logln(); 65 IntlTestNormalize test; 66 callTest( test, par ); 67 } 68 #endif 69 break; 70 71 case 2: name = "collate"; 72 #if !UCONFIG_NO_COLLATION 73 if (exec) { 74 logln("TestSuite Collator---"); logln(); 75 IntlTestCollator test; 76 callTest( test, par ); 77 } 78 #endif 79 break; 80 81 case 3: name = "regex"; 82 #if !UCONFIG_NO_REGULAR_EXPRESSIONS 83 if (exec) { 84 logln("TestSuite Regex---"); logln(); 85 RegexTest test; 86 callTest( test, par ); 87 } 88 #endif 89 break; 90 91 case 4: name = "format"; 92 #if !UCONFIG_NO_FORMATTING 93 if (exec) { 94 logln("TestSuite Format---"); logln(); 95 IntlTestFormat test; 96 callTest( test, par ); 97 } 98 #endif 99 break; 100 101 case 5: name = "translit"; 102 #if !UCONFIG_NO_TRANSLITERATION 103 if (exec) { 104 logln("TestSuite Transliterator---"); logln(); 105 IntlTestTransliterator test; 106 callTest( test, par ); 107 } 108 #endif 109 break; 110 111 case 6: name = "rbbi"; 112 #if !UCONFIG_NO_BREAK_ITERATION 113 if (exec) { 114 logln("TestSuite RuleBasedBreakIterator---"); logln(); 115 IntlTestRBBI test; 116 callTest( test, par ); 117 } 118 #endif 119 break; 120 case 7: name = "rbnf"; 121 #if !UCONFIG_NO_FORMATTING 122 if (exec) { 123 logln("TestSuite RuleBasedNumberFormat----"); logln(); 124 IntlTestRBNF test; 125 callTest(test, par); 126 } 127 #endif 128 break; 129 case 8: name = "rbnfrt"; 130 #if !UCONFIG_NO_FORMATTING 131 if (exec) { 132 logln("TestSuite RuleBasedNumberFormat RT----"); logln(); 133 RbnfRoundTripTest test; 134 callTest(test, par); 135 } 136 #endif 137 break; 138 139 case 9: name = "icuserv"; 140 #if !UCONFIG_NO_SERVICE 141 if (exec) { 142 logln("TestSuite ICUService---"); logln(); 143 ICUServiceTest test; 144 callTest(test, par); 145 } 146 #endif 147 break; 148 case 10: name = "idna"; 149 #if !UCONFIG_NO_IDNA && !UCONFIG_NO_TRANSLITERATION 150 if(exec){ 151 logln("TestSuite IDNA----"); logln(); 152 TestIDNA test; 153 callTest(test,par); 154 } 155 #endif 156 break; 157 case 11: name = "convert"; 158 #if !UCONFIG_NO_LEGACY_CONVERSION 159 if (exec) { 160 logln("TestSuite Conversion---"); logln(); 161 ConversionTest test; 162 callTest( test, par ); 163 } 164 #endif 165 break; 166 167 case 12: name = "rbnfp"; 168 #if !UCONFIG_NO_FORMATTING 169 if (exec) { 170 logln("TestSuite RuleBasedNumberParse ----"); logln(); 171 IntlTestRBNFParse test; 172 callTest(test, par); 173 } 174 #endif 175 break; 176 177 case 13: name = "csdet"; 178 if (exec) { 179 logln("TestSuite CharsetDetection---"); logln(); 180 CharsetDetectionTest test; 181 callTest(test, par); 182 } 183 184 break; 185 186 case 14: 187 #if !UCONFIG_NO_REGULAR_EXPRESSIONS && !UCONFIG_NO_NORMALIZATION && !UCONFIG_NO_FILE_IO 188 name = "spoof"; 189 if (exec) { 190 logln("TestSuite SpoofDetection---"); logln(); 191 IntlTestSpoof test; 192 callTest(test, par); 193 } 194 #else 195 name = "skip"; 196 #endif 197 break; 198 199 case 15: name = "bidi"; 200 if (exec) { 201 logln("TestSuite bidi---"); logln(); 202 LocalPointer<IntlTest> test(createBiDiConformanceTest()); 203 callTest(*test, par); 204 } 205 206 break; 207 208 default: name = ""; break; 209 } 210 211 212 } 213 214 void IntlTestNormalize::runIndexedTest( int32_t index, UBool exec, const char* &name, char* par ) 215 { 216 if(exec) logln("TestSuite Normalize:"); 217 #if UCONFIG_NO_NORMALIZATION 218 name=""; 219 #else 220 switch (index) { 221 CASE_SUITE(0, BasicNormalizerTest); 222 CASE_SUITE(1, NormalizerConformanceTest); // this takes a long time 223 CASE_SUITE(2, CanonicalIteratorTest); 224 default: 225 name=""; 226 break; 227 } 228 #endif 229 } 230