VirtualBox

source: kBuild/trunk/src/grep/tests/null-byte

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: 2.1 KB
Line 
1#!/bin/sh
2# Test NUL bytes in patterns and data.
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
21# Add "." to PATH for the use of get-mb-cur-max.
22path_prepend_ .
23
24locales=C
25for locale in en_US.iso885915 en_US.UTF-8; do
26 get-mb-cur-max en_US.UTF-8 >/dev/null 2>&1 && locales="$locales $locale"
27done
28
29fail=0
30
31for left in '' a '#' '\0'; do
32 for right in '' b '#' '\0'; do
33 data="$left\\0$right"
34 printf "$data\\n" >in || framework_failure_
35 for hat in '' '^'; do
36 for dollar in '' '$'; do
37 for force_regex in '' '\\(\\)\\1'; do
38 pat="$hat$force_regex$data$dollar"
39 printf "$pat\\n" >pat || framework_failure_
40 for locale in $locales; do
41 LC_ALL=$locale grep -f pat in
42 status=$?
43 test $status -eq 0 || test $status -eq 1 ||
44 fail_ "'$pat' caused an error"
45 LC_ALL=$locale grep -a -f pat in | cmp -s - in ||
46 fail_ "-a '$pat' does not match '$data'"
47 done
48 done
49 done
50 done
51 done
52done
53
54(echo xxx && yes yyy | sed 100000q && printf 'z\n\0') >in || framework_failure_
55echo xxx >exp || framework_failure_
56grep xxx in >out || fail=1
57compare exp out || fail=1
58
59printf 'xxx\n' > exp || framework_failure_
60grep -E 'xxx|z' in >out || fail=1
61compare exp out || fail=1
62
63printf '%s\0' 'abcadc' >in || framework_failure_
64printf '%s\0' 'abc' 'adc' >exp || framework_failure_
65grep -oz 'a[^c]*c' in >out || fail=1
66compare exp out || fail=1
67
68Exit $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