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) 2002-2015, International Business Machines Corporation and 6 * others. All Rights Reserved. 7 ********************************************************************/ 8 9 10 #ifndef REGEXTST_H 11 #define REGEXTST_H 12 13 #include "unicode/utypes.h" 14 #if !UCONFIG_NO_REGULAR_EXPRESSIONS 15 16 #include "intltest.h" 17 18 struct UText; 19 typedef struct UText UText; 20 21 class RegexTest: public IntlTest { 22 public: 23 24 RegexTest(); 25 virtual ~RegexTest(); 26 27 virtual void runIndexedTest(int32_t index, UBool exec, const char* &name, char* par = NULL ); 28 29 // The following are test functions that are visible from the intltest test framework. 30 virtual void API_Match(); 31 virtual void API_Pattern(); 32 virtual void API_Replace(); 33 virtual void Basic(); 34 virtual void Extended(); 35 virtual void Errors(); 36 virtual void PerlTests(); 37 virtual void Bug6149(); 38 virtual void Callbacks(); 39 virtual void FindProgressCallbacks(); 40 virtual void UTextBasic(); 41 virtual void API_Match_UTF8(); 42 virtual void API_Pattern_UTF8(); 43 virtual void API_Replace_UTF8(); 44 virtual void PerlTestsUTF8(); 45 virtual void PreAllocatedUTextCAPI(); 46 virtual void NamedCapture(); 47 virtual void NamedCaptureLimits(); 48 virtual void Bug7651(); 49 virtual void Bug7740(); 50 virtual void Bug8479(); 51 virtual void Bug7029(); 52 virtual void Bug9283(); 53 virtual void CheckInvBufSize(); 54 virtual void Bug10459(); 55 virtual void TestCaseInsensitiveStarters(); 56 virtual void TestBug11049(); 57 virtual void TestBug11371(); 58 virtual void TestBug11480(); 59 virtual void TestBug12884(); 60 virtual void TestBug13631(); 61 virtual void TestBug13632(); 62 virtual void TestBug20359(); 63 virtual void TestBug20863(); 64 65 // The following functions are internal to the regexp tests. 66 virtual void assertUText(const char *expected, UText *actual, const char *file, int line); 67 virtual void assertUTextInvariant(const char *invariant, UText *actual, const char *file, int line); 68 virtual UBool doRegexLMTest(const char *pat, const char *text, UBool looking, UBool match, int32_t line); 69 virtual UBool doRegexLMTestUTF8(const char *pat, const char *text, UBool looking, UBool match, int32_t line); 70 virtual void regex_find(const UnicodeString &pat, const UnicodeString &flags, 71 const UnicodeString &input, const char *srcPath, int32_t line); 72 virtual void regex_err(const char *pat, int32_t errline, int32_t errcol, 73 UErrorCode expectedStatus, int32_t line); 74 virtual UChar *ReadAndConvertFile(const char *fileName, int32_t &len, const char *charset, UErrorCode &status); 75 virtual const char *getPath(char buffer[2048], const char *filename); 76 77 virtual void TestCase11049(const char *pattern, const char *data, UBool expectMatch, int32_t lineNumber); 78 79 static const char* extractToAssertBuf(const UnicodeString& message); 80 81 }; 82 83 #endif // !UCONFIG_NO_REGULAR_EXPRESSIONS 84 #endif 85