xref: /dflybsd-src/tools/regression/bin/sh/expansion/trim8.0 (revision 3e3895bf4584c1562faf4533cbd97026ee6a8dcf)
1*3e3895bfSKrzysztof Piecuch# $FreeBSD: head/bin/sh/tests/expansion/trim8.0 221646 2011-05-08 11:32:20Z jilles $
2ead7935bSPeter Avalos
3ead7935bSPeter Avalosunset LC_ALL
4ead7935bSPeter AvalosLC_CTYPE=en_US.UTF-8
5ead7935bSPeter Avalosexport LC_CTYPE
6ead7935bSPeter Avalos
7ead7935bSPeter Avalosc1=e
8ead7935bSPeter Avalos# a umlaut
9ead7935bSPeter Avalosc2=$(printf '\303\244')
10ead7935bSPeter Avalos# euro sign
11ead7935bSPeter Avalosc3=$(printf '\342\202\254')
12ead7935bSPeter Avalos# some sort of 't' outside BMP
13ead7935bSPeter Avalosc4=$(printf '\360\235\225\245')
14ead7935bSPeter Avalos
15ead7935bSPeter Avaloss=$c1$c2$c3$c4
16ead7935bSPeter Avalos
17ead7935bSPeter Avalostestcase() {
18ead7935bSPeter Avalos	code="$1"
19ead7935bSPeter Avalos	expected="$2"
20ead7935bSPeter Avalos	oIFS="$IFS"
21ead7935bSPeter Avalos	eval "$code"
22ead7935bSPeter Avalos	IFS='|'
23ead7935bSPeter Avalos	result="$#|$*"
24ead7935bSPeter Avalos	IFS="$oIFS"
25ead7935bSPeter Avalos	if [ "x$result" = "x$expected" ]; then
26ead7935bSPeter Avalos		ok=x$ok
27ead7935bSPeter Avalos	else
28ead7935bSPeter Avalos		failures=x$failures
29ead7935bSPeter Avalos		echo "For $code, expected $expected actual $result"
30ead7935bSPeter Avalos	fi
31ead7935bSPeter Avalos}
32ead7935bSPeter Avalos
33ead7935bSPeter Avalostestcase 'set -- "$s"'				"1|$s"
34ead7935bSPeter Avalostestcase 'set -- "${s#$c2}"'			"1|$s"
35ead7935bSPeter Avalostestcase 'set -- "${s#*}"'			"1|$s"
36ead7935bSPeter Avalostestcase 'set -- "${s#$c1}"'			"1|$c2$c3$c4"
37ead7935bSPeter Avalostestcase 'set -- "${s#$c1$c2}"'			"1|$c3$c4"
38ead7935bSPeter Avalostestcase 'set -- "${s#$c1$c2$c3}"'		"1|$c4"
39ead7935bSPeter Avalostestcase 'set -- "${s#$c1$c2$c3$c4}"'		"1|"
40ead7935bSPeter Avalostestcase 'set -- "${s#?}"'			"1|$c2$c3$c4"
41ead7935bSPeter Avalostestcase 'set -- "${s#??}"'			"1|$c3$c4"
42ead7935bSPeter Avalostestcase 'set -- "${s#???}"'			"1|$c4"
43ead7935bSPeter Avalostestcase 'set -- "${s#????}"'			"1|"
44ead7935bSPeter Avalostestcase 'set -- "${s#*$c3}"'			"1|$c4"
45ead7935bSPeter Avalostestcase 'set -- "${s%$c4}"'			"1|$c1$c2$c3"
46ead7935bSPeter Avalostestcase 'set -- "${s%$c3$c4}"'			"1|$c1$c2"
47ead7935bSPeter Avalostestcase 'set -- "${s%$c2$c3$c4}"'		"1|$c1"
48ead7935bSPeter Avalostestcase 'set -- "${s%$c1$c2$c3$c4}"'		"1|"
49ead7935bSPeter Avalostestcase 'set -- "${s%?}"'			"1|$c1$c2$c3"
50ead7935bSPeter Avalostestcase 'set -- "${s%??}"'			"1|$c1$c2"
51ead7935bSPeter Avalostestcase 'set -- "${s%???}"'			"1|$c1"
52ead7935bSPeter Avalostestcase 'set -- "${s%????}"'			"1|"
53ead7935bSPeter Avalostestcase 'set -- "${s%$c2*}"'			"1|$c1"
54ead7935bSPeter Avalostestcase 'set -- "${s##$c2}"'			"1|$s"
55ead7935bSPeter Avalostestcase 'set -- "${s##*}"'			"1|"
56ead7935bSPeter Avalostestcase 'set -- "${s##$c1}"'			"1|$c2$c3$c4"
57ead7935bSPeter Avalostestcase 'set -- "${s##$c1$c2}"'		"1|$c3$c4"
58ead7935bSPeter Avalostestcase 'set -- "${s##$c1$c2$c3}"'		"1|$c4"
59ead7935bSPeter Avalostestcase 'set -- "${s##$c1$c2$c3$c4}"'		"1|"
60ead7935bSPeter Avalostestcase 'set -- "${s##?}"'			"1|$c2$c3$c4"
61ead7935bSPeter Avalostestcase 'set -- "${s##??}"'			"1|$c3$c4"
62ead7935bSPeter Avalostestcase 'set -- "${s##???}"'			"1|$c4"
63ead7935bSPeter Avalostestcase 'set -- "${s##????}"'			"1|"
64ead7935bSPeter Avalostestcase 'set -- "${s##*$c3}"'			"1|$c4"
65ead7935bSPeter Avalostestcase 'set -- "${s%%$c4}"'			"1|$c1$c2$c3"
66ead7935bSPeter Avalostestcase 'set -- "${s%%$c3$c4}"'		"1|$c1$c2"
67ead7935bSPeter Avalostestcase 'set -- "${s%%$c2$c3$c4}"'		"1|$c1"
68ead7935bSPeter Avalostestcase 'set -- "${s%%$c1$c2$c3$c4}"'		"1|"
69ead7935bSPeter Avalostestcase 'set -- "${s%%?}"'			"1|$c1$c2$c3"
70ead7935bSPeter Avalostestcase 'set -- "${s%%??}"'			"1|$c1$c2"
71ead7935bSPeter Avalostestcase 'set -- "${s%%???}"'			"1|$c1"
72ead7935bSPeter Avalostestcase 'set -- "${s%%????}"'			"1|"
73ead7935bSPeter Avalostestcase 'set -- "${s%%$c2*}"'			"1|$c1"
74ead7935bSPeter Avalos
75ead7935bSPeter Avalostest "x$failures" = x
76