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
runIndexedTest(int32_t index,UBool exec,const char * & name,char * par)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
runIndexedTest(int32_t index,UBool exec,const char * & name,char * par)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