VirtualBox

source: kBuild/trunk/src/grep/tests/surrogate-pair

Last change on this file 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: 1.9 KB
Line 
1#!/bin/sh
2# Check the handling of characters outside the Unicode BMP.
3
4# Copyright (C) 2013-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
23
24fail=0
25
26s_pair=$(printf '\360\220\220\205')
27printf '%s\n' "$s_pair" > in || framework_failure_
28
29LC_ALL=en_US.UTF-8
30export LC_ALL
31
32# On Cygwin, before grep-2.15, this would segfault.
33# Require not just non-zero exit status, but exactly 1.
34returns_ 1 grep -i anything-else in > out 2>&1 || fail=1
35# Expect no output.
36compare /dev/null out || fail=1
37
38# This must always match, even on a 16-bit-wchar_t system.
39grep . in > out 2> err || fail=1
40
41# On platforms where wchar_t is only 16 bits, wchar_t cannot represent
42# the character encoded in 'in'.
43
44# On such old systems the above prints nothing on stdout and a diagnostic
45# on stderr. In that case, return early; otherwise, the following tests
46# would all fail.
47io_pair=$(cat out):$(cat err)
48case $io_pair in
49 :'grep: in: binary file matches') Exit $fail;;
50 $s_pair:) ;;
51 *) fail_ "unexpected output: $io_pair"; fail=1;;
52esac
53
54# Also test whether a surrogate-pair in the search string works.
55for opt in '' -i -E -F -iE -iF; do
56 grep --file=in $opt in > out 2>&1 || fail=1
57 compare out in || fail=1
58done
59
60Exit $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