]>
Commit | Line | Data |
---|---|---|
deb63bfb A |
1 | # $FreeBSD: head/bin/sh/tests/expansion/pathname1.0 302937 2016-07-16 13:26:18Z ache $ |
2 | ||
3 | unset LC_ALL | |
4 | LC_COLLATE=C | |
5 | export LC_COLLATE | |
71aad674 A |
6 | |
7 | failures=0 | |
8 | ||
9 | check() { | |
10 | testcase=$1 | |
11 | expect=$2 | |
12 | eval "set -- $testcase" | |
13 | actual="$*" | |
14 | if [ "$actual" != "$expect" ]; then | |
15 | failures=$((failures+1)) | |
16 | printf '%s\n' "For $testcase, expected $expect actual $actual" | |
17 | fi | |
18 | } | |
19 | ||
20 | set -e | |
21 | T=$(mktemp -d ${TMPDIR:-/tmp}/sh-test.XXXXXX) | |
22 | trap 'rm -rf $T' 0 | |
23 | cd -P $T | |
24 | ||
25 | mkdir testdir testdir2 'testdir/*' 'testdir/?' testdir/a testdir/b testdir2/b | |
26 | mkdir testdir2/.c | |
27 | touch testf 'testdir/*/1' 'testdir/?/1' testdir/a/1 testdir/b/1 testdir2/b/.a | |
28 | ||
29 | check '' '' | |
30 | check 'testdir/b' 'testdir/b' | |
31 | check 'testdir/c' 'testdir/c' | |
32 | check '\*' '*' | |
33 | check '\?' '?' | |
34 | check '*' 'testdir testdir2 testf' | |
35 | check '*""' 'testdir testdir2 testf' | |
36 | check '""*' 'testdir testdir2 testf' | |
37 | check '*/' 'testdir/ testdir2/' | |
38 | check 'testdir*/a' 'testdir/a' | |
39 | check 'testdir*/b' 'testdir/b testdir2/b' | |
40 | check '*/.c' 'testdir2/.c' | |
41 | check 'testdir2/*' 'testdir2/b' | |
42 | check 'testdir2/b/*' 'testdir2/b/*' | |
43 | check 'testdir/*' 'testdir/* testdir/? testdir/a testdir/b' | |
44 | check 'testdir/*/1' 'testdir/*/1 testdir/?/1 testdir/a/1 testdir/b/1' | |
45 | check '"testdir/"*/1' 'testdir/*/1 testdir/?/1 testdir/a/1 testdir/b/1' | |
46 | check 'testdir/\*/*' 'testdir/*/1' | |
47 | check 'testdir/\?/*' 'testdir/?/1' | |
48 | check 'testdir/"?"/*' 'testdir/?/1' | |
49 | check '"testdir"/"?"/*' 'testdir/?/1' | |
50 | check '"testdir"/"?"*/*' 'testdir/?/1' | |
51 | check '"testdir"/*"?"/*' 'testdir/?/1' | |
52 | check '"testdir/?"*/*' 'testdir/?/1' | |
53 | check 'testdir/\*/' 'testdir/*/' | |
54 | check 'testdir/\?/' 'testdir/?/' | |
55 | check 'testdir/"?"/' 'testdir/?/' | |
56 | check '"testdir"/"?"/' 'testdir/?/' | |
57 | check '"testdir"/"?"*/' 'testdir/?/' | |
58 | check '"testdir"/*"?"/' 'testdir/?/' | |
59 | check '"testdir/?"*/' 'testdir/?/' | |
60 | check 'testdir/[*]/' 'testdir/*/' | |
61 | check 'testdir/[?]/' 'testdir/?/' | |
62 | check 'testdir/[*?]/' 'testdir/*/ testdir/?/' | |
63 | check '[tz]estdir/[*]/' 'testdir/*/' | |
64 | ||
65 | exit $((failures != 0)) |