diff options
author | Paul Smith <psmith@gnu.org> | 2012-03-03 22:12:46 +0000 |
---|---|---|
committer | Paul Smith <psmith@gnu.org> | 2012-03-03 22:12:46 +0000 |
commit | a77c5c09100ef56940546b543dd1c515529ca4bb (patch) | |
tree | dc4aa65797a96e5d72b02ab479429fa51784c151 /tests/scripts | |
parent | 88f1bc8b55b9f5abf35fdf974310c1063fa41068 (diff) | |
download | gunmake-a77c5c09100ef56940546b543dd1c515529ca4bb.tar.gz |
Fix Savannah bug #35410: handle escape chars in filter/filter-out
Also add a valgrind suppression file for Guile-enabled make.
Diffstat (limited to 'tests/scripts')
-rw-r--r-- | tests/scripts/functions/filter-out | 32 |
1 files changed, 23 insertions, 9 deletions
diff --git a/tests/scripts/functions/filter-out b/tests/scripts/functions/filter-out index 6c8b27a..1fe4819 100644 --- a/tests/scripts/functions/filter-out +++ b/tests/scripts/functions/filter-out @@ -1,6 +1,6 @@ # -*-perl-*- -$description = "Test the filter-out function."; +$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 @@ -11,18 +11,32 @@ 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"; -open(MAKEFILE,"> $makefile"); +# 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"); -print MAKEFILE <<'EOF'; +# 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) -EOF +all: ; @echo '$(files1) $(files2)' +!, + '', "foo.elc foo.elc\n"); -close(MAKEFILE); +# Escaped patterns +run_make_test(q!all:;@echo '$(filter foo\%bar,foo%bar fooXbar)'!, + '', "foo%bar\n"); -&run_make_with_options($makefile, "", &get_logfile, 0); -$answer = "foo.elc foo.elc\n"; -&compare_output($answer,&get_logfile(1)); +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; |