Blame tests/pcre-jitstack

Packit 709fb3
#! /bin/sh
Packit 709fb3
# Grep 2.21 would report "grep: internal PCRE error: -27"
Packit 709fb3
#
Packit 709fb3
# Copyright 2015-2017 Free Software Foundation, Inc.
Packit 709fb3
#
Packit 709fb3
# Copying and distribution of this file, with or without modification,
Packit 709fb3
# are permitted in any medium without royalty provided the copyright
Packit 709fb3
# notice and this notice are preserved.
Packit 709fb3
Packit 709fb3
. "${srcdir=.}/init.sh"; path_prepend_ ../src
Packit 709fb3
require_pcre_
Packit 709fb3
Packit 709fb3
for p in 'base64 -d' 'base64 -D' 'openssl base64 -d' \
Packit 709fb3
      "perl -MMIME::Base64 -0777ne 'print decode_base64(\$_)'" FAIL; do
Packit 709fb3
    test "$p" = FAIL && skip_ "your system lacks a base64 decoder"
Packit 709fb3
    x=$(echo eA==| ( eval "$p" ) 2>/dev/null) && test "X$x" = Xx &&
Packit 709fb3
      {
Packit 709fb3
        eval "b64_decode() { $p; }"
Packit 709fb3
        break
Packit 709fb3
      }
Packit 709fb3
done
Packit 709fb3
Packit 709fb3
foo=$( (echo foo | gzip | gzip -d) 2>/dev/null) && test "X$foo" = Xfoo \
Packit 709fb3
  || skip_ "your system lacks the gzip program"
Packit 709fb3
Packit 709fb3
fail=0
Packit 709fb3
Packit 709fb3
b64_decode >pcrejit.txt.gz <<'EOF' || framework_failure_
Packit 709fb3
H4sIAAAAAAACA+2bUU4DMQxE/7mMz5T7XwKE+IBKVLue58yk0B9EtX6xJxN7t4VaH69a6+tHrW+/
Packit 709fb3
r4e3n75KARWShSOFTtiumE3FPVyo79ATIJ0Ry0No/yXe99UIUqTGKKUzYHFJHJoaCONQDCnDSCDS
Packit 709fb3
IPAvGCVeXNsZ7lpbWFfdaZtgPos5LeK2C1TBKzD09V3HFlCOsbFT/hNbz4HzJaRjnjdam9FXw/o6
Packit 709fb3
VyPozhMmiaRYAMeNSJR1iMjBEFLMtsH7lptartfxkzPQgFVofwRlxKsMYn2KNDnU9fsOQCkRIYVT
Packit 709fb3
G80ZRqBpSQjRYPX7s9gvtqknyNE2f8V09sxHM7YPmMMJgrmVna2AT717n5fUAIDkiBCqFgWUUgKD
Packit 709fb3
8jOc0Rgj5JS6vZnQI14wkaTDAkD266p/iVHs8gjCrMFARVM0iEVgFAa9YRAQT4tkgsmloTJLmyCm
Packit 709fb3
uSHRnTkzIdZMmZ5kYX/iJFtTwu9cFvr3aDWcUx4pUW/cVQwPoQSlwguNd4M0vTpAauKodmLFXv1P
Packit 709fb3
dkcKkYUglER2Q4L4gnmOiNGzSBATwGQgwihs5/QffIhyfg4hJvM2r4Rp6L+1ibCCd4jYZ6jCiBlc
Packit 709fb3
2+y4fl4yTGIwcWXNAUEeXmu8iCMV96DNTnmRNICDk2N5qaXGbsF91OX/0hlcYTjrMfy02p9Xv70D
Packit 709fb3
mv3RZCFOAAA=
Packit 709fb3
EOF
Packit 709fb3
Packit 709fb3
gzip -d pcrejit.txt || framework_failure_
Packit 709fb3
Packit 709fb3
LC_ALL=C grep -P -n '^([/](?!/)|[^/])*~/.*' pcrejit.txt
Packit 709fb3
if test $? != 1; then
Packit 709fb3
    # The above often makes grep attempt to use an inordinate amount
Packit 709fb3
    # of stack space.  If grep fails with $? != 1, try again, but this
Packit 709fb3
    # time with no soft limit:
Packit 709fb3
Packit 709fb3
    # Use ulimit to remove that limit, if possible.
Packit 709fb3
    # If ulimit is not usable, just skip this test.
Packit 709fb3
    (ulimit -s unlimited) || skip_ this shell lacks ulimit support
Packit 709fb3
Packit 709fb3
    # Rerun that same test, but now with no limit on stack size:
Packit 709fb3
    (ulimit -s unlimited;
Packit 709fb3
     returns_ 1 env LC_ALL=C grep -P -n '^([/](?!/)|[^/])*~/.*' pcrejit.txt) \
Packit 709fb3
       || fail=1
Packit 709fb3
fi
Packit 709fb3
Packit 709fb3
Exit $fail