#                                                                    -*-perl-*-

$description = "Test the filter and filter-out functions.";

$details = "The makefile created in this test has two variables.  The
filter-out function is first used to discard names ending in
.o with a single simple pattern.  The second filter-out function
augments the simple pattern with three literal names, which are
also added to the text argument.  This tests an internal hash table
which is only used if there are multiple literals present in both
the pattern and text arguments.  The result of both filter-out
functions is the same single .elc name.\n";

# Basic test -- filter
run_make_test(q!
files1 := $(filter %.o, foo.elc bar.o lose.o)
files2 := $(filter %.o foo.i, foo.i bar.i lose.i foo.elc bar.o lose.o)
all: ; @echo '$(files1) $(files2)'
!,
              '', "bar.o lose.o foo.i bar.o lose.o\n");

# Basic test -- filter-out
run_make_test(q!
files1 := $(filter-out %.o, foo.elc bar.o lose.o)
files2 := $(filter-out foo.i bar.i lose.i %.o, foo.i bar.i lose.i foo.elc bar.o lose.o)
all: ; @echo '$(files1) $(files2)'
!,
              '', "foo.elc foo.elc\n");

# Escaped patterns
run_make_test(q!all:;@echo '$(filter foo\%bar,foo%bar fooXbar)'!,
              '', "foo%bar\n");

run_make_test(q!all:;@echo '$(filter foo\%\%\\\\\%\%bar,foo%%\\%%bar fooX\\Ybar)'!,
              '', "foo%%\\%%bar\n");

run_make_test(q!
X = $(filter foo\\\\\%bar,foo\%bar foo\Xbar)
all:;@echo '$(X)'!,
              '', "foo\\%bar\n");

1;
