about summary refs log tree commit diff
path: root/t/percent.t
diff options
context:
space:
mode:
Diffstat (limited to 't/percent.t')
-rwxr-xr-xt/percent.t110
1 files changed, 110 insertions, 0 deletions
diff --git a/t/percent.t b/t/percent.t
new file mode 100755
index 0000000..c3b97b7
--- /dev/null
+++ b/t/percent.t
@@ -0,0 +1,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