|
Packit |
709fb3 |
#!/bin/sh
|
|
Packit |
709fb3 |
# Check that case folding works even with titlecase and similarly odd chars.
|
|
Packit |
709fb3 |
|
|
Packit |
709fb3 |
# Copyright 2014-2017 Free Software Foundation, Inc.
|
|
Packit |
709fb3 |
|
|
Packit |
709fb3 |
# This program is free software: you can redistribute it and/or modify
|
|
Packit |
709fb3 |
# it under the terms of the GNU General Public License as published by
|
|
Packit |
709fb3 |
# the Free Software Foundation, either version 3 of the License, or
|
|
Packit |
709fb3 |
# (at your option) any later version.
|
|
Packit |
709fb3 |
|
|
Packit |
709fb3 |
# This program is distributed in the hope that it will be useful,
|
|
Packit |
709fb3 |
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
Packit |
709fb3 |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
Packit |
709fb3 |
# GNU General Public License for more details.
|
|
Packit |
709fb3 |
|
|
Packit |
709fb3 |
# You should have received a copy of the GNU General Public License
|
|
Packit |
709fb3 |
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
Packit |
709fb3 |
|
|
Packit |
709fb3 |
. "${srcdir=.}/init.sh"; path_prepend_ ../src
|
|
Packit |
709fb3 |
|
|
Packit |
709fb3 |
require_en_utf8_locale_
|
|
Packit |
709fb3 |
require_compiled_in_MB_support
|
|
Packit |
709fb3 |
LC_ALL=en_US.UTF-8
|
|
Packit |
709fb3 |
export LC_ALL
|
|
Packit |
709fb3 |
|
|
Packit |
709fb3 |
fail=0
|
|
Packit |
709fb3 |
|
|
Packit |
709fb3 |
for testcase in \
|
|
Packit |
709fb3 |
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
|
Packit |
709fb3 |
do
|
|
Packit |
709fb3 |
case $testcase in
|
|
Packit |
709fb3 |
0)
|
|
Packit |
709fb3 |
a='\302\265' # U+00B5
|
|
Packit |
709fb3 |
b='\316\234' # U+039C
|
|
Packit |
709fb3 |
c='\316\274' # U+03BC
|
|
Packit |
709fb3 |
;;
|
|
Packit |
709fb3 |
1)
|
|
Packit |
709fb3 |
a='\111' # U+0049
|
|
Packit |
709fb3 |
b='\151' # U+0069
|
|
Packit |
709fb3 |
c='\304\260' # U+0130
|
|
Packit |
709fb3 |
;;
|
|
Packit |
709fb3 |
2)
|
|
Packit |
709fb3 |
a='\111' # U+0049
|
|
Packit |
709fb3 |
b='\151' # U+0069
|
|
Packit |
709fb3 |
c='\304\261' # U+0131
|
|
Packit |
709fb3 |
;;
|
|
Packit |
709fb3 |
3)
|
|
Packit |
709fb3 |
a='\123' # U+0053
|
|
Packit |
709fb3 |
b='\163' # U+0073
|
|
Packit |
709fb3 |
c='\305\277' # U+017F
|
|
Packit |
709fb3 |
;;
|
|
Packit |
709fb3 |
4)
|
|
Packit |
709fb3 |
a='\307\204' # U+01C4
|
|
Packit |
709fb3 |
b='\307\205' # U+01C5
|
|
Packit |
709fb3 |
c='\307\206' # U+01C6
|
|
Packit |
709fb3 |
;;
|
|
Packit |
709fb3 |
5)
|
|
Packit |
709fb3 |
a='\307\207' # U+01C7
|
|
Packit |
709fb3 |
b='\307\210' # U+01C8
|
|
Packit |
709fb3 |
c='\307\211' # U+01C9
|
|
Packit |
709fb3 |
;;
|
|
Packit |
709fb3 |
6)
|
|
Packit |
709fb3 |
a='\307\212' # U+01CA
|
|
Packit |
709fb3 |
b='\307\213' # U+01CB
|
|
Packit |
709fb3 |
c='\307\214' # U+01CC
|
|
Packit |
709fb3 |
;;
|
|
Packit |
709fb3 |
7)
|
|
Packit |
709fb3 |
a='\307\261' # U+01F1
|
|
Packit |
709fb3 |
b='\307\262' # U+01F2
|
|
Packit |
709fb3 |
c='\307\263' # U+01F3
|
|
Packit |
709fb3 |
;;
|
|
Packit |
709fb3 |
8)
|
|
Packit |
709fb3 |
a='\315\205' # U+0345
|
|
Packit |
709fb3 |
b='\316\231' # U+0399
|
|
Packit |
709fb3 |
c='\316\271' # U+03B9
|
|
Packit |
709fb3 |
;;
|
|
Packit |
709fb3 |
9)
|
|
Packit |
709fb3 |
a='\316\243' # U+03A3
|
|
Packit |
709fb3 |
b='\317\202' # U+03C2
|
|
Packit |
709fb3 |
c='\317\203' # U+03C3
|
|
Packit |
709fb3 |
;;
|
|
Packit |
709fb3 |
10)
|
|
Packit |
709fb3 |
a='\316\222' # U+0392
|
|
Packit |
709fb3 |
b='\316\262' # U+03B2
|
|
Packit |
709fb3 |
c='\317\220' # U+03D0
|
|
Packit |
709fb3 |
;;
|
|
Packit |
709fb3 |
11)
|
|
Packit |
709fb3 |
a='\316\230' # U+0398
|
|
Packit |
709fb3 |
b='\316\270' # U+03B8
|
|
Packit |
709fb3 |
c='\317\221' # U+03D1
|
|
Packit |
709fb3 |
;;
|
|
Packit |
709fb3 |
12)
|
|
Packit |
709fb3 |
a='\316\246' # U+03A6
|
|
Packit |
709fb3 |
b='\317\206' # U+03C6
|
|
Packit |
709fb3 |
c='\317\225' # U+03D5
|
|
Packit |
709fb3 |
;;
|
|
Packit |
709fb3 |
13)
|
|
Packit |
709fb3 |
a='\316\240' # U+03A0
|
|
Packit |
709fb3 |
b='\317\200' # U+03C0
|
|
Packit |
709fb3 |
c='\317\226' # U+03D6
|
|
Packit |
709fb3 |
;;
|
|
Packit |
709fb3 |
14)
|
|
Packit |
709fb3 |
a='\316\232' # U+039A
|
|
Packit |
709fb3 |
b='\316\272' # U+03BA
|
|
Packit |
709fb3 |
c='\317\260' # U+03F0
|
|
Packit |
709fb3 |
;;
|
|
Packit |
709fb3 |
15)
|
|
Packit |
709fb3 |
a='\316\241' # U+03A1
|
|
Packit |
709fb3 |
b='\317\201' # U+03C1
|
|
Packit |
709fb3 |
c='\317\261' # U+03F1
|
|
Packit |
709fb3 |
;;
|
|
Packit |
709fb3 |
16)
|
|
Packit |
709fb3 |
a='\316\230' # U+0398
|
|
Packit |
709fb3 |
b='\316\270' # U+03B8
|
|
Packit |
709fb3 |
c='\317\264' # U+03F4
|
|
Packit |
709fb3 |
;;
|
|
Packit |
709fb3 |
17)
|
|
Packit |
709fb3 |
a='\316\225' # U+0395
|
|
Packit |
709fb3 |
b='\316\265' # U+03B5
|
|
Packit |
709fb3 |
c='\317\265' # U+03F5
|
|
Packit |
709fb3 |
;;
|
|
Packit |
709fb3 |
18)
|
|
Packit |
709fb3 |
a='\341\271\240' # U+1E60
|
|
Packit |
709fb3 |
b='\341\271\241' # U+1E61
|
|
Packit |
709fb3 |
c='\341\272\233' # U+1E9B
|
|
Packit |
709fb3 |
;;
|
|
Packit |
709fb3 |
19)
|
|
Packit |
709fb3 |
a='\303\237' # U+00DF
|
|
Packit |
709fb3 |
b='\303\237' # U+00DF
|
|
Packit |
709fb3 |
c='\341\272\236' # U+1E9E
|
|
Packit |
709fb3 |
;;
|
|
Packit |
709fb3 |
20)
|
|
Packit |
709fb3 |
a='\316\231' # U+0399
|
|
Packit |
709fb3 |
b='\316\271' # U+03B9
|
|
Packit |
709fb3 |
c='\341\276\276' # U+1FBE
|
|
Packit |
709fb3 |
;;
|
|
Packit |
709fb3 |
21)
|
|
Packit |
709fb3 |
a='\316\251' # U+03A9
|
|
Packit |
709fb3 |
b='\317\211' # U+03C9
|
|
Packit |
709fb3 |
c='\342\204\246' # U+2126
|
|
Packit |
709fb3 |
;;
|
|
Packit |
709fb3 |
22)
|
|
Packit |
709fb3 |
a='\113' # U+004B
|
|
Packit |
709fb3 |
b='\153' # U+006B
|
|
Packit |
709fb3 |
c='\342\204\252' # U+212A
|
|
Packit |
709fb3 |
;;
|
|
Packit |
709fb3 |
23)
|
|
Packit |
709fb3 |
a='\303\205' # U+00C5
|
|
Packit |
709fb3 |
b='\303\245' # U+00E5
|
|
Packit |
709fb3 |
c='\342\204\253' # U+212B
|
|
Packit |
709fb3 |
;;
|
|
Packit |
709fb3 |
24)
|
|
Packit |
709fb3 |
a='\316\243' # U+03A3
|
|
Packit |
709fb3 |
b='\317\203' # U+03C3
|
|
Packit |
709fb3 |
c='\317\262' # U+03F2
|
|
Packit |
709fb3 |
;;
|
|
Packit |
709fb3 |
esac
|
|
Packit |
709fb3 |
|
|
Packit |
709fb3 |
printf "$a\\n$b\\n$c\\n" >in || framework_failure_
|
|
Packit |
709fb3 |
for pattern in "$a" "$b" "$c"; do
|
|
Packit |
709fb3 |
pat=$(printf "$pattern\\n") || framework_failure_
|
|
Packit |
709fb3 |
grep -i "\\(\\)\\1$pat" in >out-regex || fail=1
|
|
Packit |
709fb3 |
grep -i "$pat" in >out-dfa || fail=1
|
|
Packit |
709fb3 |
compare_ out-regex out-dfa || fail=1
|
|
Packit |
709fb3 |
grep -iF "$pat" in >out-fixed || fail=1
|
|
Packit |
709fb3 |
compare_ out-regex out-fixed || fail=1
|
|
Packit |
709fb3 |
done
|
|
Packit |
709fb3 |
done
|
|
Packit |
709fb3 |
|
|
Packit |
709fb3 |
# Try a unibyte test with ISO 8859-7, if available.
|
|
Packit |
709fb3 |
if test "$(get-mb-cur-max el_GR.iso88597)" -eq 1; then
|
|
Packit |
709fb3 |
LC_ALL=el_GR.iso88597
|
|
Packit |
709fb3 |
export LC_ALL
|
|
Packit |
709fb3 |
|
|
Packit |
709fb3 |
a='\323' # SIGMA
|
|
Packit |
709fb3 |
b='\362' # stigma
|
|
Packit |
709fb3 |
c='\363' # sigma
|
|
Packit |
709fb3 |
|
|
Packit |
709fb3 |
printf "$a\\n$b\\n$c\\n" >in || framework_failure_
|
|
Packit |
709fb3 |
for pattern in "$a" "$b" "$c"; do
|
|
Packit |
709fb3 |
pat=$(printf "$pattern\\n") || framework_failure_
|
|
Packit |
709fb3 |
grep -i "\\(\\)\\1$pat" in >out-regex || fail=1
|
|
Packit |
709fb3 |
grep -i "$pat" in >out-dfa || fail=1
|
|
Packit |
709fb3 |
compare_ out-regex out-dfa || fail=1
|
|
Packit |
709fb3 |
grep -iF "$pat" in >out-fixed || fail=1
|
|
Packit |
709fb3 |
compare_ out-regex out-fixed || fail=1
|
|
Packit |
709fb3 |
done
|
|
Packit |
709fb3 |
fi
|
|
Packit |
709fb3 |
|
|
Packit |
709fb3 |
Exit $fail
|