Home | History | Annotate | Download | only in testdata
      1 # This file tests the auxiliary pattern conversion features of the PCRE2
      2 # library, in non-UTF mode.
      3 
      4 #forbid_utf
      5 #newline_default lf any anycrlf
      6 
      7 # -------- Tests of glob conversion --------
      8 
      9 # Set the glob separator explicitly so that different OS defaults are not a
     10 # problem. Then test various errors.
     11 
     12 #pattern convert=glob,convert_glob_escape=\,convert_glob_separator=/
     13 
     14 /abc/posix
     15 
     16 # Separator must be / \ or .
     17 
     18 /a*b/convert_glob_separator=%
     19 
     20 # Can't have separator in a class
     21 
     22 "[ab/cd]"
     23 
     24 "[,-/]"
     25 
     26 /[ab/
     27 
     28 # Length check
     29 
     30 /abc/convert_length=11
     31 
     32 /abc/convert_length=12
     33 
     34 # Now some actual tests
     35 
     36 /a?b[]xy]*c/
     37     azb]1234c
     38 
     39 # Tests from the gitwildmatch list, with some additions
     40 
     41 /foo/
     42     foo
     43 /= Expect no match
     44     bar
     45 
     46 //
     47     \
     48 
     49 /???/
     50     foo
     51 \= Expect no match
     52     foobar
     53 
     54 /*/
     55     foo
     56     \
     57 
     58 /f*/
     59     foo
     60     f
     61 
     62 /*f/
     63     oof
     64 \= Expect no match
     65     foo
     66 
     67 /*foo*/
     68     foo
     69     food
     70     aprilfool
     71 
     72 /*ob*a*r*/
     73     foobar
     74 
     75 /*ab/
     76     aaaaaaabababab
     77 
     78 /foo\*/
     79     foo*
     80 
     81 /foo\*bar/
     82 \= Expect no match
     83     foobar
     84 
     85 /f\\oo/
     86     f\\oo
     87 
     88 /*[al]?/
     89     ball
     90 
     91 /[ten]/
     92 \= Expect no match
     93     ten
     94 
     95 /t[a-g]n/
     96     ten
     97 
     98 /a[]]b/
     99     a]b
    100 
    101 /a[]a-]b/
    102 
    103 /a[]-]b/
    104     a-b
    105     a]b
    106 \= Expect no match
    107     aab
    108 
    109 /a[]a-z]b/
    110     aab
    111 
    112 /]/
    113     ]
    114 
    115 /t[!a-g]n/
    116     ton
    117 \= Expect no match
    118     ten
    119 
    120 '[[:alpha:]][[:digit:]][[:upper:]]'
    121     a1B
    122 
    123 '[[:digit:][:upper:][:space:]]'
    124     A
    125     1
    126     \ \=
    127 \= Expect no match
    128     a
    129     .
    130 
    131 '[a-c[:digit:]x-z]'
    132     5
    133     b
    134     y
    135 \= Expect no match
    136     q
    137 
    138 # End of gitwildmatch tests
    139 
    140 /*.j?g/
    141     pic01.jpg
    142     .jpg
    143     pic02.jxg
    144 \= Expect no match
    145     pic03.j/g
    146 
    147 /A[+-0]B/
    148     A+B
    149     A.B
    150     A0B
    151 \= Expect no match
    152     A/B
    153 
    154 /*x?z/
    155     abc.xyz
    156 \= Expect no match
    157     .xyz
    158 
    159 /?x?z/
    160     axyz
    161 \= Expect no match
    162     .xyz
    163 
    164 "[,-0]x?z"
    165     ,xyz
    166 \= Expect no match
    167     /xyz
    168     .xyz
    169 
    170 ".x*"
    171     .xabc
    172 
    173 /a[--0]z/
    174     a-z
    175     a.z
    176     a0z
    177 \= Expect no match
    178     a/z
    179     a1z
    180 
    181 /<[a-c-d]>/
    182     <a>
    183     <b>
    184     <c>
    185     <d>
    186     <->
    187 
    188 /a[[:digit:].]z/
    189     a1z
    190     a.z
    191 \= Expect no match
    192     a:z
    193 
    194 /a[[:digit].]z/
    195     a[.]z
    196     a:.]z
    197     ad.]z
    198 
    199 /<[[:a[:digit:]b]>/
    200     <[>
    201     <:>
    202     <a>
    203     <9>
    204     <b>
    205 \= Expect no match
    206     <d>
    207 
    208 /a*b/convert_glob_separator=\
    209 
    210 /a*b/convert_glob_separator=.
    211 
    212 /a*b/convert_glob_separator=/
    213 
    214 # Non control character checking
    215 
    216 /A\B\\C\D/
    217 
    218 /\\{}\?\*+\[\]()|.^$/
    219 
    220 /*a*\/*b*/
    221 
    222 /?a?\/?b?/
    223 
    224 /[a\\b\c][]][-][\]\-]/
    225 
    226 /[^a\\b\c][!]][!-][^\]\-]/
    227 
    228 /[[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:graph:][:lower:][:print:][:punct:][:space:][:upper:][:word:][:xdigit:]]/
    229 
    230 "[/-/]"
    231 
    232 /[-----]/
    233 
    234 /[------]/
    235 
    236 /[!------]/
    237 
    238 /[[:alpha:]-a]/
    239 
    240 /[[:alpha:]][[:punct:]][[:ascii:]]/
    241 
    242 /[a-[:alpha:]]/
    243 
    244 /[[:alpha:/
    245 
    246 /[[:alpha:]/
    247 
    248 /[[:alphaa:]]/
    249 
    250 /[[:xdigi:]]/
    251 
    252 /[[:xdigit::]]/
    253 
    254 /****/
    255 
    256 /**\/abc/
    257   abc
    258   x/abc
    259   xabc
    260 
    261 /abc\/**/
    262 
    263 /abc\/**\/abc/
    264 
    265 /**\/*a*b*g*n*t/
    266   abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txt
    267 
    268 /**\/*a*\/**/
    269   xx/xx/xx/xax/xx/xb
    270 
    271 /**\/*a*/
    272   xx/xx/xx/xax
    273   xx/xx/xx/xax/xx
    274 
    275 /**\/*a*\/**\/*b*/
    276   xx/xx/xx/xax/xx/xb
    277   xx/xx/xx/xax/xx/x
    278 
    279 "**a"convert=glob
    280   a
    281   c/b/a
    282   c/b/aaa
    283 
    284 "a**/b"convert=glob
    285   a/b
    286   ab
    287 
    288 "a/**b"convert=glob
    289   a/b
    290   ab
    291 
    292 #pattern convert=glob:glob_no_starstar
    293 
    294 /***/
    295 
    296 /**a**/
    297 
    298 #pattern convert=unset
    299 #pattern convert=glob:glob_no_wild_separator
    300 
    301 /*/
    302 
    303 /*a*/
    304 
    305 /**a**/
    306 
    307 /a*b/
    308 
    309 /*a*b*/
    310 
    311 /??a??/
    312 
    313 #pattern convert=unset
    314 #pattern convert=glob,convert_glob_escape=0
    315 
    316 /a\b\cd/
    317 
    318 /**\/a/
    319 
    320 /a`*b/convert_glob_escape=`
    321 
    322 /a`*b/convert_glob_escape=0
    323 
    324 /a`*b/convert_glob_escape=x
    325 
    326 # -------- Tests of extended POSIX conversion --------
    327 
    328 #pattern convert=unset:posix_extended
    329 
    330 /<[[:a[:digit:]b]>/
    331     <[>
    332     <:>
    333     <a>
    334     <9>
    335     <b>
    336 \= Expect no match
    337     <d>
    338 
    339 /a+\1b\\c|d[ab\c]/
    340 
    341 /<[]bc]>/
    342     <]>
    343     <b>
    344     <c>
    345 
    346 /<[^]bc]>/
    347     <.>
    348 \= Expect no match
    349     <]>
    350     <b>
    351 
    352 /(a)\1b/
    353     a1b
    354 \= Expect no match
    355     aab
    356 
    357 /(ab)c)d]/
    358     Xabc)d]Y
    359 
    360 /a***b/
    361 
    362 # -------- Tests of basic POSIX conversion --------
    363 
    364 #pattern convert=unset:posix_basic
    365 
    366 /a*b+c\+[def](ab)\(cd\)/
    367 
    368 /\(a\)\1b/
    369     aab
    370 \= Expect no match
    371     a1b
    372 
    373 /how.to how\.to/
    374     how\nto how.to
    375 \= Expect no match     
    376     how\x{0}to how.to
    377 
    378 /^how to \^how to/
    379 
    380 /^*abc/
    381 
    382 /*abc/
    383     X*abcY
    384 
    385 /**abc/
    386     XabcY
    387     X*abcY
    388     X**abcY
    389     
    390 /*ab\(*cd\)/ 
    391 
    392 /^b\(c^d\)\(^e^f\)/
    393 
    394 /a***b/
    395 
    396 # End of testinput24
    397