#                                                                    -*-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.";

# On Windows a very different algorithm is used.
$port_type eq 'W32' and return -1;

open(MAKEFILE,"> $makefile");
printf MAKEFILE q,
define test
if [ ! -f test-file ]; then \
  echo >> test-file; sleep 2; %s test-file; \
else \
  echo $@ FAILED; \
fi
endef

all : ONE TWO THREE
ONE : ; @$(test)
TWO : ; @$(test)
THREE : ; @$(test)
,, $CMD_rmfile;
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/) {
  return -1;
}
&compare_output("", &get_logfile(1));

1;
