summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/ChangeLog11
-rw-r--r--tests/scripts/features/parallelism77
-rw-r--r--tests/scripts/variables/DEFAULT_GOAL (renamed from tests/scripts/variables/DEFAULT_TARGET)24
3 files changed, 51 insertions, 61 deletions
diff --git a/tests/ChangeLog b/tests/ChangeLog
index 698cffb..2a19918 100644
--- a/tests/ChangeLog
+++ b/tests/ChangeLog
@@ -1,3 +1,14 @@
+2005-05-03 Paul D. Smith <psmith@gnu.org>
+
+ * scripts/variables/DEFAULT_GOAL: Rename DEFAULT_TARGET to
+ DEFAULT_GOAL.
+
+2005-05-02 Paul D. Smith <psmith@gnu.org>
+
+ * scripts/features/parallelism: Add a test for exporting recursive
+ variables containing $(shell ) calls. Rewrite this script to use
+ run_make_test() everywhere.
+
2005-04-07 Paul D. Smith <psmith@gnu.org>
* scripts/targets/SECONDARY: Add a test for Savannah bug #12331.
diff --git a/tests/scripts/features/parallelism b/tests/scripts/features/parallelism
index f500352..4768539 100644
--- a/tests/scripts/features/parallelism
+++ b/tests/scripts/features/parallelism
@@ -26,58 +26,32 @@ else {
$sleep_command = "sleep";
}
-open(MAKEFILE,"> $makefile");
-print MAKEFILE <<"EOF";
+run_make_test("
all : def_1 def_2 def_3
def_1 : ; \@echo ONE; $sleep_command 3 ; echo TWO
def_2 : ; \@$sleep_command 2 ; echo THREE
-def_3 : ; \@$sleep_command 1 ; echo FOUR
-EOF
-
-close(MAKEFILE);
-
-&run_make_with_options($makefile, "-j 4", &get_logfile);
-$answer = "ONE\nFOUR\nTHREE\nTWO\n";
-&compare_output($answer, &get_logfile(1));
-
+def_3 : ; \@$sleep_command 1 ; echo FOUR",
+ '-j4', "ONE\nFOUR\nTHREE\nTWO");
# Test parallelism with included files. Here we sleep/echo while
# building the included files, to test that they are being built in
# parallel.
-
-$makefile2 = &get_tmpfile;
-
-open(MAKEFILE,"> $makefile2");
-
-print MAKEFILE <<"EOF";
+run_make_test("
all: 1 2; \@echo success
-
-include 1.inc 2.inc
-
-1.inc: ; \@echo ONE.inc; $sleep_command 2; echo TWO.inc; echo "1: ; \@echo ONE; $sleep_command 2; echo TWO" > \$\@
-2.inc: ; \@$sleep_command 1; echo THREE.inc; echo "2: ; \@$sleep_command 1; echo THREE" > \$\@
-EOF
-
-close(MAKEFILE);
-
-&run_make_with_options("$makefile2", "-j 4", &get_logfile);
-$answer = "ONE.inc\nTHREE.inc\nTWO.inc\nONE\nTHREE\nTWO\nsuccess\n";
-&compare_output($answer, &get_logfile(1));
+1.inc: ; \@echo ONE.inc; $sleep_command 2; echo TWO.inc; echo '1: ; \@echo ONE; $sleep_command 2; echo TWO' > \$\@
+2.inc: ; \@$sleep_command 1; echo THREE.inc; echo '2: ; \@$sleep_command 1; echo THREE' > \$\@",
+ "-j4",
+ "ONE.inc\nTHREE.inc\nTWO.inc\nONE\nTHREE\nTWO\nsuccess\n");
unlink('1.inc', '2.inc');
# Test parallelism with included files--this time recurse first and make
# sure the jobserver works.
-
-$makefile3 = &get_tmpfile;
-
-open(MAKEFILE,"> $makefile3");
-
-print MAKEFILE <<"EOF";
-recurse: ; \@\$(MAKE) --no-print-directory -f $makefile3 INC=yes all
-
+run_make_test("
+recurse: ; \@\$(MAKE) --no-print-directory -f #MAKEFILE# INC=yes all
all: 1 2; \@echo success
INC = no
@@ -85,23 +59,28 @@ ifeq (\$(INC),yes)
-include 1.inc 2.inc
endif
-1.inc: ; \@echo ONE.inc; $sleep_command 2; echo TWO.inc; echo "1: ; \@echo ONE; $sleep_command 2; echo TWO" > \$\@
-2.inc: ; \@$sleep_command 1; echo THREE.inc; echo "2: ; \@$sleep_command 1; echo THREE" > \$\@
-EOF
+1.inc: ; \@echo ONE.inc; $sleep_command 2; echo TWO.inc; echo '1: ; \@echo ONE; $sleep_command 2; echo TWO' > \$\@
+2.inc: ; \@$sleep_command 1; echo THREE.inc; echo '2: ; \@$sleep_command 1; echo THREE' > \$\@",
+ "-j4",
+ "ONE.inc\nTHREE.inc\nTWO.inc\nONE\nTHREE\nTWO\nsuccess\n");
-close(MAKEFILE);
+unlink('1.inc', '2.inc');
-&run_make_with_options("$makefile3", "-j 4", &get_logfile);
-$answer = "ONE.inc\nTHREE.inc\nTWO.inc\nONE\nTHREE\nTWO\nsuccess\n";
-&compare_output($answer, &get_logfile(1));
+# Grant Taylor reports a problem where tokens can be lost (not written back
+# to the pipe when they should be): this happened when there is a $(shell ...)
+# function in an exported recursive variable. I added some code to check
+# for this situation and print a message if it occurred. This test used
+# to trigger this code when I added it but no longer does after the fix.
-unlink('1.inc', '2.inc');
+run_make_test("
+export HI = \$(shell \$(\$\@.CMD))
+first.CMD = echo hi
+second.CMD = $sleep_command 4; echo hi
-# Test shell functions within commands: make sure they're not reducing our
-# parallelism.
+.PHONY: all first second
+all: first second
-run_make_test('.PHONY: all
-all: ; @echo $(shell echo hi)
-','','hi');
+first second: ; \@echo \$\@; $sleep_command 1; echo \$\@",
+ '-j2', "first\nfirst\nsecond\nsecond");
1;
diff --git a/tests/scripts/variables/DEFAULT_TARGET b/tests/scripts/variables/DEFAULT_GOAL
index d8f1173..897bd4a 100644
--- a/tests/scripts/variables/DEFAULT_TARGET
+++ b/tests/scripts/variables/DEFAULT_GOAL
@@ -1,5 +1,5 @@
# -*-perl-*-
-$description = "Test the .DEFAULT_TARGET special variable.";
+$description = "Test the .DEFAULT_GOAL special variable.";
$details = "";
@@ -11,24 +11,24 @@ run_make_test('
#
foo: ; @:
-ifneq ($(.DEFAULT_TARGET),foo)
+ifneq ($(.DEFAULT_GOAL),foo)
$(error )
endif
# Reset to empty.
#
-.DEFAULT_TARGET :=
+.DEFAULT_GOAL :=
bar: ; @:
-ifneq ($(.DEFAULT_TARGET),bar)
+ifneq ($(.DEFAULT_GOAL),bar)
$(error )
endif
-# Change to a different target.
+# Change to a different goal.
#
-.DEFAULT_TARGET := baz
+.DEFAULT_GOAL := baz
baz: ; @echo $@
',
@@ -36,23 +36,23 @@ baz: ; @echo $@
'baz');
-# Test #2: unknown target.
+# Test #2: unknown goal.
#
run_make_test('
-.DEFAULT_TARGET := foo
+.DEFAULT_GOAL = foo
',
'',
-'make: *** No rule to make target `foo\'. Stop.',
+'#MAKE#: *** No rule to make target `foo\'. Stop.',
512);
-# Test #3: more than one target.
+# Test #3: more than one goal.
#
run_make_test('
-.DEFAULT_TARGET := foo bar
+.DEFAULT_GOAL := foo bar
',
'',
-'make: *** .DEFAULT_TARGET contains more than one target. Stop.',
+'#MAKE#: *** .DEFAULT_GOAL contains more than one target. Stop.',
512);