// © 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 );
}
break;
case 1: name = "normalize";
#if !UCONFIG_NO_NORMALIZATION
if (exec) {
logln("TestSuite Normalize---"); logln();
IntlTestNormalize test;
callTest( test, par );
}
#endif
break;
case 2: name = "collate";
#if !UCONFIG_NO_COLLATION
if (exec) {
logln("TestSuite Collator---"); logln();
IntlTestCollator test;
callTest( test, par );
}
#endif
break;
case 3: name = "regex";
#if !UCONFIG_NO_REGULAR_EXPRESSIONS
if (exec) {
logln("TestSuite Regex---"); logln();
RegexTest test;
callTest( test, par );
}
#endif
break;
case 4: name = "format";
#if !UCONFIG_NO_FORMATTING
if (exec) {
logln("TestSuite Format---"); logln();
IntlTestFormat test;
callTest( test, par );
}
#endif
break;
case 5: name = "translit";
#if !UCONFIG_NO_TRANSLITERATION
if (exec) {
logln("TestSuite Transliterator---"); logln();
IntlTestTransliterator test;
callTest( test, par );
}
#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 );
}
#endif
break;
case 7: name = "rbnf";
#if !UCONFIG_NO_FORMATTING
if (exec) {
logln("TestSuite RuleBasedNumberFormat----"); logln();
IntlTestRBNF test;
callTest(test, par);
}
#endif
break;
case 8: name = "rbnfrt";
#if !UCONFIG_NO_FORMATTING
if (exec) {
logln("TestSuite RuleBasedNumberFormat RT----"); logln();
RbnfRoundTripTest test;
callTest(test, par);
}
#endif
break;
case 9: name = "icuserv";
#if !UCONFIG_NO_SERVICE
if (exec) {
logln("TestSuite ICUService---"); logln();
ICUServiceTest test;
callTest(test, par);
}
#endif
break;
case 10: name = "idna";
#if !UCONFIG_NO_IDNA && !UCONFIG_NO_TRANSLITERATION
if(exec){
logln("TestSuite IDNA----"); logln();
TestIDNA test;
callTest(test,par);
}
#endif
break;
case 11: name = "convert";
#if !UCONFIG_NO_LEGACY_CONVERSION
if (exec) {
logln("TestSuite Conversion---"); logln();
ConversionTest test;
callTest( test, par );
}
#endif
break;
case 12: name = "rbnfp";
#if !UCONFIG_NO_FORMATTING
if (exec) {
logln("TestSuite RuleBasedNumberParse ----"); logln();
IntlTestRBNFParse test;
callTest(test, par);
}
#endif
break;
case 13: name = "csdet";
if (exec) {
logln("TestSuite CharsetDetection---"); logln();
CharsetDetectionTest test;
callTest(test, par);
}
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);
}
#else
name = "skip";
#endif
break;
case 15: name = "bidi";
if (exec) {
logln("TestSuite bidi---"); logln();
LocalPointer<IntlTest> test(createBiDiConformanceTest());
callTest(*test, par);
}
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
}