diff options
Diffstat (limited to 'tests/scripts')
-rw-r--r-- | tests/scripts/features/parallelism | 77 | ||||
-rw-r--r-- | tests/scripts/variables/DEFAULT_GOAL (renamed from tests/scripts/variables/DEFAULT_TARGET) | 24 |
2 files changed, 40 insertions, 61 deletions
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); |