sh: Sync with FreeBSD:
[dragonfly.git] / tools / regression / bin / sh / expansion / pathname2.0
1 # $FreeBSD: head/tools/regression/bin/sh/expansion/pathname2.0 207944 2010-05-11 23:19:28Z jilles $
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 '*\/' 'testdir/ testdir2/'
26 check '"testdir/"*"/1"' 'testdir/*/1 testdir/?/1 testdir/a/1 testdir/b/1'
27 check '"testdir/"*"/"*' 'testdir/*/1 testdir/?/1 testdir/a/1 testdir/b/1'
28 check '"testdir/"*\/*' 'testdir/*/1 testdir/?/1 testdir/a/1 testdir/b/1'
29 check '"testdir"*"/"*"/"*' 'testdir/*/1 testdir/?/1 testdir/a/1 testdir/b/1'
30
31 exit $((failures != 0))