summaryrefslogtreecommitdiff
path: root/tests/scripts/functions
diff options
context:
space:
mode:
authorPaul Smith <psmith@gnu.org>2003-11-04 07:40:29 +0000
committerPaul Smith <psmith@gnu.org>2003-11-04 07:40:29 +0000
commitee3d37a591cf2db3dd1444b2c1e2fcb041f68d33 (patch)
tree0cedbb4ac47a4a0dcd49bd80c4b0ceadf8bed80d /tests/scripts/functions
parent76f034acaadf081fd589cc5409bb4c2c138570e0 (diff)
downloadgunmake-ee3d37a591cf2db3dd1444b2c1e2fcb041f68d33.tar.gz
Fix bugs 5798 and 6195.
Diffstat (limited to 'tests/scripts/functions')
-rw-r--r--tests/scripts/functions/eval25
-rw-r--r--tests/scripts/functions/if24
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;