| # -*-perl-*- | |
| # Date: Tue, 11 Aug 1992 09:34:26 -0400 | |
| # From: pds@lemming.webo.dg.com (Paul D. Smith) | |
| $description = "Test load balancing (-l) option."; | |
| $details = "\ | |
| This test creates a makefile where all depends on three rules | |
| which contain the same body. Each rule checks for the existence | |
| of a temporary file; if it exists an error is generated. If it | |
| doesn't exist then it is created, the rule sleeps, then deletes | |
| the temp file again. Thus if any of the rules are run in | |
| parallel the test will fail. When make is called in this test, | |
| it is given the -l option with a value of 0.0001. This ensures | |
| that the load will be above this number and make will therefore | |
| decide that it cannot run more than one job even though -j 4 was | |
| also specified on the command line."; | |
| open(MAKEFILE,"> $makefile"); | |
| print MAKEFILE qq, | |
| SHELL = /bin/sh | |
| define test | |
| if [ ! -f test-file ]; then \\ | |
| echo >> test-file; sleep 2; $CMD_rmfile test-file; \\ | |
| else \\ | |
| echo \$\@ FAILED; \\ | |
| fi | |
| endef | |
| all : ONE TWO THREE | |
| ONE : ; \@\$(test) | |
| TWO : ; \@\$(test) | |
| THREE : ; \@\$(test) | |
| ,; | |
| close(MAKEFILE); | |
| $mkoptions = "-l 0.0001"; | |
| $mkoptions .= " -j 4" if ($parallel_jobs); | |
| # We have to wait longer than the default (5s). | |
| &run_make_with_options($makefile, $mkoptions, &get_logfile, 0, 8); | |
| $slurp = &read_file_into_string (&get_logfile(1)); | |
| if ($slurp !~ /cannot enforce load limit/) { | |
| &compare_output("", &get_logfile(1)); | |
| } | |
| 1; |