26763: fix problem on failed cd -s to relative path
[zsh.git] / Misc / globtests.ksh
blob6a9bf9b0ecf7967dfcdeffb0e6902ccd2b11acf5
1 #!/usr/local/bin/zsh -f
3 setopt kshglob extendedglob
5 failed=0
6 while read res str pat; do
7 [[ $res = '#' ]] && continue
8 [[ $str = ${~pat} ]]
9 ts=$?
10 [[ $1 = -q ]] || print "$ts: [[ $str = $pat ]]"
11 if [[ ( $ts -gt 0 && $res = t) || ($ts -eq 0 && $res = f) ]]; then
12 print "Test failed: [[ $str = $pat ]]"
13 (( failed++ ))
15 done <<EOT
16 t fofo *(f*(o))
17 t ffo *(f*(o))
18 t foooofo *(f*(o))
19 t foooofof *(f*(o))
20 t fooofoofofooo *(f*(o))
21 f foooofof *(f+(o))
22 f xfoooofof *(f*(o))
23 f foooofofx *(f*(o))
24 t ofxoofxo *(*(of*(o)x)o)
25 f ofooofoofofooo *(f*(o))
26 t foooxfooxfoxfooox *(f*(o)x)
27 f foooxfooxofoxfooox *(f*(o)x)
28 t foooxfooxfxfooox *(f*(o)x)
29 t ofxoofxo *(*(of*(o)x)o)
30 t ofoooxoofxo *(*(of*(o)x)o)
31 t ofoooxoofxoofoooxoofxo *(*(of*(o)x)o)
32 t ofoooxoofxoofoooxoofxoo *(*(of*(o)x)o)
33 f ofoooxoofxoofoooxoofxofo *(*(of*(o)x)o)
34 t ofoooxoofxoofoooxoofxooofxofxo *(*(of*(o)x)o)
35 t aac *(@(a))a@(c)
36 t ac *(@(a))a@(c)
37 f c *(@(a))a@(c)
38 t aaac *(@(a))a@(c)
39 f baaac *(@(a))a@(c)
40 t abcd ?@(a|b)*@(c)d
41 t abcd @(ab|a*@(b))*(c)d
42 t acd @(ab|a*(b))*(c)d
43 t abbcd @(ab|a*(b))*(c)d
44 t effgz @(b+(c)d|e*(f)g?|?(h)i@(j|k))
45 t efgz @(b+(c)d|e*(f)g?|?(h)i@(j|k))
46 t egz @(b+(c)d|e*(f)g?|?(h)i@(j|k))
47 t egzefffgzbcdij *(b+(c)d|e*(f)g?|?(h)i@(j|k))
48 f egz @(b+(c)d|e+(f)g?|?(h)i@(j|k))
49 t ofoofo *(of+(o))
50 t oxfoxoxfox *(oxf+(ox))
51 f oxfoxfox *(oxf+(ox))
52 t ofoofo *(of+(o)|f)
53 # The following is supposed to match only as fo+ofo+ofo
54 t foofoofo @(foo|f|fo)*(f|of+(o))
55 t oofooofo *(of|oof+(o))
56 t fffooofoooooffoofffooofff *(*(f)*(o))
57 # If the following is really slow, that's a bug.
58 f fffooofoooooffoofffooofffx *(*(f)*(o))
59 # The following tests backtracking in alternation matches
60 t fofoofoofofoo *(fo|foo)
61 # Exclusion
62 t foo !(x)
63 t foo !(x)*
64 f foo !(foo)
65 t foo !(foo)*
66 t foobar !(foo)
67 t foobar !(foo)*
68 t moo.cow !(*.*).!(*.*)
69 f mad.moo.cow !(*.*).!(*.*)
70 f mucca.pazza mu!(*(c))?.pa!(*(z))?
71 f _foo~ _?(*[^~])
72 t fff !(f)
73 t fff *(!(f))
74 t fff +(!(f))
75 t ooo !(f)
76 t ooo *(!(f))
77 t ooo +(!(f))
78 t foo !(f)
79 t foo *(!(f))
80 t foo +(!(f))
81 f f !(f)
82 f f *(!(f))
83 f f +(!(f))
84 t foot @(!(z*)|*x)
85 f zoot @(!(z*)|*x)
86 t foox @(!(z*)|*x)
87 t zoox @(!(z*)|*x)
88 t foo *(!(foo))
89 f foob !(foo)b*
90 t foobb !(foo)b*
91 t fooxx (#i)FOOXX
92 f fooxx (#l)FOOXX
93 t FOOXX (#l)fooxx
94 f fooxx (#i)FOO@(#I)X@(#i)X
95 t fooXx (#i)FOO@(#I)X@(#i)X
96 t fooxx @((#i)FOOX)x
97 f fooxx @((#i)FOOX)X
98 f BAR @(bar|(#i)foo)
99 t FOO @(bar|(#i)foo)
100 t Modules (#i)*m*
102 print "$failed tests failed."