mirror of
https://https.git.savannah.gnu.org/git/grep.git
synced 2026-01-26 07:37:52 +00:00
35 lines
1.0 KiB
Bash
Executable File
35 lines
1.0 KiB
Bash
Executable File
#! /bin/sh
|
|
# Test for a bug in glibc's regex code as of 2015-09-19.
|
|
#
|
|
# Copyright 2015-2026 Free Software Foundation, Inc.
|
|
#
|
|
# Copying and distribution of this file, with or without modification,
|
|
# are permitted in any medium without royalty provided the copyright
|
|
# notice and this notice are preserved.
|
|
|
|
. "${srcdir=.}/init.sh"; path_prepend_ ../src
|
|
|
|
echo aa > in || framework_failure_
|
|
|
|
fail=0
|
|
|
|
grep -E 'b|(.)b|\1|b' in >out
|
|
status=$?
|
|
# POSIX isn't clear whether this regular expression should be invalid,
|
|
# (because the \1 is out of range for REs that could precede it)
|
|
# or valid but \1 should not match. Allow either interpretation.
|
|
test $status -eq 2 || test $status -eq 1 || fail=1
|
|
|
|
grep -E '0|()0|\1|0' in >out
|
|
status=$?
|
|
test $status -eq 2 || test $status -eq 1 || fail=1
|
|
|
|
# This test is a reduced version of the one in Bug#27838.
|
|
# It triggers this glibc assertion failure:
|
|
# grep: regexec.c:1342: pop_fail_stack: Assertion `num >= 0' failed.
|
|
LC_ALL=C grep -E '(()x)|\2' in > out
|
|
status=$?
|
|
test $status -eq 2 || test $status -eq 1 || fail=1
|
|
|
|
Exit $fail
|