xref: /freebsd/lib/libc/tests/regex/multibyte.sh (revision 315ee00f)
1
2atf_test_case bmpat
3bmpat_head()
4{
5	atf_set "descr" "Check matching multibyte characters (PR153502)"
6}
7bmpat_body()
8{
9	export LC_CTYPE="C.UTF-8"
10
11	printf 'é' | atf_check -o "inline:é" \
12	    sed -ne '/^.$/p'
13	printf 'éé' | atf_check -o "inline:éé" \
14	    sed -ne '/^..$/p'
15	printf 'aéa' | atf_check -o "inline:aéa" \
16	    sed -ne '/a.a/p'
17	printf 'aéa'| atf_check -o "inline:aéa" \
18	    sed -ne '/a.*a/p'
19	printf 'aaéaa' | atf_check -o "inline:aaéaa" \
20	    sed -ne '/aa.aa/p'
21	printf 'aéaéa' | atf_check -o "inline:aéaéa" \
22	    sed -ne '/a.a.a/p'
23	printf 'éa' | atf_check -o "inline:éa" \
24	    sed -ne '/.a/p'
25	printf 'aéaa' | atf_check -o "inline:aéaa" \
26	    sed -ne '/a.aa/p'
27	printf 'éaé' | atf_check -o "inline:éaé" \
28	    sed -ne '/.a./p'
29}
30
31atf_test_case icase
32icase_head()
33{
34	atf_set "descr" "Check case-insensitive matching for characters 128-255"
35}
36icase_body()
37{
38	export LC_CTYPE="C.UTF-8"
39
40	a=$(printf '\302\265\n')	# U+00B5
41	b=$(printf '\316\234\n')	# U+039C
42	c=$(printf '\316\274\n')	# U+03BC
43
44	echo $b | atf_check -o "inline:$b\n" sed -ne "/$a/Ip"
45	echo $c | atf_check -o "inline:$c\n" sed -ne "/$a/Ip"
46}
47
48atf_init_test_cases()
49{
50	atf_add_test_case bmpat
51	atf_add_test_case icase
52}
53