From 0d6a10a9c61e24a8b7b5a948bf07df35b69dfedf Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Sun, 1 Nov 2020 07:39:49 -0800 Subject: [PATCH] dfa-tests: test for today's invalid-merge fix * tests/test-dfa-invalid-merge.sh: New file. * modules/dfa-tests (Files): Add it. (TESTS): Add it. --- ChangeLog | 7 +++++++ modules/dfa-tests | 2 ++ tests/test-dfa-invalid-merge.sh | 31 +++++++++++++++++++++++++++++++ 3 files changed, 40 insertions(+) create mode 100755 tests/test-dfa-invalid-merge.sh diff --git a/ChangeLog b/ChangeLog index 25c386e6c3..4c69371817 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2020-11-01 Jim Meyering + + dfa-tests: test for today's invalid-merge fix + * tests/test-dfa-invalid-merge.sh: New file. + * modules/dfa-tests (Files): Add it. + (TESTS): Add it. + 2020-11-01 Norihiro Tanaka dfa: retain sequences of similar nodes in optimization diff --git a/modules/dfa-tests b/modules/dfa-tests index 2775ccbbf9..878e18d6d8 100644 --- a/modules/dfa-tests +++ b/modules/dfa-tests @@ -2,6 +2,7 @@ Files: tests/test-dfa-match.sh tests/test-dfa-match-aux.c tests/test-dfa-invalid-char-class.sh +tests/test-dfa-invalid-merge.sh Depends-on: stdio @@ -14,6 +15,7 @@ configure.ac: Makefile.am: TESTS += \ test-dfa-invalid-char-class.sh \ + test-dfa-invalid-merge.sh \ test-dfa-match.sh check_PROGRAMS += test-dfa-match-aux diff --git a/tests/test-dfa-invalid-merge.sh b/tests/test-dfa-invalid-merge.sh new file mode 100755 index 0000000000..4b5783b451 --- /dev/null +++ b/tests/test-dfa-invalid-merge.sh @@ -0,0 +1,31 @@ +#!/bin/sh +# The DFA matcher would wrongly convert a regular expression like +# a+a+a to a+a, thus possibly reporting a false match. +# Introduced in v0.1-2111-g4299106ce + +# Copyright 2020 Free Software Foundation, Inc. + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +. "${srcdir=.}/init.sh"; path_prepend_ ../src + +# Add "." to PATH for the use of test-dfa-match-aux. +path_prepend_ . + +fail=0 + +LC_ALL=C returns_ 0 ${CHECKER} test-dfa-match-aux 'x+x+x+' xx > out 2>&1 +compare /dev/null out || fail=1 + +Exit $fail -- 2.39.5