diff options
Diffstat (limited to 'make/make-3.81/tests/scripts/functions/eval')
-rw-r--r-- | make/make-3.81/tests/scripts/functions/eval | 169 |
1 files changed, 0 insertions, 169 deletions
diff --git a/make/make-3.81/tests/scripts/functions/eval b/make/make-3.81/tests/scripts/functions/eval deleted file mode 100644 index 6f02a7a..0000000 --- a/make/make-3.81/tests/scripts/functions/eval +++ /dev/null @@ -1,169 +0,0 @@ -# -*-perl-*- - -$description = "Test the eval function."; - -$details = "This is a test of the eval function in GNU make. -This function will evaluate inline makefile syntax and incorporate the -results into its internal database.\n"; - -open(MAKEFILE,"> $makefile"); - -print MAKEFILE <<'EOF'; -define Y - all:: ; @echo $AA - A = B -endef - -X = $(eval $(value Y)) - -$(eval $(shell echo A = A)) -$(eval $(Y)) -$(eval A = C) -$(eval $(X)) -EOF - -close(MAKEFILE); - -&run_make_with_options($makefile, "", &get_logfile); - -# Create the answer to what should be produced by this Makefile -$answer = "AA\nBA\n"; - -&compare_output($answer,&get_logfile(1)); - -# Test to make sure defining variables when we have extra scope pushed works -# as expected. - -$makefile2 = &get_tmpfile; - -open(MAKEFILE,"> $makefile2"); - -print MAKEFILE <<'EOF'; -VARS = A B - -VARSET = $(1) = $(2) - -$(foreach v,$(VARS),$(eval $(call VARSET,$v,$v))) - -all: ; @echo A = $(A) B = $(B) -EOF - -close(MAKEFILE); - -&run_make_with_options($makefile2, "", &get_logfile); - -# Create the answer to what should be produced by this Makefile -$answer = "A = A B = B\n"; - -&compare_output($answer,&get_logfile(1)); - -# Test to make sure eval'ing inside conditionals works properly - -$makefile3 = &get_tmpfile; - -open(MAKEFILE,"> $makefile3"); - -print MAKEFILE <<'EOF'; -FOO = foo - -all:: ; @echo it - -define Y - all:: ; @echo worked -endef - -ifdef BAR -$(eval $(Y)) -endif - -EOF - -close(MAKEFILE); - -&run_make_with_options($makefile3, "", &get_logfile); -$answer = "it\n"; -&compare_output($answer,&get_logfile(1)); - -&run_make_with_options($makefile3, "BAR=1", &get_logfile); -$answer = "it\nworked\n"; -&compare_output($answer,&get_logfile(1)); - - -# TEST very recursive invocation of eval - -$makefile3 = &get_tmpfile; - -open(MAKEFILE,"> $makefile3"); - -print MAKEFILE <<'EOF'; -..9 := 0 1 2 3 4 5 6 7 8 9 -rev=$(eval res:=)$(foreach word,$1,$(eval res:=${word} ${res}))${res} -a:=$(call rev,${..9}) -all: ; @echo '[$(a)]' - -EOF - -close(MAKEFILE); - -&run_make_with_options($makefile3, "", &get_logfile); -$answer = "[ 9 8 7 6 5 4 3 2 1 0 ]\n"; -&compare_output($answer,&get_logfile(1)); - - -# TEST eval with no filename context. -# The trick here is that because EVAR is taken from the environment, it must -# be evaluated before every command is invoked. Make sure that works, when -# we have no file context for reading_file (bug # 6195) - -$makefile4 = &get_tmpfile; - -open(MAKEFILE,"> $makefile4"); - -print MAKEFILE <<'EOF'; -EVAR = $(eval FOBAR = 1) -all: ; @echo "OK" - -EOF - -close(MAKEFILE); - -$extraENV{EVAR} = '1'; -&run_make_with_options($makefile4, "", &get_logfile); -$answer = "OK\n"; -&compare_output($answer,&get_logfile(1)); - - -# Clean out previous information to allow new run_make_test() interface. -# If we ever convert all the above to run_make_test() we can remove this line. -$makefile = undef; - -# Test handling of backslashes in strings to be evaled. - -run_make_test(' -define FOO -all: ; @echo hello \ -world -endef -$(eval $(FOO)) -', '', 'hello world'); - -run_make_test(' -define FOO -all: ; @echo '."'".'he\llo'."'".' - @echo world -endef -$(eval $(FOO)) -', '', 'he\llo -world'); - - -# We don't allow new target/prerequisite relationships to be defined within a -# command script, because these are evaluated after snap_deps() and that -# causes lots of problems (like core dumps!) -# See Savannah bug # 12124. - -run_make_test('deps: ; $(eval deps: foo)', '', - '#MAKEFILE#:1: *** prerequisites cannot be defined in command scripts. Stop.', - 512); - -1; |