summaryrefslogtreecommitdiff
path: root/Misc
diff options
context:
space:
mode:
authorPeter Stephenson <pws@users.sourceforge.net>2000-04-06 18:44:01 +0000
committerPeter Stephenson <pws@users.sourceforge.net>2000-04-06 18:44:01 +0000
commitd2330ba0554b09a3f942a921acfbbabcf6466bef (patch)
tree2bf4a6598e69a8c62b73e1293172d74f91a3cf64 /Misc
parent181811bf80eaa7c11e3d465c33ce5c9ed4e0415d (diff)
downloadzsh-d2330ba0554b09a3f942a921acfbbabcf6466bef.tar.gz
zsh-d2330ba0554b09a3f942a921acfbbabcf6466bef.zip
10547: (#s) and (#e) pattern assertions
Diffstat (limited to 'Misc')
-rwxr-xr-xMisc/globtests76
1 files changed, 76 insertions, 0 deletions
diff --git a/Misc/globtests b/Misc/globtests
index 728aee5ae..9fbab98fa 100755
--- a/Misc/globtests
+++ b/Misc/globtests
@@ -14,6 +14,13 @@ while read res str pat; do
(( failed++ ))
fi
done <<EOT
+# a few simple things certain nameless idiots have been known to mess up
+t foo~ foo~
+t foo~ (foo~)
+t foo~ (foo~|)
+t foo.c *.c~boo*
+f foo.c *.c~boo*~foo*
+# closures
t fofo (fo#)#
t ffo (fo#)#
t foooofo (fo#)#
@@ -75,6 +82,7 @@ f mad.moo.cow (*~*.*).(*~*.*)
t moo.cow (^*.*).(^*.*)
f sane.moo.cow (^*.*).(^*.*)
f mucca.pazza mu(^c#)?.pa(^z#)?
+f _foo~ _(|*[^~])
t fff ((^f))
t fff ((^f)#)
t fff ((^f)##)
@@ -94,6 +102,8 @@ t zoox (^z*|*x)
t foo (^foo)#
f foob (^foo)b*
t foobb (^foo)b*
+f foob (*~foo)b*
+t foobb (*~foo)b*
f zsh ^z*
t a%1X [[:alpha:][:punct:]]#[[:digit:]][^[:lower:]]
f a%1 [[:alpha:][:punct:]]#[[:digit:]][^[:lower:]]
@@ -103,5 +113,71 @@ t :] [:]]#
t [ [[]
t ] []]
t [] [^]]]
+# Case insensitive matching
+t fooxx (#i)FOOXX
+f fooxx (#l)FOOXX
+t FOOXX (#l)fooxx
+f fooxx (#i)FOO(#I)X(#i)X
+t fooXx (#i)FOO(#I)X(#i)X
+t fooxx ((#i)FOOX)x
+f fooxx ((#i)FOOX)X
+f BAR (bar|(#i)foo)
+t FOO (bar|(#i)foo)
+t Modules (#i)*m*
+t fooGRUD (#i)(bar|(#I)foo|(#i)rod)grud
+f FOOGRUD (#i)(bar|(#I)foo|(#i)rod)grud
+t readme (#i)readme~README|readme
+# the readme doesn't get excluded the second time...
+t readme (#i)readme~README|readme~README
+# Ranges with backtracking
+t 633 <1-1000>33
+t 633 <-1000>33
+t 633 <1->33
+t 633 <->33
+# Approximate matching
+t READ.ME (#ia1)readme
+f READ..ME (#ia1)readme
+t README (#ia1)readm
+t READM (#ia1)readme
+t README (#ia1)eadme
+t EADME (#ia1)readme
+t READEM (#ia1)readme
+f ADME (#ia1)readme
+f README (#ia1)read
+t bob (#a1)[b][b]
+f bob (#a1)[b][b]a
+t bob (#a1)[b]o[b]a
+f bob (#a1)[c]o[b]
+t abcd (#a2)XbcX
+t abcd (#a2)ad
+t ad (#a2)abcd
+t abcd (#a2)bd
+t bd (#a2)abcd
+t badc (#a2)abcd
+# This next one is a little tricky: a[d]bc[] = a[]bc[d]
+t adbc (#a2)abcd
+f dcba (#a2)abcd
+# the next one is [d][cb][a] = [a][bc][d] with a transposition
+t dcba (#a3)abcd
+t aabaXaaabY (#a1)(a#b)#Y
+t aabaXaaabY (#a1)(a#b)(a#b)Y
+t aaXaaaaabY (#a1)(a#b)(a#b)Y
+t aaaXaaabY (#a1)(a##b)##Y
+t aaaXbaabY (#a1)(a##b)##Y
+f read.me (#ia1)README~READ.ME
+t read.me (#ia1)README~READ_ME
+f read.me (#ia1)README~(#a1)READ_ME
+t test *((#s)|/)test((#e)|/)*
+t test/path *((#s)|/)test((#e)|/)*
+t path/test *((#s)|/)test((#e)|/)*
+t path/test/ohyes *((#s)|/)test((#e)|/)*
+f atest *((#s)|/)test((#e)|/)*
+f testy *((#s)|/)test((#e)|/)*
+f testy/path *((#s)|/)test((#e)|/)*
+f path/atest *((#s)|/)test((#e)|/)*
+f atest/path *((#s)|/)test((#e)|/)*
+f path/testy *((#s)|/)test((#e)|/)*
+f path/testy/ohyes *((#s)|/)test((#e)|/)*
+f path/atest/ohyes *((#s)|/)test((#e)|/)*
EOT
print "$failed tests failed."