| // © 2016 and later: Unicode, Inc. and others. |
| // License & terms of use: http://www.unicode.org/copyright.html |
| /******************************************************************** |
| * COPYRIGHT: |
| * Copyright (c) 1998-2016, International Business Machines Corporation and |
| * others. All Rights Reserved. |
| ********************************************************************/ |
| |
| /** |
| * MajorTestLevel is the top level test class for everything in the directory "IntlWork". |
| */ |
| |
| /*********************************************************************** |
| * Modification history |
| * Date Name Description |
| * 02/14/2001 synwee Release collation for testing. |
| ***********************************************************************/ |
| |
| #include "unicode/utypes.h" |
| #include "unicode/localpointer.h" |
| #include "itmajor.h" |
| |
| #include "itutil.h" |
| #include "tscoll.h" |
| #include "itformat.h" |
| #include "ittrans.h" |
| #include "itrbbi.h" |
| #include "itrbnf.h" |
| #include "itrbnfp.h" |
| #include "itrbnfrt.h" |
| #include "itspoof.h" |
| #include "normconf.h" |
| #include "regextst.h" |
| #include "tstnorm.h" |
| #include "canittst.h" |
| #include "icusvtst.h" |
| #include "testidna.h" |
| #include "convtest.h" |
| #include "csdetest.h" |
| |
| extern IntlTest *createBiDiConformanceTest(); |
| |
| #define CASE_SUITE(id, suite) case id: \ |
| name = #suite; \ |
| if(exec) { \ |
| logln(#suite "---"); \ |
| suite test; \ |
| callTest(test, par); \ |
| } \ |
| break |
| |
| void MajorTestLevel::runIndexedTest( int32_t index, UBool exec, const char* &name, char* par ) |
| { |
| switch (index) { |
| case 0: name = "utility"; |
| if (exec) { |
| logln("TestSuite Utilities---"); logln(); |
| IntlTestUtilities test; |
| callTest( test, par, name ); |
| } |
| break; |
| |
| case 1: name = "normalize"; |
| #if !UCONFIG_NO_NORMALIZATION |
| if (exec) { |
| logln("TestSuite Normalize---"); logln(); |
| IntlTestNormalize test; |
| callTest( test, par, name ); |
| } |
| #endif |
| break; |
| |
| case 2: name = "collate"; |
| #if !UCONFIG_NO_COLLATION |
| if (exec) { |
| logln("TestSuite Collator---"); logln(); |
| IntlTestCollator test; |
| callTest( test, par, name ); |
| } |
| #endif |
| break; |
| |
| case 3: name = "regex"; |
| #if !UCONFIG_NO_REGULAR_EXPRESSIONS |
| if (exec) { |
| logln("TestSuite Regex---"); logln(); |
| RegexTest test; |
| callTest( test, par, name ); |
| } |
| #endif |
| break; |
| |
| case 4: name = "format"; |
| #if !UCONFIG_NO_FORMATTING |
| if (exec) { |
| logln("TestSuite Format---"); logln(); |
| IntlTestFormat test; |
| callTest( test, par, name ); |
| } |
| #endif |
| break; |
| |
| case 5: name = "translit"; |
| #if !UCONFIG_NO_TRANSLITERATION |
| if (exec) { |
| logln("TestSuite Transliterator---"); logln(); |
| IntlTestTransliterator test; |
| callTest( test, par, name ); |
| } |
| #endif |
| break; |
| |
| case 6: name = "rbbi"; |
| #if !UCONFIG_NO_BREAK_ITERATION && !UCONFIG_NO_REGULAR_EXPRESSIONS |
| if (exec) { |
| logln("TestSuite RuleBasedBreakIterator---"); logln(); |
| IntlTestRBBI test; |
| callTest( test, par, name ); |
| } |
| #endif |
| break; |
| case 7: name = "rbnf"; |
| #if !UCONFIG_NO_FORMATTING |
| if (exec) { |
| logln("TestSuite RuleBasedNumberFormat----"); logln(); |
| IntlTestRBNF test; |
| callTest(test, par, name); |
| } |
| #endif |
| break; |
| case 8: name = "rbnfrt"; |
| #if !UCONFIG_NO_FORMATTING |
| if (exec) { |
| logln("TestSuite RuleBasedNumberFormat RT----"); logln(); |
| RbnfRoundTripTest test; |
| callTest(test, par, name); |
| } |
| #endif |
| break; |
| |
| case 9: name = "icuserv"; |
| #if !UCONFIG_NO_SERVICE |
| if (exec) { |
| logln("TestSuite ICUService---"); logln(); |
| ICUServiceTest test; |
| callTest(test, par, name); |
| } |
| #endif |
| break; |
| case 10: name = "idna"; |
| #if !UCONFIG_NO_IDNA && !UCONFIG_NO_TRANSLITERATION |
| if(exec){ |
| logln("TestSuite IDNA----"); logln(); |
| TestIDNA test; |
| callTest(test,par, name); |
| } |
| #endif |
| break; |
| case 11: name = "convert"; |
| #if !UCONFIG_NO_LEGACY_CONVERSION |
| if (exec) { |
| logln("TestSuite Conversion---"); logln(); |
| ConversionTest test; |
| callTest( test, par, name ); |
| } |
| #endif |
| break; |
| |
| case 12: name = "rbnfp"; |
| #if !UCONFIG_NO_FORMATTING |
| if (exec) { |
| logln("TestSuite RuleBasedNumberParse ----"); logln(); |
| IntlTestRBNFParse test; |
| callTest(test, par, name); |
| } |
| #endif |
| break; |
| |
| case 13: name = "csdet"; |
| if (exec) { |
| logln("TestSuite CharsetDetection---"); logln(); |
| CharsetDetectionTest test; |
| callTest(test, par, name); |
| } |
| |
| break; |
| |
| case 14: |
| #if !UCONFIG_NO_REGULAR_EXPRESSIONS && !UCONFIG_NO_NORMALIZATION && !UCONFIG_NO_FILE_IO |
| name = "spoof"; |
| if (exec) { |
| logln("TestSuite SpoofDetection---"); logln(); |
| IntlTestSpoof test; |
| callTest(test, par, name); |
| } |
| #else |
| name = "skip"; |
| #endif |
| break; |
| |
| case 15: name = "bidi"; |
| if (exec) { |
| logln("TestSuite bidi---"); logln(); |
| LocalPointer<IntlTest> test(createBiDiConformanceTest()); |
| callTest(*test, par, name); |
| } |
| |
| break; |
| |
| default: name = ""; break; |
| } |
| |
| |
| } |
| |
| void IntlTestNormalize::runIndexedTest( int32_t index, UBool exec, const char* &name, char* par ) |
| { |
| if(exec) logln("TestSuite Normalize:"); |
| #if UCONFIG_NO_NORMALIZATION |
| name=""; |
| #else |
| switch (index) { |
| CASE_SUITE(0, BasicNormalizerTest); |
| CASE_SUITE(1, NormalizerConformanceTest); // this takes a long time |
| CASE_SUITE(2, CanonicalIteratorTest); |
| default: |
| name=""; |
| break; |
| } |
| #endif |
| } |