123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396 |
- # This file tests the auxiliary pattern conversion features of the PCRE2
- # library, in non-UTF mode.
- #forbid_utf
- #newline_default lf any anycrlf
- # -------- Tests of glob conversion --------
- # Set the glob separator explicitly so that different OS defaults are not a
- # problem. Then test various errors.
- #pattern convert=glob,convert_glob_escape=\,convert_glob_separator=/
- /abc/posix
- # Separator must be / \ or .
- /a*b/convert_glob_separator=%
- # Can't have separator in a class
- "[ab/cd]"
- "[,-/]"
- /[ab/
- # Length check
- /abc/convert_length=11
- /abc/convert_length=12
- # Now some actual tests
- /a?b[]xy]*c/
- azb]1234c
- # Tests from the gitwildmatch list, with some additions
- /foo/
- foo
- /= Expect no match
- bar
- //
- \
- /???/
- foo
- \= Expect no match
- foobar
- /*/
- foo
- \
- /f*/
- foo
- f
- /*f/
- oof
- \= Expect no match
- foo
- /*foo*/
- foo
- food
- aprilfool
- /*ob*a*r*/
- foobar
- /*ab/
- aaaaaaabababab
- /foo\*/
- foo*
- /foo\*bar/
- \= Expect no match
- foobar
- /f\\oo/
- f\\oo
- /*[al]?/
- ball
- /[ten]/
- \= Expect no match
- ten
- /t[a-g]n/
- ten
- /a[]]b/
- a]b
- /a[]a-]b/
- /a[]-]b/
- a-b
- a]b
- \= Expect no match
- aab
- /a[]a-z]b/
- aab
- /]/
- ]
- /t[!a-g]n/
- ton
- \= Expect no match
- ten
- '[[:alpha:]][[:digit:]][[:upper:]]'
- a1B
- '[[:digit:][:upper:][:space:]]'
- A
- 1
- \ \=
- \= Expect no match
- a
- .
- '[a-c[:digit:]x-z]'
- 5
- b
- y
- \= Expect no match
- q
- # End of gitwildmatch tests
- /*.j?g/
- pic01.jpg
- .jpg
- pic02.jxg
- \= Expect no match
- pic03.j/g
- /A[+-0]B/
- A+B
- A.B
- A0B
- \= Expect no match
- A/B
- /*x?z/
- abc.xyz
- \= Expect no match
- .xyz
- /?x?z/
- axyz
- \= Expect no match
- .xyz
- "[,-0]x?z"
- ,xyz
- \= Expect no match
- /xyz
- .xyz
- ".x*"
- .xabc
- /a[--0]z/
- a-z
- a.z
- a0z
- \= Expect no match
- a/z
- a1z
- /<[a-c-d]>/
- <a>
- <b>
- <c>
- <d>
- <->
- /a[[:digit:].]z/
- a1z
- a.z
- \= Expect no match
- a:z
- /a[[:digit].]z/
- a[.]z
- a:.]z
- ad.]z
- /<[[:a[:digit:]b]>/
- <[>
- <:>
- <a>
- <9>
- <b>
- \= Expect no match
- <d>
- /a*b/convert_glob_separator=\
- /a*b/convert_glob_separator=.
- /a*b/convert_glob_separator=/
- # Non control character checking
- /A\B\\C\D/
- /\\{}\?\*+\[\]()|.^$/
- /*a*\/*b*/
- /?a?\/?b?/
- /[a\\b\c][]][-][\]\-]/
- /[^a\\b\c][!]][!-][^\]\-]/
- /[[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:graph:][:lower:][:print:][:punct:][:space:][:upper:][:word:][:xdigit:]]/
- "[/-/]"
- /[-----]/
- /[------]/
- /[!------]/
- /[[:alpha:]-a]/
- /[[:alpha:]][[:punct:]][[:ascii:]]/
- /[a-[:alpha:]]/
- /[[:alpha:/
- /[[:alpha:]/
- /[[:alphaa:]]/
- /[[:xdigi:]]/
- /[[:xdigit::]]/
- /****/
- /**\/abc/
- abc
- x/abc
- xabc
- /abc\/**/
- /abc\/**\/abc/
- /**\/*a*b*g*n*t/
- abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txt
- /**\/*a*\/**/
- xx/xx/xx/xax/xx/xb
- /**\/*a*/
- xx/xx/xx/xax
- xx/xx/xx/xax/xx
- /**\/*a*\/**\/*b*/
- xx/xx/xx/xax/xx/xb
- xx/xx/xx/xax/xx/x
- "**a"convert=glob
- a
- c/b/a
- c/b/aaa
- "a**/b"convert=glob
- a/b
- ab
- "a/**b"convert=glob
- a/b
- ab
- #pattern convert=glob:glob_no_starstar
- /***/
- /**a**/
- #pattern convert=unset
- #pattern convert=glob:glob_no_wild_separator
- /*/
- /*a*/
- /**a**/
- /a*b/
- /*a*b*/
- /??a??/
- #pattern convert=unset
- #pattern convert=glob,convert_glob_escape=0
- /a\b\cd/
- /**\/a/
- /a`*b/convert_glob_escape=`
- /a`*b/convert_glob_escape=0
- /a`*b/convert_glob_escape=x
- # -------- Tests of extended POSIX conversion --------
- #pattern convert=unset:posix_extended
- /<[[:a[:digit:]b]>/
- <[>
- <:>
- <a>
- <9>
- <b>
- \= Expect no match
- <d>
- /a+\1b\\c|d[ab\c]/
- /<[]bc]>/
- <]>
- <b>
- <c>
- /<[^]bc]>/
- <.>
- \= Expect no match
- <]>
- <b>
- /(a)\1b/
- a1b
- \= Expect no match
- aab
- /(ab)c)d]/
- Xabc)d]Y
- /a***b/
- # -------- Tests of basic POSIX conversion --------
- #pattern convert=unset:posix_basic
- /a*b+c\+[def](ab)\(cd\)/
- /\(a\)\1b/
- aab
- \= Expect no match
- a1b
- /how.to how\.to/
- how\nto how.to
- \= Expect no match
- how\x{0}to how.to
- /^how to \^how to/
- /^*abc/
- /*abc/
- X*abcY
- /**abc/
- XabcY
- X*abcY
- X**abcY
-
- /*ab\(*cd\)/
- /^b\(c^d\)\(^e^f\)/
- /a***b/
- # End of testinput24
|