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