• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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