// © 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 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 }