Home | History | Annotate | Download | only in testdata
      1 # These are:
      2 #
      3 # (1) Tests of the match-limiting features. The results are different for
      4 # interpretive or JIT matching, so this test should not be run with JIT. The
      5 # same tests are run using JIT in test 17.
      6 
      7 # (2) Other tests that must not be run with JIT.
      8 
      9 /(a+)*zz/I
     10   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\=find_limits
     11   aaaaaaaaaaaaaz\=find_limits
     12 
     13 !((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)!I
     14    /* this is a C style comment */\=find_limits
     15 
     16 /^(?>a)++/
     17     aa\=find_limits
     18     aaaaaaaaa\=find_limits
     19     
     20 /(a)(?1)++/
     21     aa\=find_limits
     22     aaaaaaaaa\=find_limits
     23 
     24 /a(?:.)*?a/ims
     25     abbbbbbbbbbbbbbbbbbbbba\=find_limits
     26     
     27 /a(?:.(*THEN))*?a/ims
     28     abbbbbbbbbbbbbbbbbbbbba\=find_limits
     29 
     30 /a(?:.(*THEN:ABC))*?a/ims
     31     abbbbbbbbbbbbbbbbbbbbba\=find_limits
     32 
     33 /^(?>a+)(?>b+)(?>c+)(?>d+)(?>e+)/
     34      aabbccddee\=find_limits
     35 
     36 /^(?>(a+))(?>(b+))(?>(c+))(?>(d+))(?>(e+))/
     37      aabbccddee\=find_limits
     38 
     39 /^(?>(a+))(?>b+)(?>(c+))(?>d+)(?>(e+))/
     40      aabbccddee\=find_limits
     41 
     42 /(*LIMIT_MATCH=12bc)abc/
     43 
     44 /(*LIMIT_MATCH=4294967290)abc/
     45 
     46 /(*LIMIT_DEPTH=4294967280)abc/I
     47 
     48 /(a+)*zz/
     49 \= Expect no match
     50     aaaaaaaaaaaaaz
     51 \= Expect limit exceeded
     52     aaaaaaaaaaaaaz\=match_limit=3000
     53 
     54 /(a+)*zz/
     55 \= Expect limit exceeded
     56     aaaaaaaaaaaaaz\=depth_limit=10
     57 
     58 /(*LIMIT_MATCH=3000)(a+)*zz/I
     59 \= Expect limit exceeded
     60     aaaaaaaaaaaaaz
     61 \= Expect limit exceeded
     62     aaaaaaaaaaaaaz\=match_limit=60000
     63 
     64 /(*LIMIT_MATCH=60000)(*LIMIT_MATCH=3000)(a+)*zz/I
     65 \= Expect limit exceeded
     66     aaaaaaaaaaaaaz
     67 
     68 /(*LIMIT_MATCH=60000)(a+)*zz/I
     69 \= Expect no match
     70     aaaaaaaaaaaaaz
     71 \= Expect limit exceeded
     72     aaaaaaaaaaaaaz\=match_limit=3000
     73 
     74 /(*LIMIT_DEPTH=10)(a+)*zz/I
     75 \= Expect limit exceeded
     76     aaaaaaaaaaaaaz
     77 \= Expect limit exceeded
     78     aaaaaaaaaaaaaz\=depth_limit=1000
     79 
     80 /(*LIMIT_DEPTH=10)(*LIMIT_DEPTH=1000)(a+)*zz/I
     81 \= Expect no match
     82     aaaaaaaaaaaaaz
     83 
     84 /(*LIMIT_DEPTH=1000)(a+)*zz/I
     85 \= Expect no match
     86     aaaaaaaaaaaaaz
     87 \= Expect limit exceeded
     88     aaaaaaaaaaaaaz\=depth_limit=10
     89     
     90 # These three have infinitely nested recursions. 
     91     
     92 /((?2))((?1))/
     93     abc
     94 
     95 /((?(R2)a+|(?1)b))()/
     96     aaaabcde
     97 
     98 /(?(R)a*(?1)|((?R))b)/
     99     aaaabcde
    100     
    101 # The allusedtext modifier does not work with JIT, which does not maintain
    102 # the leftchar/rightchar data.
    103 
    104 /abc(?=xyz)/allusedtext
    105     abcxyzpqr
    106     abcxyzpqr\=aftertext
    107     
    108 /(?<=pqr)abc(?=xyz)/allusedtext
    109     xyzpqrabcxyzpqr
    110     xyzpqrabcxyzpqr\=aftertext
    111     
    112 /a\b/
    113     a.\=allusedtext
    114     a\=allusedtext  
    115 
    116 /abc\Kxyz/
    117     abcxyz\=allusedtext
    118 
    119 /abc(?=xyz(*ACCEPT))/
    120     abcxyz\=allusedtext
    121 
    122 /abc(?=abcde)(?=ab)/allusedtext
    123     abcabcdefg
    124     
    125 # These tests provoke recursion loops, which give a different error message
    126 # when JIT is used.
    127 
    128 /(?R)/I
    129     abcd
    130 
    131 /(a|(?R))/I
    132     abcd
    133     defg 
    134 
    135 /(ab|(bc|(de|(?R))))/I
    136     abcd
    137     fghi 
    138 
    139 /(ab|(bc|(de|(?1))))/I
    140     abcd
    141     fghi 
    142 
    143 /x(ab|(bc|(de|(?1)x)x)x)/I
    144     xab123
    145     xfghi 
    146 
    147 /(?!\w)(?R)/
    148     abcd
    149     =abc 
    150 
    151 /(?=\w)(?R)/
    152     =abc 
    153     abcd
    154 
    155 /(?<!\w)(?R)/
    156     abcd
    157 
    158 /(?<=\w)(?R)/
    159     abcd
    160 
    161 /(a+|(?R)b)/
    162     aaa
    163     bbb 
    164 
    165 /[^\xff]((?1))/BI
    166     abcd
    167     
    168 # These tests don't behave the same with JIT 
    169 
    170 /\w+(?C1)/BI,no_auto_possess
    171     abc\=callout_fail=1
    172 
    173 /(*NO_AUTO_POSSESS)\w+(?C1)/BI
    174     abc\=callout_fail=1
    175 
    176 # This test breaks the JIT stack limit 
    177 
    178 /(|]+){2,2452}/
    179     (|]+){2,2452}
    180 
    181 /(*LIMIT_HEAP=21)\[(a)]{60}/expand
    182     \[a]{60}
    183 
    184 # End of testinput15
    185