xref: /freebsd/bin/sh/tests/expansion/trim8.0 (revision d0b2dbfa0ecf2bbc9709efc5e20baf8e4b44bbbf)
1*13de33a5SJulio Merino
2*13de33a5SJulio Merinounset LC_ALL
3*13de33a5SJulio MerinoLC_CTYPE=en_US.UTF-8
4*13de33a5SJulio Merinoexport LC_CTYPE
5*13de33a5SJulio Merino
6*13de33a5SJulio Merinoc1=e
7*13de33a5SJulio Merino# a umlaut
8*13de33a5SJulio Merinoc2=$(printf '\303\244')
9*13de33a5SJulio Merino# euro sign
10*13de33a5SJulio Merinoc3=$(printf '\342\202\254')
11*13de33a5SJulio Merino# some sort of 't' outside BMP
12*13de33a5SJulio Merinoc4=$(printf '\360\235\225\245')
13*13de33a5SJulio Merino
14*13de33a5SJulio Merinos=$c1$c2$c3$c4
15*13de33a5SJulio Merino
16*13de33a5SJulio Merinotestcase() {
17*13de33a5SJulio Merino	code="$1"
18*13de33a5SJulio Merino	expected="$2"
19*13de33a5SJulio Merino	oIFS="$IFS"
20*13de33a5SJulio Merino	eval "$code"
21*13de33a5SJulio Merino	IFS='|'
22*13de33a5SJulio Merino	result="$#|$*"
23*13de33a5SJulio Merino	IFS="$oIFS"
24*13de33a5SJulio Merino	if [ "x$result" = "x$expected" ]; then
25*13de33a5SJulio Merino		ok=x$ok
26*13de33a5SJulio Merino	else
27*13de33a5SJulio Merino		failures=x$failures
28*13de33a5SJulio Merino		echo "For $code, expected $expected actual $result"
29*13de33a5SJulio Merino	fi
30*13de33a5SJulio Merino}
31*13de33a5SJulio Merino
32*13de33a5SJulio Merinotestcase 'set -- "$s"'				"1|$s"
33*13de33a5SJulio Merinotestcase 'set -- "${s#$c2}"'			"1|$s"
34*13de33a5SJulio Merinotestcase 'set -- "${s#*}"'			"1|$s"
35*13de33a5SJulio Merinotestcase 'set -- "${s#$c1}"'			"1|$c2$c3$c4"
36*13de33a5SJulio Merinotestcase 'set -- "${s#$c1$c2}"'			"1|$c3$c4"
37*13de33a5SJulio Merinotestcase 'set -- "${s#$c1$c2$c3}"'		"1|$c4"
38*13de33a5SJulio Merinotestcase 'set -- "${s#$c1$c2$c3$c4}"'		"1|"
39*13de33a5SJulio Merinotestcase 'set -- "${s#?}"'			"1|$c2$c3$c4"
40*13de33a5SJulio Merinotestcase 'set -- "${s#??}"'			"1|$c3$c4"
41*13de33a5SJulio Merinotestcase 'set -- "${s#???}"'			"1|$c4"
42*13de33a5SJulio Merinotestcase 'set -- "${s#????}"'			"1|"
43*13de33a5SJulio Merinotestcase 'set -- "${s#*$c3}"'			"1|$c4"
44*13de33a5SJulio Merinotestcase 'set -- "${s%$c4}"'			"1|$c1$c2$c3"
45*13de33a5SJulio Merinotestcase 'set -- "${s%$c3$c4}"'			"1|$c1$c2"
46*13de33a5SJulio Merinotestcase 'set -- "${s%$c2$c3$c4}"'		"1|$c1"
47*13de33a5SJulio Merinotestcase 'set -- "${s%$c1$c2$c3$c4}"'		"1|"
48*13de33a5SJulio Merinotestcase 'set -- "${s%?}"'			"1|$c1$c2$c3"
49*13de33a5SJulio Merinotestcase 'set -- "${s%??}"'			"1|$c1$c2"
50*13de33a5SJulio Merinotestcase 'set -- "${s%???}"'			"1|$c1"
51*13de33a5SJulio Merinotestcase 'set -- "${s%????}"'			"1|"
52*13de33a5SJulio Merinotestcase 'set -- "${s%$c2*}"'			"1|$c1"
53*13de33a5SJulio Merinotestcase 'set -- "${s##$c2}"'			"1|$s"
54*13de33a5SJulio Merinotestcase 'set -- "${s##*}"'			"1|"
55*13de33a5SJulio Merinotestcase 'set -- "${s##$c1}"'			"1|$c2$c3$c4"
56*13de33a5SJulio Merinotestcase 'set -- "${s##$c1$c2}"'		"1|$c3$c4"
57*13de33a5SJulio Merinotestcase 'set -- "${s##$c1$c2$c3}"'		"1|$c4"
58*13de33a5SJulio Merinotestcase 'set -- "${s##$c1$c2$c3$c4}"'		"1|"
59*13de33a5SJulio Merinotestcase 'set -- "${s##?}"'			"1|$c2$c3$c4"
60*13de33a5SJulio Merinotestcase 'set -- "${s##??}"'			"1|$c3$c4"
61*13de33a5SJulio Merinotestcase 'set -- "${s##???}"'			"1|$c4"
62*13de33a5SJulio Merinotestcase 'set -- "${s##????}"'			"1|"
63*13de33a5SJulio Merinotestcase 'set -- "${s##*$c3}"'			"1|$c4"
64*13de33a5SJulio Merinotestcase 'set -- "${s%%$c4}"'			"1|$c1$c2$c3"
65*13de33a5SJulio Merinotestcase 'set -- "${s%%$c3$c4}"'		"1|$c1$c2"
66*13de33a5SJulio Merinotestcase 'set -- "${s%%$c2$c3$c4}"'		"1|$c1"
67*13de33a5SJulio Merinotestcase 'set -- "${s%%$c1$c2$c3$c4}"'		"1|"
68*13de33a5SJulio Merinotestcase 'set -- "${s%%?}"'			"1|$c1$c2$c3"
69*13de33a5SJulio Merinotestcase 'set -- "${s%%??}"'			"1|$c1$c2"
70*13de33a5SJulio Merinotestcase 'set -- "${s%%???}"'			"1|$c1"
71*13de33a5SJulio Merinotestcase 'set -- "${s%%????}"'			"1|"
72*13de33a5SJulio Merinotestcase 'set -- "${s%%$c2*}"'			"1|$c1"
73*13de33a5SJulio Merino
74*13de33a5SJulio Merinotest "x$failures" = x
75