• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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