summaryrefslogtreecommitdiff
path: root/tests/scripts/functions/word
diff options
context:
space:
mode:
authorPaul Smith <psmith@gnu.org>2006-02-15 23:54:42 +0000
committerPaul Smith <psmith@gnu.org>2006-02-15 23:54:42 +0000
commit0806a403d65ef6a7f16e2c17aa8286100ebad5d7 (patch)
treeefb7503681a70739ad6e4659ebefc701975ced7f /tests/scripts/functions/word
parent86af3872a910e314d20ef911fad1819ad90c1291 (diff)
downloadgunmake-0806a403d65ef6a7f16e2c17aa8286100ebad5d7.tar.gz
Fix Savannah bug #106: keep separate track of which variable we are
expanding, and use that info when generating error messages instead of the file info, where appropriate.
Diffstat (limited to 'tests/scripts/functions/word')
-rw-r--r--tests/scripts/functions/word107
1 files changed, 73 insertions, 34 deletions
diff --git a/tests/scripts/functions/word b/tests/scripts/functions/word
index 398cd65..34527ea 100644
--- a/tests/scripts/functions/word
+++ b/tests/scripts/functions/word
@@ -46,11 +46,7 @@ $answer = "6\n"
# Test error conditions
-$makefile2 = &get_tmpfile;
-
-open(MAKEFILE, "> $makefile2");
-print MAKEFILE <<'EOF';
-FOO = foo bar biz baz
+run_make_test('FOO = foo bar biz baz
word-e1: ; @echo $(word ,$(FOO))
word-e2: ; @echo $(word abc ,$(FOO))
@@ -58,35 +54,78 @@ word-e3: ; @echo $(word 1a,$(FOO))
wordlist-e1: ; @echo $(wordlist ,,$(FOO))
wordlist-e2: ; @echo $(wordlist abc ,,$(FOO))
-wordlist-e3: ; @echo $(wordlist 1, 12a ,$(FOO))
-
-EOF
-
-close(MAKEFILE);
-
-&run_make_with_options($makefile2, 'word-e1', &get_logfile, 512);
-$answer = "$makefile2:3: *** non-numeric first argument to `word' function: ''. Stop.\n";
-&compare_output($answer, &get_logfile(1));
-
-&run_make_with_options($makefile2, 'word-e2', &get_logfile, 512);
-$answer = "$makefile2:4: *** non-numeric first argument to `word' function: 'abc '. Stop.\n";
-&compare_output($answer, &get_logfile(1));
-
-&run_make_with_options($makefile2, 'word-e3', &get_logfile, 512);
-$answer = "$makefile2:5: *** non-numeric first argument to `word' function: '1a'. Stop.\n";
-&compare_output($answer, &get_logfile(1));
-
-&run_make_with_options($makefile2, 'wordlist-e1', &get_logfile, 512);
-$answer = "$makefile2:7: *** non-numeric first argument to `wordlist' function: ''. Stop.\n";
-&compare_output($answer, &get_logfile(1));
-
-&run_make_with_options($makefile2, 'wordlist-e2', &get_logfile, 512);
-$answer = "$makefile2:8: *** non-numeric first argument to `wordlist' function: 'abc '. Stop.\n";
-&compare_output($answer, &get_logfile(1));
-
-&run_make_with_options($makefile2, 'wordlist-e3', &get_logfile, 512);
-$answer = "$makefile2:9: *** non-numeric second argument to `wordlist' function: ' 12a '. Stop.\n";
-&compare_output($answer, &get_logfile(1));
+wordlist-e3: ; @echo $(wordlist 1, 12a ,$(FOO))',
+ 'word-e1',
+ "#MAKEFILE#:3: *** non-numeric first argument to `word' function: ''. Stop.",
+ 512);
+
+run_make_test(undef,
+ 'word-e2',
+ "#MAKEFILE#:4: *** non-numeric first argument to `word' function: 'abc '. Stop.",
+ 512);
+
+run_make_test(undef,
+ 'word-e3',
+ "#MAKEFILE#:5: *** non-numeric first argument to `word' function: '1a'. Stop.",
+ 512);
+
+run_make_test(undef,
+ 'wordlist-e1',
+ "#MAKEFILE#:7: *** non-numeric first argument to `wordlist' function: ''. Stop.",
+ 512);
+
+run_make_test(undef,
+ 'wordlist-e2',
+ "#MAKEFILE#:8: *** non-numeric first argument to `wordlist' function: 'abc '. Stop.",
+ 512);
+
+run_make_test(undef,
+ 'wordlist-e3',
+ "#MAKEFILE#:9: *** non-numeric second argument to `wordlist' function: ' 12a '. Stop.",
+ 512);
+
+# Test error conditions again, but this time in a variable reference
+
+run_make_test('FOO = foo bar biz baz
+
+W = $(word $x,$(FOO))
+WL = $(wordlist $s,$e,$(FOO))
+
+word-e: ; @echo $(W)
+wordlist-e: ; @echo $(WL)',
+ 'word-e x=',
+ "#MAKEFILE#:3: *** non-numeric first argument to `word' function: ''. Stop.",
+ 512);
+
+run_make_test(undef,
+ 'word-e x=abc',
+ "#MAKEFILE#:3: *** non-numeric first argument to `word' function: 'abc'. Stop.",
+ 512);
+
+run_make_test(undef,
+ 'word-e x=0',
+ "#MAKEFILE#:3: *** first argument to `word' function must be greater than 0. Stop.",
+ 512);
+
+run_make_test(undef,
+ 'wordlist-e s= e=',
+ "#MAKEFILE#:4: *** non-numeric first argument to `wordlist' function: ''. Stop.",
+ 512);
+
+run_make_test(undef,
+ 'wordlist-e s=abc e=',
+ "#MAKEFILE#:4: *** non-numeric first argument to `wordlist' function: 'abc'. Stop.",
+ 512);
+
+run_make_test(undef,
+ 'wordlist-e s=4 e=12a',
+ "#MAKEFILE#:4: *** non-numeric second argument to `wordlist' function: '12a'. Stop.",
+ 512);
+
+run_make_test(undef,
+ 'wordlist-e s=0 e=12',
+ "#MAKEFILE#:4: *** invalid first argument to `wordlist' function: `0'. Stop.",
+ 512);
# TEST #8 -- test $(firstword )