397 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			397 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| # 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
 |