1# -*-perl-*- 2# Date: Tue, 11 Aug 1992 09:34:26 -0400 3# From: pds@lemming.webo.dg.com (Paul D. Smith) 4 5$description = "Test load balancing (-l) option."; 6 7$details = "\ 8This test creates a makefile where all depends on three rules 9which contain the same body. Each rule checks for the existence 10of a temporary file; if it exists an error is generated. If it 11doesn't exist then it is created, the rule sleeps, then deletes 12the temp file again. Thus if any of the rules are run in 13parallel the test will fail. When make is called in this test, 14it is given the -l option with a value of 0.0001. This ensures 15that the load will be above this number and make will therefore 16decide that it cannot run more than one job even though -j 4 was 17also specified on the command line."; 18 19open(MAKEFILE,"> $makefile"); 20 21# The Contents of the MAKEFILE ... 22 23print MAKEFILE <<'EOF'; 24SHELL = /bin/sh 25 26define test 27if [ ! -f test-file ]; then \ 28 echo >> test-file; sleep 2; rm -f test-file; \ 29else \ 30 echo $@ FAILED; \ 31fi 32endef 33 34all : ONE TWO THREE 35ONE : ; @$(test) 36TWO : ; @$(test) 37THREE : ; @$(test) 38EOF 39 40 41# END of Contents of MAKEFILE 42 43close(MAKEFILE); 44 45$mkoptions = "-l 0.0001"; 46$mkoptions .= " -j 4" if ($parallel_jobs); 47 48&run_make_with_options($makefile, $mkoptions, &get_logfile); 49 50$slurp = &read_file_into_string (&get_logfile(1)); 51if ($slurp !~ /cannot enforce load limit/) { 52 &compare_output("", &get_logfile(1)); 53} 54 551; 56