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_RECURSION=4294967280)abc/I
     47 
     48 /(a+)*zz/
     49     aaaaaaaaaaaaaz
     50     aaaaaaaaaaaaaz\=match_limit=3000
     51 
     52 /(a+)*zz/
     53     aaaaaaaaaaaaaz\=recursion_limit=10
     54 
     55 /(*LIMIT_MATCH=3000)(a+)*zz/I
     56     aaaaaaaaaaaaaz
     57     aaaaaaaaaaaaaz\=match_limit=60000
     58 
     59 /(*LIMIT_MATCH=60000)(*LIMIT_MATCH=3000)(a+)*zz/I
     60     aaaaaaaaaaaaaz
     61 
     62 /(*LIMIT_MATCH=60000)(a+)*zz/I
     63     aaaaaaaaaaaaaz
     64     aaaaaaaaaaaaaz\=match_limit=3000
     65 
     66 /(*LIMIT_RECURSION=10)(a+)*zz/I
     67     aaaaaaaaaaaaaz
     68     aaaaaaaaaaaaaz\=recursion_limit=1000
     69 
     70 /(*LIMIT_RECURSION=10)(*LIMIT_RECURSION=1000)(a+)*zz/I
     71     aaaaaaaaaaaaaz
     72 
     73 /(*LIMIT_RECURSION=1000)(a+)*zz/I
     74     aaaaaaaaaaaaaz
     75     aaaaaaaaaaaaaz\=recursion_limit=10
     76     
     77 # These three have infinitely nested recursions. 
     78     
     79 /((?2))((?1))/
     80     abc
     81 
     82 /((?(R2)a+|(?1)b))/
     83     aaaabcde
     84 
     85 /(?(R)a*(?1)|((?R))b)/
     86     aaaabcde
     87     
     88 # The allusedtext modifier does not work with JIT, which does not maintain
     89 # the leftchar/rightchar data.
     90 
     91 /abc(?=xyz)/allusedtext
     92     abcxyzpqr
     93     abcxyzpqr\=aftertext
     94     
     95 /(?<=pqr)abc(?=xyz)/allusedtext
     96     xyzpqrabcxyzpqr
     97     xyzpqrabcxyzpqr\=aftertext
     98     
     99 /a\b/
    100     a.\=allusedtext
    101     a\=allusedtext  
    102 
    103 /abc\Kxyz/
    104     abcxyz\=allusedtext
    105 
    106 /abc(?=xyz(*ACCEPT))/
    107     abcxyz\=allusedtext
    108 
    109 /abc(?=abcde)(?=ab)/allusedtext
    110     abcabcdefg
    111     
    112 # These tests provoke recursion loops, which give a different error message
    113 # when JIT is used.
    114 
    115 /(?R)/I
    116     abcd
    117 
    118 /(a|(?R))/I
    119     abcd
    120     defg 
    121 
    122 /(ab|(bc|(de|(?R))))/I
    123     abcd
    124     fghi 
    125 
    126 /(ab|(bc|(de|(?1))))/I
    127     abcd
    128     fghi 
    129 
    130 /x(ab|(bc|(de|(?1)x)x)x)/I
    131     xab123
    132     xfghi 
    133 
    134 /(?!\w)(?R)/
    135     abcd
    136     =abc 
    137 
    138 /(?=\w)(?R)/
    139     =abc 
    140     abcd
    141 
    142 /(?<!\w)(?R)/
    143     abcd
    144 
    145 /(?<=\w)(?R)/
    146     abcd
    147 
    148 /(a+|(?R)b)/
    149     aaa
    150     bbb 
    151 
    152 /[^\xff]((?1))/BI
    153     abcd
    154     
    155 # These tests don't behave the same with JIT 
    156 
    157 /\w+(?C1)/BI,no_auto_possess
    158     abc\=callout_fail=1
    159 
    160 /(*NO_AUTO_POSSESS)\w+(?C1)/BI
    161     abc\=callout_fail=1
    162 
    163 # End of testinput15
    164