You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
# 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
|