VirtualBox

source: kBuild/trunk/src/grep/tests/pcre-jitstack

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.4 KB
Line 
1#! /bin/sh
2# Grep 2.21 would report "grep: internal PCRE error: -27"
3#
4# Copyright 2015-2021 Free Software Foundation, Inc.
5#
6# Copying and distribution of this file, with or without modification,
7# are permitted in any medium without royalty provided the copyright
8# notice and this notice are preserved.
9
10. "${srcdir=.}/init.sh"; path_prepend_ ../src
11require_pcre_
12
13for p in 'base64 -d' 'base64 -D' 'openssl base64 -d' \
14 "perl -MMIME::Base64 -0777ne 'print decode_base64(\$_)'" FAIL; do
15 test "$p" = FAIL && skip_ "your system lacks a base64 decoder"
16 x=$(echo eA==| ( eval "$p" ) 2>/dev/null) && test "X$x" = Xx &&
17 {
18 eval "b64_decode() { $p; }"
19 break
20 }
21done
22
23foo=$( (echo foo | gzip | gzip -d) 2>/dev/null) && test "X$foo" = Xfoo \
24 || skip_ "your system lacks the gzip program"
25
26fail=0
27
28b64_decode >pcrejit.txt.gz <<'EOF' || framework_failure_
29H4sIAAAAAAACA+2bUU4DMQxE/7mMz5T7XwKE+IBKVLue58yk0B9EtX6xJxN7t4VaH69a6+tHrW+/
30r4e3n75KARWShSOFTtiumE3FPVyo79ATIJ0Ry0No/yXe99UIUqTGKKUzYHFJHJoaCONQDCnDSCDS
31IPAvGCVeXNsZ7lpbWFfdaZtgPos5LeK2C1TBKzD09V3HFlCOsbFT/hNbz4HzJaRjnjdam9FXw/o6
32VyPozhMmiaRYAMeNSJR1iMjBEFLMtsH7lptartfxkzPQgFVofwRlxKsMYn2KNDnU9fsOQCkRIYVT
33G80ZRqBpSQjRYPX7s9gvtqknyNE2f8V09sxHM7YPmMMJgrmVna2AT717n5fUAIDkiBCqFgWUUgKD
348jOc0Rgj5JS6vZnQI14wkaTDAkD266p/iVHs8gjCrMFARVM0iEVgFAa9YRAQT4tkgsmloTJLmyCm
35uSHRnTkzIdZMmZ5kYX/iJFtTwu9cFvr3aDWcUx4pUW/cVQwPoQSlwguNd4M0vTpAauKodmLFXv1P
36dkcKkYUglER2Q4L4gnmOiNGzSBATwGQgwihs5/QffIhyfg4hJvM2r4Rp6L+1ibCCd4jYZ6jCiBlc
372+y4fl4yTGIwcWXNAUEeXmu8iCMV96DNTnmRNICDk2N5qaXGbsF91OX/0hlcYTjrMfy02p9Xv70D
38mv3RZCFOAAA=
39EOF
40
41gzip -d pcrejit.txt || framework_failure_
42
43LC_ALL=C grep -P -n '^([/](?!/)|[^/])*~/.*' pcrejit.txt
44if test $? != 1; then
45 # The above often makes grep attempt to use an inordinate amount
46 # of stack space. If grep fails with $? != 1, try again, but this
47 # time with no soft limit:
48
49 # Use ulimit to remove that limit, if possible.
50 # If ulimit is not usable, just skip this test.
51 (ulimit -s unlimited) || skip_ this shell lacks ulimit support
52
53 # Rerun that same test, but now with no limit on stack size:
54 (ulimit -s unlimited;
55 returns_ 1 env LC_ALL=C grep -P -n '^([/](?!/)|[^/])*~/.*' pcrejit.txt 2> err) \
56 || fail=1
57
58 # If that failed due to stack overflow, don't cry foul.
59 overflow_pat="stack overflow|exceeded PCRE's recursion limit"
60 test $fail = 1 && { grep -Eq "$overflow_pat" err && fail=0 || cat err; }
61fi
62
63Exit $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