]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - tools/regression/bin/sh/expansion/pathname1.0
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / tools / regression / bin / sh / expansion / pathname1.0
1 # $FreeBSD$
2
3 failures=0
4
5 check() {
6         testcase=$1
7         expect=$2
8         eval "set -- $testcase"
9         actual="$*"
10         if [ "$actual" != "$expect" ]; then
11                 failures=$((failures+1))
12                 printf '%s\n' "For $testcase, expected $expect actual $actual"
13         fi
14 }
15
16 set -e
17 T=$(mktemp -d ${TMPDIR:-/tmp}/sh-test.XXXXXX)
18 trap 'rm -rf $T' 0
19 cd -P $T
20
21 mkdir testdir testdir2 'testdir/*' 'testdir/?' testdir/a testdir/b testdir2/b
22 mkdir testdir2/.c
23 touch testf 'testdir/*/1' 'testdir/?/1' testdir/a/1 testdir/b/1 testdir2/b/.a
24
25 check '' ''
26 check 'testdir/b' 'testdir/b'
27 check 'testdir/c' 'testdir/c'
28 check '\*' '*'
29 check '\?' '?'
30 check '*' 'testdir testdir2 testf'
31 check '*""' 'testdir testdir2 testf'
32 check '""*' 'testdir testdir2 testf'
33 check '*/' 'testdir/ testdir2/'
34 check 'testdir*/a' 'testdir/a'
35 check 'testdir*/b' 'testdir/b testdir2/b'
36 check '*/.c' 'testdir2/.c'
37 check 'testdir2/*' 'testdir2/b'
38 check 'testdir2/b/*' 'testdir2/b/*'
39 check 'testdir/*' 'testdir/* testdir/? testdir/a testdir/b'
40 check 'testdir/*/1' 'testdir/*/1 testdir/?/1 testdir/a/1 testdir/b/1'
41 check '"testdir/"*/1' 'testdir/*/1 testdir/?/1 testdir/a/1 testdir/b/1'
42 check 'testdir/\*/*' 'testdir/*/1'
43 check 'testdir/\?/*' 'testdir/?/1'
44 check 'testdir/"?"/*' 'testdir/?/1'
45 check '"testdir"/"?"/*' 'testdir/?/1'
46 check '"testdir"/"?"*/*' 'testdir/?/1'
47 check '"testdir"/*"?"/*' 'testdir/?/1'
48 check '"testdir/?"*/*' 'testdir/?/1'
49 check 'testdir/\*/' 'testdir/*/'
50 check 'testdir/\?/' 'testdir/?/'
51 check 'testdir/"?"/' 'testdir/?/'
52 check '"testdir"/"?"/' 'testdir/?/'
53 check '"testdir"/"?"*/' 'testdir/?/'
54 check '"testdir"/*"?"/' 'testdir/?/'
55 check '"testdir/?"*/' 'testdir/?/'
56 check 'testdir/[*]/' 'testdir/*/'
57 check 'testdir/[?]/' 'testdir/?/'
58 check 'testdir/[*?]/' 'testdir/*/ testdir/?/'
59 check '[tz]estdir/[*]/' 'testdir/*/'
60
61 exit $((failures != 0))