Home | History | Annotate | Download | only in intltest
      1 // Copyright (C) 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 
     60     // The following functions are internal to the regexp tests.
     61     virtual void assertUText(const char *expected, UText *actual, const char *file, int line);
     62     virtual void assertUTextInvariant(const char *invariant, UText *actual, const char *file, int line);
     63     virtual UBool doRegexLMTest(const char *pat, const char *text, UBool looking, UBool match, int32_t line);
     64     virtual UBool doRegexLMTestUTF8(const char *pat, const char *text, UBool looking, UBool match, int32_t line);
     65     virtual void regex_find(const UnicodeString &pat, const UnicodeString &flags,
     66                             const UnicodeString &input, const char *srcPath, int32_t line);
     67     virtual void regex_err(const char *pat, int32_t errline, int32_t errcol,
     68                             UErrorCode expectedStatus, int32_t line);
     69     virtual UChar *ReadAndConvertFile(const char *fileName, int32_t &len, const char *charset, UErrorCode &status);
     70     virtual const char *getPath(char buffer[2048], const char *filename);
     71 
     72     virtual void TestCase11049(const char *pattern, const char *data, UBool expectMatch, int32_t lineNumber);
     73 
     74     static const char* extractToAssertBuf(const UnicodeString& message);
     75 
     76 };
     77 
     78 #endif   // !UCONFIG_NO_REGULAR_EXPRESSIONS
     79 #endif
     80