#!/usr/bin/perl
-use Test::More tests => 273;
+use Test::More tests => 280;
use strict;
use warnings;
$tmp = Cwd::getcwd();
# NOTE: disabling parallel building explicitly (it might get automatically
# enabled if run under dpkg-buildpackage -jX) to make output deterministic.
-is_deeply( process_stdout("$^X -- - --builddirectory='autoconf/bld dir' --sourcedirectory autoconf --parallel=1",
+is_deeply( process_stdout("$^X -- - --builddirectory='autoconf/bld dir' --sourcedirectory autoconf --max-parallel=1",
get_load_bs_source(undef, "configure")),
[ 'NAME=autoconf', 'builddir=autoconf/bld dir', "cwd=$tmp", 'makecmd=make', 'parallel=1', 'sourcedir=autoconf' ],
"autoconf autoselection and sourcedir/builddir" );
-is_deeply( process_stdout("$^X -- - -Sautoconf -D autoconf --parallel=1", get_load_bs_source("autoconf", "build")),
+is_deeply( process_stdout("$^X -- - -Sautoconf -D autoconf --max-parallel=1", get_load_bs_source("autoconf", "build")),
[ 'NAME=autoconf', 'builddir=undef', "cwd=$tmp", 'makecmd=make', 'parallel=1', 'sourcedir=autoconf' ],
"forced autoconf and sourcedir" );
-is_deeply( process_stdout("$^X -- - -B -Sautoconf --parallel=1", get_load_bs_source("autoconf", "build")),
+is_deeply( process_stdout("$^X -- - -B -Sautoconf --max-parallel=1", get_load_bs_source("autoconf", "build")),
[ 'NAME=autoconf', "builddir=$default_builddir", "cwd=$tmp", 'makecmd=make', 'parallel=1', 'sourcedir=.' ],
"forced autoconf and default build directory" );
#### Test parallel building and related options / routines
@tmp = ( $ENV{MAKEFLAGS}, $ENV{DEB_BUILD_OPTIONS} );
-# Test get_make_jobserver_status() sub
+# Test is_make_jobserver_unavailable and clean_jobserver_makeflags.
$ENV{MAKEFLAGS} = "--jobserver-fds=103,104 -j";
-is_deeply( [ get_make_jobserver_status() ], [ "jobserver-unavailable", undef ],
- "get_make_jobserver_status(): unavailable jobserver, unset makeflags" );
+ok(is_make_jobserver_unavailable(), "unavailable jobserver" );
+clean_jobserver_makeflags();
+ok(! exists $ENV{MAKEFLAGS}, "unset makeflags");
$ENV{MAKEFLAGS} = "-a --jobserver-fds=103,104 -j -b";
-is_deeply( [ get_make_jobserver_status() ], [ "jobserver-unavailable", "-a -b" ],
- "get_make_jobserver_status(): unavailable jobserver, clean makeflags" );
+ok(is_make_jobserver_unavailable(), "unavailable jobserver" );
+clean_jobserver_makeflags();
+is($ENV{MAKEFLAGS}, "-a -b", "clean makeflags");
$ENV{MAKEFLAGS} = " --jobserver-fds=1,2 -j ";
-is_deeply( [ get_make_jobserver_status() ], [ "jobserver", undef ],
- "get_make_jobserver_status(): jobserver (available), clean makeflags" );
+ok(! is_make_jobserver_unavailable(), "available jobserver" );
+clean_jobserver_makeflags();
+ok(! exists $ENV{MAKEFLAGS}, "unset makeflags");
$ENV{MAKEFLAGS} = "-a -j -b";
-is_deeply( [ get_make_jobserver_status() ], [ "jobs-0", "-a -b" ],
- "get_make_jobserver_status(): -j" );
+ok(! is_make_jobserver_unavailable(), "no specified jobserver");
+clean_jobserver_makeflags();
+is($ENV{MAKEFLAGS}, "-a -j -b", "clean makeflags does not remove -j");
$ENV{MAKEFLAGS} = "-a --jobs -b";
-is_deeply( [ get_make_jobserver_status() ], [ "jobs-0", "-a -b" ],
- "get_make_jobserver_status(): --jobs" );
+ok(! is_make_jobserver_unavailable(), "no specified jobserver");
+clean_jobserver_makeflags();
+is($ENV{MAKEFLAGS}, "-a --jobs -b", "clean makeflags does not remove --jobs");
$ENV{MAKEFLAGS} = "-j6";
-is_deeply( [ get_make_jobserver_status() ], [ "jobs-6", undef ],
- "get_make_jobserver_status(): -j6" );
+ok(! is_make_jobserver_unavailable(), "no specified jobserver");
+clean_jobserver_makeflags();
+is($ENV{MAKEFLAGS}, "-j6", "clean makeflags does not remove -j6");
$ENV{MAKEFLAGS} = "-a -j6 --jobs=7";
-is_deeply( [ get_make_jobserver_status() ], [ "jobs-7", "-a" ],
- "get_make_jobserver_status(): -j6 --jobs=7" );
+ok(! is_make_jobserver_unavailable(), "no specified jobserver");
+clean_jobserver_makeflags();
+is($ENV{MAKEFLAGS}, "-a -j6 --jobs=7", "clean makeflags does not remove -j or --jobs");
$ENV{MAKEFLAGS} = "-j6 --jobserver-fds=5,6 --jobs=8";
-is_deeply( [ get_make_jobserver_status() ], [ "jobserver-unavailable", "-j6 --jobs=8" ],
- "get_make_jobserver_status(): mixed jobserver and -j/--jobs" );
+ok(is_make_jobserver_unavailable(), "unavailable jobserver");
+clean_jobserver_makeflags();
+is($ENV{MAKEFLAGS}, "-j6 --jobs=8", "jobserver options removed");
# Test parallel building with makefile build system.
$ENV{MAKEFLAGS} = "";
test_isnt_parallel( do_parallel_mk(),
"No parallel by default" );
-test_isnt_parallel( do_parallel_mk("--parallel"),
- "No parallel by default with --parallel" );
+test_isnt_parallel( do_parallel_mk("--max-parallel"),
+ "No parallel by default with --max-parallel" );
$ENV{DEB_BUILD_OPTIONS}="parallel=5";
-test_isnt_parallel( do_parallel_mk(),
- "DEB_BUILD_OPTIONS=parallel=5 without --parallel" );
-test_is_parallel( do_parallel_mk("--parallel"),
- "DEB_BUILD_OPTIONS=parallel=5 with --parallel" );
-test_is_parallel( do_parallel_mk("--parallel=2"),
- "DEB_BUILD_OPTIONS=parallel=5 with --parallel=2" );
-test_isnt_parallel( do_parallel_mk("--parallel=1"),
- "DEB_BUILD_OPTIONS=parallel=5 with --parallel=1 (off)" );
+test_is_parallel( do_parallel_mk(),
+ "DEB_BUILD_OPTIONS=parallel=5 without --max-parallel" );
+test_is_parallel( do_parallel_mk("--max-parallel"),
+ "DEB_BUILD_OPTIONS=parallel=5 with --max-parallel" );
+test_is_parallel( do_parallel_mk("--max-parallel=2"),
+ "DEB_BUILD_OPTIONS=parallel=5 with --max-parallel=2" );
+test_isnt_parallel( do_parallel_mk("--max-parallel=1"),
+ "DEB_BUILD_OPTIONS=parallel=5 with --max-parallel=1 (off)" );
$ENV{MAKEFLAGS} = "--jobserver-fds=105,106 -j";
$ENV{DEB_BUILD_OPTIONS}="";
test_isnt_parallel( do_parallel_mk(),
"makefile.pm (no parallel): no make warnings about unavailable jobserver" );
$ENV{DEB_BUILD_OPTIONS}="parallel=5";
-test_is_parallel( do_parallel_mk("--parallel"),
- "DEB_BUILD_OPTIONS=parallel=5 with --parallel: no make warnings about unavail parent jobserver" );
+test_is_parallel( do_parallel_mk(),
+ "DEB_BUILD_OPTIONS=parallel=5: no make warnings about unavail parent jobserver" );
$ENV{MAKEFLAGS} = "-j2";
$ENV{DEB_BUILD_OPTIONS}="";
-test_is_parallel( do_parallel_mk(),
- "MAKEFLAGS=-j2 without --parallel: dh_auto_build honours MAKEFLAGS" );
-test_isnt_parallel( do_parallel_mk("--parallel=1"),
- "MAKEFLAGS=-j2 with --parallel=1: dh_auto_build enforces -j1" );
+test_isnt_parallel( do_parallel_mk(),
+ "MAKEFLAGS=-j2: dh_auto_build ignores MAKEFLAGS" );
+test_isnt_parallel( do_parallel_mk("--max-parallel=1"),
+ "MAKEFLAGS=-j2 with --max-parallel=1: dh_auto_build enforces -j1" );
# Test dh dpkg-buildpackage -jX detection
sub do_rules_for_parallel {
@dh --buildsystem=makefile --after=dh_auto_configure --until=dh_auto_build $@
@dh_clean > /dev/null 2>&1
EOF
- test_is_parallel( do_rules_for_parallel("build", $rules),
- "dh adds --parallel implicitly under dpkg-buildpackage -j5 $extra_dsc");
$ENV{MAKEFLAGS} = "";
- test_isnt_parallel( do_rules_for_parallel("build", $rules),
+ test_is_parallel( do_rules_for_parallel("build", $rules),
"DEB_BUILD_OPTIONS=parallel=5 without MAKEFLAGS=-jX via dh $extra_dsc" );
$ENV{MAKEFLAGS} = "-j5";
$rules = <<'EOF';
%:
@dh_clean > /dev/null 2>&1
- @dh -j1 --buildsystem=makefile --after=dh_auto_configure --until=dh_auto_build $@
+ @dh --max-parallel=1 --buildsystem=makefile --after=dh_auto_configure --until=dh_auto_build $@
@dh_clean > /dev/null 2>&1
EOF
test_isnt_parallel( do_rules_for_parallel("build", $rules),
- "dh -j1 disables implicit parallel under dpkg-buildpackage -j5 $extra_dsc");
+ "dh --max-parallel=1 disables implicit parallel under dpkg-buildpackage -j5 $extra_dsc");
$rules = <<'EOF';
%:
@+dh --buildsystem=makefile --after=dh_auto_configure --until=dh_auto_build $@
@dh_clean > /dev/null 2>&1
EOF
-test_isnt_parallel( do_rules_for_parallel("build", "include debian/rules"),
- "legacy punctuation hacks: +dh, override without +, no parallel, no make warnings" );
+test_is_parallel( do_rules_for_parallel("build", "include debian/rules"),
+ "legacy punctuation hacks: +dh, override without +, parallel, no make warnings" );
unlink "debian/rules";
write_debian_rules(<<'EOF');