VirtualBox

source: kBuild/trunk/src/grep/tests/case-fold-titlecase@ 3532

Last change on this file since 3532 was 3529, checked in by bird, 3 years ago

Imported grep 3.7 from grep-3.7.tar.gz (sha256: c22b0cf2d4f6bbe599c902387e8058990e1eee99aef333a203829e5fd3dbb342), applying minimal auto-props.

  • Property svn:executable set to *
File size: 4.7 KB
Line 
1#!/bin/sh
2# Check that case folding works even with titlecase and similarly odd chars.
3
4# Copyright 2014-2021 Free Software Foundation, Inc.
5
6# This program is free software: you can redistribute it and/or modify
7# it under the terms of the GNU General Public License as published by
8# the Free Software Foundation, either version 3 of the License, or
9# (at your option) any later version.
10
11# This program is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY; without even the implied warranty of
13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14# GNU General Public License for more details.
15
16# You should have received a copy of the GNU General Public License
17# along with this program. If not, see <https://www.gnu.org/licenses/>.
18
19. "${srcdir=.}/init.sh"; path_prepend_ ../src
20
21require_en_utf8_locale_
22require_compiled_in_MB_support
23LC_ALL=en_US.UTF-8
24export LC_ALL
25
26fail=0
27
28for testcase in \
29 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
30do
31 case $testcase in
32 0)
33 a='\302\265' # U+00B5
34 b='\316\234' # U+039C
35 c='\316\274' # U+03BC
36 ;;
37 1)
38 a='\111' # U+0049
39 b='\151' # U+0069
40 c='\304\260' # U+0130
41 ;;
42 2)
43 a='\111' # U+0049
44 b='\151' # U+0069
45 c='\304\261' # U+0131
46 ;;
47 3)
48 a='\123' # U+0053
49 b='\163' # U+0073
50 c='\305\277' # U+017F
51 ;;
52 4)
53 a='\307\204' # U+01C4
54 b='\307\205' # U+01C5
55 c='\307\206' # U+01C6
56 ;;
57 5)
58 a='\307\207' # U+01C7
59 b='\307\210' # U+01C8
60 c='\307\211' # U+01C9
61 ;;
62 6)
63 a='\307\212' # U+01CA
64 b='\307\213' # U+01CB
65 c='\307\214' # U+01CC
66 ;;
67 7)
68 a='\307\261' # U+01F1
69 b='\307\262' # U+01F2
70 c='\307\263' # U+01F3
71 ;;
72 8)
73 a='\315\205' # U+0345
74 b='\316\231' # U+0399
75 c='\316\271' # U+03B9
76 ;;
77 9)
78 a='\316\243' # U+03A3
79 b='\317\202' # U+03C2
80 c='\317\203' # U+03C3
81 ;;
82 10)
83 a='\316\222' # U+0392
84 b='\316\262' # U+03B2
85 c='\317\220' # U+03D0
86 ;;
87 11)
88 a='\316\230' # U+0398
89 b='\316\270' # U+03B8
90 c='\317\221' # U+03D1
91 ;;
92 12)
93 a='\316\246' # U+03A6
94 b='\317\206' # U+03C6
95 c='\317\225' # U+03D5
96 ;;
97 13)
98 a='\316\240' # U+03A0
99 b='\317\200' # U+03C0
100 c='\317\226' # U+03D6
101 ;;
102 14)
103 a='\316\232' # U+039A
104 b='\316\272' # U+03BA
105 c='\317\260' # U+03F0
106 ;;
107 15)
108 a='\316\241' # U+03A1
109 b='\317\201' # U+03C1
110 c='\317\261' # U+03F1
111 ;;
112 16)
113 a='\316\230' # U+0398
114 b='\316\270' # U+03B8
115 c='\317\264' # U+03F4
116 ;;
117 17)
118 a='\316\225' # U+0395
119 b='\316\265' # U+03B5
120 c='\317\265' # U+03F5
121 ;;
122 18)
123 a='\341\271\240' # U+1E60
124 b='\341\271\241' # U+1E61
125 c='\341\272\233' # U+1E9B
126 ;;
127 19)
128 a='\303\237' # U+00DF
129 b='\303\237' # U+00DF
130 c='\341\272\236' # U+1E9E
131 ;;
132 20)
133 a='\316\231' # U+0399
134 b='\316\271' # U+03B9
135 c='\341\276\276' # U+1FBE
136 ;;
137 21)
138 a='\316\251' # U+03A9
139 b='\317\211' # U+03C9
140 c='\342\204\246' # U+2126
141 ;;
142 22)
143 a='\113' # U+004B
144 b='\153' # U+006B
145 c='\342\204\252' # U+212A
146 ;;
147 23)
148 a='\303\205' # U+00C5
149 b='\303\245' # U+00E5
150 c='\342\204\253' # U+212B
151 ;;
152 24)
153 a='\316\243' # U+03A3
154 b='\317\203' # U+03C3
155 c='\317\262' # U+03F2
156 ;;
157 esac
158
159 printf "$a\\n$b\\n$c\\n" >in || framework_failure_
160 for pattern in "$a" "$b" "$c"; do
161 pat=$(printf "$pattern\\n") || framework_failure_
162 grep -i "\\(\\)\\1$pat" in >out-regex || fail=1
163 grep -i "$pat" in >out-dfa || fail=1
164 compare_ out-regex out-dfa || fail=1
165 grep -iF "$pat" in >out-fixed || fail=1
166 compare_ out-regex out-fixed || fail=1
167 done
168done
169
170# Try a unibyte test with ISO 8859-7, if available.
171if test "$(get-mb-cur-max el_GR.iso88597)" -eq 1; then
172 LC_ALL=el_GR.iso88597
173 export LC_ALL
174
175 a='\323' # SIGMA
176 b='\362' # stigma
177 c='\363' # sigma
178
179 printf "$a\\n$b\\n$c\\n" >in || framework_failure_
180 for pattern in "$a" "$b" "$c"; do
181 pat=$(printf "$pattern\\n") || framework_failure_
182 grep -i "\\(\\)\\1$pat" in >out-regex || fail=1
183 grep -i "$pat" in >out-dfa || fail=1
184 compare_ out-regex out-dfa || fail=1
185 grep -iF "$pat" in >out-fixed || fail=1
186 compare_ out-regex out-fixed || fail=1
187 done
188fi
189
190Exit $fail
Note: See TracBrowser for help on using the repository browser.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette