diff options
Diffstat (limited to 'src/grep/tests/Makefile.am')
-rw-r--r-- | src/grep/tests/Makefile.am | 279 |
1 files changed, 279 insertions, 0 deletions
diff --git a/src/grep/tests/Makefile.am b/src/grep/tests/Makefile.am new file mode 100644 index 0000000..c84cdc0 --- /dev/null +++ b/src/grep/tests/Makefile.am @@ -0,0 +1,279 @@ +## Process this file with automake to create Makefile.in +# Copyright 1997-1998, 2005-2021 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, 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 <https://www.gnu.org/licenses/>. + +TEST_EXTENSIONS = .sh .pl + +if HAVE_PERL +TESTSUITE_PERL = $(PERL) +else +TESTSUITE_PERL = $(SHELL) $(srcdir)/no-perl +endif + +# Options passed to the perl invocations running the perl test scripts. +TESTSUITE_PERL_OPTIONS = -w -I$(srcdir) -MCoreutils -MCuSkip +# '$f' is set by the Automake-generated test harness to the path of the +# current test script stripped of VPATH components, and is used by the +# CuTmpdir module to determine the name of the temporary files to be +# used. Note that $f is a shell variable, not a make macro, so the use +# of '$$f' below is correct, and not a typo. +TESTSUITE_PERL_OPTIONS += -M"CuTmpdir qw($$f)" + +SH_LOG_COMPILER = $(SHELL) +PL_LOG_COMPILER = $(TESTSUITE_PERL) $(TESTSUITE_PERL_OPTIONS) + +check_PROGRAMS = get-mb-cur-max +AM_CPPFLAGS = -I$(top_builddir)/lib -I$(top_srcdir)/lib \ + -I$(top_srcdir)/src +AM_CFLAGS = $(WARN_CFLAGS) $(WERROR_CFLAGS) + +# Tell the linker to omit references to unused shared libraries. +AM_LDFLAGS = $(IGNORE_UNUSED_LIBRARIES_CFLAGS) +LDADD = ../lib/libgreputils.a $(LIBINTL) ../lib/libgreputils.a + +# The triple-backref test is expected to fail with both the system +# matcher (i.e., with glibc) and with the included matcher. +# Both matchers need to be fixed. +# FIXME-2015: Remove this once the glibc and gnulib bugs are fixed. +XFAIL_TESTS = triple-backref + +# Equivalence classes are only supported when using the system +# matcher (which means only with glibc). +# The included matcher needs to be fixed. +# FIXME-2015: Remove this once the gnulib bug is fixed. +if USE_INCLUDED_REGEX +XFAIL_TESTS += equiv-classes +else +# The backref-alt test fails for glibc 2.27 and earlier. +# If you're using older glibc you can upgrade to glibc 2.28 or later, +# configure --with-included-regex, or ignore the test failure. +endif + +TESTS = \ + backref \ + backref-alt \ + backref-multibyte-slow \ + backref-word \ + backslash-dot \ + backslash-s-and-repetition-operators \ + backslash-s-vs-invalid-multibyte \ + big-hole \ + big-match \ + binary-file-matches \ + bogus-wctob \ + bre \ + c-locale \ + case-fold-backref \ + case-fold-backslash-w \ + case-fold-char-class \ + case-fold-char-range \ + case-fold-char-type \ + case-fold-titlecase \ + char-class-multibyte \ + char-class-multibyte2 \ + context-0 \ + count-newline \ + dfa-coverage \ + dfa-heap-overrun \ + dfa-infloop \ + dfa-invalid-utf8 \ + dfaexec-multibyte \ + empty \ + empty-line \ + empty-line-mb \ + encoding-error \ + epipe \ + equiv-classes \ + ere \ + euc-mb \ + false-match-mb-non-utf8 \ + fedora \ + fgrep-infloop \ + fgrep-longest \ + file \ + filename-lineno.pl \ + fmbtest \ + foad1 \ + grep-dev-null \ + grep-dev-null-out \ + grep-dir \ + hash-collision-perf \ + help-version \ + high-bit-range \ + in-eq-out-infloop \ + include-exclude \ + inconsistent-range \ + initial-tab \ + invalid-multibyte-infloop \ + khadafy \ + kwset-abuse \ + long-line-vs-2GiB-read \ + long-pattern-perf \ + many-regex-performance \ + match-lines \ + max-count-overread \ + max-count-vs-context \ + mb-dot-newline \ + mb-non-UTF8-overrun \ + mb-non-UTF8-perf-Fw \ + mb-non-UTF8-performance \ + mb-non-UTF8-word-boundary \ + multibyte-white-space \ + multiple-begin-or-end-line \ + null-byte \ + options \ + pcre \ + pcre-abort \ + pcre-context \ + pcre-count \ + pcre-infloop \ + pcre-invalid-utf8-infloop \ + pcre-invalid-utf8-input \ + pcre-jitstack \ + pcre-o \ + pcre-utf8 \ + pcre-w \ + pcre-wx-backref \ + pcre-z \ + posix-bracket \ + prefix-of-multibyte \ + proc \ + r-dot \ + repetition-overflow \ + reversed-range-endpoints \ + sjis-mb \ + skip-device \ + skip-read \ + spencer1 \ + spencer1-locale \ + stack-overflow \ + status \ + surrogate-pair \ + symlink \ + triple-backref \ + turkish-I \ + turkish-I-without-dot \ + turkish-eyes \ + two-chars \ + two-files \ + unibyte-binary \ + unibyte-bracket-expr \ + unibyte-negated-circumflex \ + utf8-bracket \ + warn-char-classes \ + word-delim-multibyte \ + word-multi-file \ + word-multibyte \ + write-error-msg \ + yesno \ + z-anchor-newline + +EXTRA_DIST = \ + $(TESTS) \ + bre.awk \ + bre.tests \ + Coreutils.pm \ + CuSkip.pm \ + CuTmpdir.pm \ + envvar-check \ + ere.awk \ + ere.tests \ + init.cfg \ + init.sh \ + khadafy.lines \ + khadafy.regexp \ + no-perl \ + spencer1.awk \ + spencer1.tests \ + spencer1-locale.awk + +# Default to a nonzero value. Environment overrides. +# https://udrepper.livejournal.com/11429.html +MALLOC_PERTURB_ = 1 + +TESTS_ENVIRONMENT = \ + tmp__=$${TMPDIR-/tmp}; \ + test -d "$$tmp__" && test -w "$$tmp__" || tmp__=.; \ + . $(srcdir)/envvar-check; \ + TMPDIR=$$tmp__; export TMPDIR; \ + \ + if test -n "$$BASH_VERSION" || (eval "export v=x") 2>/dev/null; then \ + export_with_values () { export "$$@"; }; \ + else \ + export_with_values () \ + { \ + sed_extract_var='s/=.*//'; \ + sed_quote_value="s/'/'\\\\''/g;s/=\\(.*\\)/='\\1'/";\ + for arg in "$$@"; do \ + var=`echo "$$arg" | sed "$$sed_extract_var"`; \ + arg=`echo "$$arg" | sed "$$sed_quote_value"`; \ + eval "$$arg"; \ + export "$$var"; \ + done; \ + }; \ + fi; \ + \ + : 'Test egrep/fgrep help if they use our grep.'; \ + grep=`echo grep | sed -e '$(transform)'` || exit; \ + if test "$$grep" = grep; then \ + built_programs='grep egrep fgrep'; \ + else \ + built_programs='grep'; \ + fi; \ + \ + export_with_values \ + VERSION='$(VERSION)' \ + LOCALE_FR='$(LOCALE_FR)' \ + LOCALE_FR_UTF8='$(LOCALE_FR_UTF8)' \ + AWK=$(AWK) \ + LC_ALL=C \ + abs_top_builddir='$(abs_top_builddir)' \ + abs_top_srcdir='$(abs_top_srcdir)' \ + abs_srcdir='$(abs_srcdir)' \ + built_programs="$$built_programs" \ + host_triplet='$(host_triplet)' \ + srcdir='$(srcdir)' \ + top_srcdir='$(top_srcdir)' \ + CC='$(CC)' \ + GREP_TEST_NAME=`echo $$tst|sed 's,^\./,,;s,/,-,g'` \ + MAKE=$(MAKE) \ + MALLOC_PERTURB_=$(MALLOC_PERTURB_) \ + PACKAGE_BUGREPORT='$(PACKAGE_BUGREPORT)' \ + PACKAGE_VERSION=$(PACKAGE_VERSION) \ + PERL='$(PERL)' \ + SHELL='$(SHELL)' \ + PATH='$(abs_top_builddir)/src$(PATH_SEPARATOR)'"$$PATH" \ + ; \ + \ + : 'set this envvar to indicate whether -P works'; \ + m=0; if err=`echo .|grep -Pq . 2>&1`; then \ + test -z "$$err" && m=1; fi; \ + export PCRE_WORKS=$$m; \ + 9>&2 + +LOG_COMPILER = $(SHELL) + +VERBOSE = yes + +check: check_executable_TESTS +.PHONY: check_executable_TESTS +check_executable_TESTS: Makefile + $(AM_V_GEN)fail=0; \ + cd $(srcdir) && for i in $(TESTS); do \ + test -x $$i || { fail=1; echo $$i >&2; }; \ + done; \ + test $$fail = 1 \ + && { echo the above test scripts are not executable >&2; exit 1; } \ + || : |