about summary refs log tree commit diff
path: root/t/percent.t
blob: c3b97b7fec9031705f08eee753b0f5ddafba4345 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
#!/bin/sh
export "PATH=.:$PATH"

printf '1..13\n'
printf '# percent rules\n'

tap3 'literal matches' <<'EOF'
xe -ap bcd echo found -- abc bcd defg
>>>
found
EOF

tap3 'multiple patterns' <<'EOF'
xe -ap one echo 1 + two echo 2 + three echo 3 -- zero one two three four five
>>>
1
2
3
EOF

tap3 '{} expansion' <<'EOF'
xe -ap bcd echo {} -- abc bcd defg
>>>
bcd
EOF

tap3 '% expansion' <<'EOF'
xe -ap bcd echo % -- abc bcd defg
>>>
bcd
EOF

tap3 'dirnames' <<'EOF'
xe -ap bcd echo % -- abc bcd /tmp/bcd /tmp/abc
>>>
bcd
/tmp/bcd
EOF

tap3 '? glob' <<'EOF'
xe -ap "b?d" echo % -- abc bcd b3d defg
>>>
bcd
b3d
EOF

tap3 '* glob' <<'EOF'
xe -ap "b*d" echo % -- bd bed bad bugged bx zbd b/d
>>>
bd
bed
bad
bugged
EOF

tap3 'multiple * glob' <<'EOF'
xe -ap "b*g*d" echo % -- bd bed bugged bx zbd bagdad badger ba/gd/ad
>>>
bugged
bagdad
EOF

tap3 'multiple ** glob' <<'EOF'
xe -ap "b**g**d" echo % -- bd bed bugged bx zbd bagdad badger ba/gd/ad
>>>
bugged
bagdad
ba/gd/ad
EOF

tap3 '/ slash' <<'EOF'
xe -ap a/b echo 1 + c///d echo 2 + "*" echo 3 -- a/b a//b a/ b c/d /c////d
>>>
1
1
3
3
2
3
EOF

tap3 '[] ranges' <<'EOF'
xe -ap "[abc]" echo "1%" + "[d-g]" echo "2%" + "[^xyz-]" echo "3%" + "[!-vw]" echo "4%" + % echo "5%" -- a c d e g h w x -
>>>
1a
1c
2d
2e
2g
3h
3w
4x
5-
EOF

tap3 '{} alternation' <<'EOF'
xe -ap "{a,bc,def*}" echo % -- x a abc bc bcd def defx xdef
>>>
a
bc
def
defx
EOF

tap3 '% match' <<'EOF'
xe -ap %.c echo obj/%.o -- foo.c bar.cc meh/quux.c
>>>
obj/foo.o
meh/obj/quux.o
EOF