]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - lib/libc/tests/regex/multibyte.sh
zfs: merge openzfs/zfs@043c6ee3b
[FreeBSD/FreeBSD.git] / lib / libc / tests / regex / multibyte.sh
1
2 atf_test_case bmpat
3 bmpat_head()
4 {
5         atf_set "descr" "Check matching multibyte characters (PR153502)"
6 }
7 bmpat_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
31 atf_test_case icase
32 icase_head()
33 {
34         atf_set "descr" "Check case-insensitive matching for characters 128-255"
35 }
36 icase_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
48 atf_init_test_cases()
49 {
50         atf_add_test_case bmpat
51         atf_add_test_case icase
52 }