]>
Commit | Line | Data |
---|---|---|
bb70624e JA |
1 | # |
2 | # More ksh-like extended globbing tests, cribbed from zsh-3.1.5 | |
3 | # | |
4 | shopt -s extglob | |
5 | ||
6 | failed=0 | |
7 | while read res str pat; do | |
8 | [[ $res = '#' ]] && continue | |
9 | [[ $str = ${pat} ]] | |
10 | ts=$? | |
11 | [[ $1 = -q ]] || echo "$ts: [[ $str = $pat ]]" | |
12 | if [[ ( $ts -gt 0 && $res = t) || ($ts -eq 0 && $res = f) ]]; then | |
13 | echo "Test failed: [[ $str = $pat ]]" | |
14 | (( failed += 1 )) | |
15 | fi | |
16 | done <<EOT | |
17 | t fofo *(f*(o)) | |
18 | t ffo *(f*(o)) | |
19 | t foooofo *(f*(o)) | |
20 | t foooofof *(f*(o)) | |
21 | t fooofoofofooo *(f*(o)) | |
22 | f foooofof *(f+(o)) | |
23 | f xfoooofof *(f*(o)) | |
24 | f foooofofx *(f*(o)) | |
25 | t ofxoofxo *(*(of*(o)x)o) | |
26 | f ofooofoofofooo *(f*(o)) | |
27 | t foooxfooxfoxfooox *(f*(o)x) | |
28 | f foooxfooxofoxfooox *(f*(o)x) | |
29 | t foooxfooxfxfooox *(f*(o)x) | |
30 | t ofxoofxo *(*(of*(o)x)o) | |
31 | t ofoooxoofxo *(*(of*(o)x)o) | |
32 | t ofoooxoofxoofoooxoofxo *(*(of*(o)x)o) | |
33 | t ofoooxoofxoofoooxoofxoo *(*(of*(o)x)o) | |
34 | f ofoooxoofxoofoooxoofxofo *(*(of*(o)x)o) | |
35 | t ofoooxoofxoofoooxoofxooofxofxo *(*(of*(o)x)o) | |
36 | t aac *(@(a))a@(c) | |
37 | t ac *(@(a))a@(c) | |
38 | f c *(@(a))a@(c) | |
39 | t aaac *(@(a))a@(c) | |
40 | f baaac *(@(a))a@(c) | |
41 | t abcd ?@(a|b)*@(c)d | |
42 | t abcd @(ab|a*@(b))*(c)d | |
43 | t acd @(ab|a*(b))*(c)d | |
44 | t abbcd @(ab|a*(b))*(c)d | |
45 | t effgz @(b+(c)d|e*(f)g?|?(h)i@(j|k)) | |
46 | t efgz @(b+(c)d|e*(f)g?|?(h)i@(j|k)) | |
47 | t egz @(b+(c)d|e*(f)g?|?(h)i@(j|k)) | |
48 | t egzefffgzbcdij *(b+(c)d|e*(f)g?|?(h)i@(j|k)) | |
49 | f egz @(b+(c)d|e+(f)g?|?(h)i@(j|k)) | |
50 | t ofoofo *(of+(o)) | |
51 | t oxfoxoxfox *(oxf+(ox)) | |
52 | f oxfoxfox *(oxf+(ox)) | |
53 | t ofoofo *(of+(o)|f) | |
54 | # The following is supposed to match only as fo+ofo+ofo | |
55 | t foofoofo @(foo|f|fo)*(f|of+(o)) | |
56 | t oofooofo *(of|oof+(o)) | |
57 | t fffooofoooooffoofffooofff *(*(f)*(o)) | |
58 | # The following tests backtracking in alternation matches | |
59 | t fofoofoofofoo *(fo|foo) | |
60 | # Exclusion | |
61 | t foo !(x) | |
62 | t foo !(x)* | |
63 | f foo !(foo) | |
64 | t foo !(foo)* | |
65 | t foobar !(foo) | |
66 | t foobar !(foo)* | |
67 | t moo.cow !(*.*).!(*.*) | |
68 | f mad.moo.cow !(*.*).!(*.*) | |
69 | f mucca.pazza mu!(*(c))?.pa!(*(z))? | |
70 | t fff !(f) | |
71 | t fff *(!(f)) | |
72 | t fff +(!(f)) | |
73 | t ooo !(f) | |
74 | t ooo *(!(f)) | |
75 | t ooo +(!(f)) | |
76 | t foo !(f) | |
77 | t foo *(!(f)) | |
78 | t foo +(!(f)) | |
79 | f f !(f) | |
80 | f f *(!(f)) | |
81 | f f +(!(f)) | |
82 | t foot @(!(z*)|*x) | |
83 | f zoot @(!(z*)|*x) | |
84 | t foox @(!(z*)|*x) | |
85 | t zoox @(!(z*)|*x) | |
86 | t foo *(!(foo)) | |
87 | f foob !(foo)b* | |
88 | t foobb !(foo)b* | |
89 | EOT | |
90 | echo "$failed tests failed." |