#                                                                    -*-perl-*-
# $Id$

$description = "Test the foreach function.";

$details = "This is a test of the foreach function in gnu make.
This function starts with a space separated list of
names and a variable. Each name in the list is subsituted
into the variable and the given text evaluated. The general
form of the command is $(foreach var,$list,$text). Several
types of foreach loops are tested\n";


# TEST 0

# Set an environment variable that we can test in the makefile.
$extraENV{FOOFOO} = 'foo foo';

run_make_test("space = ' '".'
null :=
auto_var = udef space CC null FOOFOO MAKE foo CFLAGS WHITE @ <
foo = bletch null @ garf
av = $(foreach var, $(auto_var), $(origin $(var)) )
override WHITE := BLACK
for_var = $(addsuffix .c,foo $(null) $(foo) $(space) $(av) )
fe = $(foreach var2, $(for_var),$(subst .c,.o, $(var2) ) )
all: auto for2
auto : ; @echo $(av)
for2: ; @echo $(fe)',
              '-e WHITE=WHITE CFLAGS=',
              "undefined file default file environment default file command line override automatic automatic
foo.o bletch.o null.o @.o garf.o .o    .o undefined.o file.o default.o file.o environment.o default.o file.o command.o line.o override.o automatic.o automatic.o");

delete $extraENV{FOOFOO};

# TEST 1: Test that foreach variables take precedence over global
# variables in a global scope (like inside an eval).  Tests bug #11913

run_make_test('
.PHONY: all target
all: target

x := BAD

define mktarget
target: x := $(x)
target: ; @echo "$(x)"
endef

x := GLOBAL

$(foreach x,FOREACH,$(eval $(value mktarget)))',
              '',
              'FOREACH');


# TEST 2: Check some error conditions.

run_make_test('
x = $(foreach )
y = $x

all: ; @echo $y',
              '',
              "#MAKEFILE#:2: *** insufficient number of arguments (1) to function 'foreach'.  Stop.",
              512);

run_make_test('
x = $(foreach )
y := $x

all: ; @echo $y',
              '',
              "#MAKEFILE#:2: *** insufficient number of arguments (1) to function 'foreach'.  Stop.",
              512);

1;
