xref: /freebsd/lib/libc/tests/regex/multibyte.sh (revision 547bc083d614f3639f5632d9e39d79e828519318)
163cbe8d1SYuri Pankov# $FreeBSD$
263cbe8d1SYuri Pankov
3*547bc083SYuri Pankovatf_test_case bmpat
4*547bc083SYuri Pankovbmpat_head()
563cbe8d1SYuri Pankov{
663cbe8d1SYuri Pankov	atf_set "descr" "Check matching multibyte characters (PR153502)"
763cbe8d1SYuri Pankov}
8*547bc083SYuri Pankovbmpat_body()
963cbe8d1SYuri Pankov{
1063cbe8d1SYuri Pankov	export LC_CTYPE="C.UTF-8"
1163cbe8d1SYuri Pankov
1263cbe8d1SYuri Pankov	printf 'é' | atf_check -o "inline:é" \
1363cbe8d1SYuri Pankov	    sed -ne '/^.$/p'
1463cbe8d1SYuri Pankov	printf 'éé' | atf_check -o "inline:éé" \
1563cbe8d1SYuri Pankov	    sed -ne '/^..$/p'
1663cbe8d1SYuri Pankov	printf 'aéa' | atf_check -o "inline:aéa" \
1763cbe8d1SYuri Pankov	    sed -ne '/a.a/p'
1863cbe8d1SYuri Pankov	printf 'aéa'| atf_check -o "inline:aéa" \
1963cbe8d1SYuri Pankov	    sed -ne '/a.*a/p'
2063cbe8d1SYuri Pankov	printf 'aaéaa' | atf_check -o "inline:aaéaa" \
2163cbe8d1SYuri Pankov	    sed -ne '/aa.aa/p'
2263cbe8d1SYuri Pankov	printf 'aéaéa' | atf_check -o "inline:aéaéa" \
2363cbe8d1SYuri Pankov	    sed -ne '/a.a.a/p'
2463cbe8d1SYuri Pankov	printf 'éa' | atf_check -o "inline:éa" \
2563cbe8d1SYuri Pankov	    sed -ne '/.a/p'
2663cbe8d1SYuri Pankov	printf 'aéaa' | atf_check -o "inline:aéaa" \
2763cbe8d1SYuri Pankov	    sed -ne '/a.aa/p'
2863cbe8d1SYuri Pankov	printf 'éaé' | atf_check -o "inline:éaé" \
2963cbe8d1SYuri Pankov	    sed -ne '/.a./p'
3063cbe8d1SYuri Pankov}
3163cbe8d1SYuri Pankov
32*547bc083SYuri Pankovatf_test_case icase
33*547bc083SYuri Pankovicase_head()
34*547bc083SYuri Pankov{
35*547bc083SYuri Pankov	atf_set "descr" "Check case-insensitive matching for characters 128-255"
36*547bc083SYuri Pankov}
37*547bc083SYuri Pankovicase_body()
38*547bc083SYuri Pankov{
39*547bc083SYuri Pankov	export LC_CTYPE="C.UTF-8"
40*547bc083SYuri Pankov
41*547bc083SYuri Pankov	a=$(printf '\302\265\n')	# U+00B5
42*547bc083SYuri Pankov	b=$(printf '\316\234\n')	# U+039C
43*547bc083SYuri Pankov	c=$(printf '\316\274\n')	# U+03BC
44*547bc083SYuri Pankov
45*547bc083SYuri Pankov	echo $b | atf_check -o "inline:$b\n" sed -ne "/$a/Ip"
46*547bc083SYuri Pankov	echo $c | atf_check -o "inline:$c\n" sed -ne "/$a/Ip"
47*547bc083SYuri Pankov}
48*547bc083SYuri Pankov
4963cbe8d1SYuri Pankovatf_init_test_cases()
5063cbe8d1SYuri Pankov{
51*547bc083SYuri Pankov	atf_add_test_case bmpat
52*547bc083SYuri Pankov	atf_add_test_case icase
5363cbe8d1SYuri Pankov}
54