diff options
Diffstat (limited to 'tests/scripts')
-rw-r--r-- | tests/scripts/functions/eval | 25 | ||||
-rw-r--r-- | tests/scripts/functions/if | 24 |
2 files changed, 38 insertions, 11 deletions
diff --git a/tests/scripts/functions/eval b/tests/scripts/functions/eval index cfb27b2..372aaf8 100644 --- a/tests/scripts/functions/eval +++ b/tests/scripts/functions/eval @@ -109,4 +109,29 @@ close(MAKEFILE); $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); + +$ENV{EVAR} = '1'; +&run_make_with_options($makefile4, "", &get_logfile); +$answer = "OK\n"; +&compare_output($answer,&get_logfile(1)); + +delete $ENV{EVAR}; + 1; diff --git a/tests/scripts/functions/if b/tests/scripts/functions/if index fa2d0df..8604e4f 100644 --- a/tests/scripts/functions/if +++ b/tests/scripts/functions/if @@ -8,24 +8,26 @@ open(MAKEFILE, "> $makefile"); print MAKEFILE <<EOMAKE; NEQ = \$(subst \$1,,\$2) +e = all: -\t\@echo \$(if ,true,false) -\t\@echo \$(if ,true,) -\t\@echo \$(if ,true) -\t\@echo \$(if z,true,false) -\t\@echo \$(if z,true,\$(shell echo hi)) -\t\@echo \$(if ,\$(shell echo hi),false) -\t\@echo \$(if \$(call NEQ,a,b),true,false) -\t\@echo \$(if \$(call NEQ,a,a),true,false) -\t\@echo \$(if z,true,fal,se) hi -\t\@echo \$(if ,true,fal,se)there +\t\@echo 1 \$(if ,true,false) +\t\@echo 2 \$(if ,true,) +\t\@echo 3 \$(if ,true) +\t\@echo 4 \$(if z,true,false) +\t\@echo 5 \$(if z,true,\$(shell echo hi)) +\t\@echo 6 \$(if ,\$(shell echo hi),false) +\t\@echo 7 \$(if \$(call NEQ,a,b),true,false) +\t\@echo 8 \$(if \$(call NEQ,a,a),true,false) +\t\@echo 9 \$(if z,true,fal,se) hi +\t\@echo 10 \$(if ,true,fal,se)there +\t\@echo 11 \$(if \$(e) ,true,false) EOMAKE close(MAKEFILE); &run_make_with_options($makefile, "", &get_logfile); -$answer = "false\n\n\ntrue\ntrue\nfalse\ntrue\nfalse\ntrue hi\nfal,sethere\n"; +$answer = "1 false\n2\n3\n4 true\n5 true\n6 false\n7 true\n8 false\n9 true hi\n10 fal,sethere\n11 false\n"; &compare_output($answer, &get_logfile(1)); 1; |