summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--debian/changelog1
-rwxr-xr-xt/buildsystems/buildsystem_tests9
2 files changed, 10 insertions, 0 deletions
diff --git a/debian/changelog b/debian/changelog
index f16312ab..3e8482d6 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -4,6 +4,7 @@ debhelper (8.1.0) UNRELEASED; urgency=low
python-dbg is run it does not win and result in scripts having it in
the shebang line. Closes: #589759
* Man page fixes about what program -u passes params to. Closes: #593342
+ * Avoid open fd 5 or 6 breaking buildsystem test suite. Closes: #596679
-- Joey Hess <joeyh@debian.org> Sat, 07 Aug 2010 11:27:24 -0400
diff --git a/t/buildsystems/buildsystem_tests b/t/buildsystems/buildsystem_tests
index 15c902af..398fd968 100755
--- a/t/buildsystems/buildsystem_tests
+++ b/t/buildsystems/buildsystem_tests
@@ -499,19 +499,27 @@ ok ( ! -e 'bld', "bld got deleted too" );
#### Test parallel building and related options / routines
@tmp = ( $ENV{MAKEFLAGS}, $ENV{DEB_BUILD_OPTIONS} );
+use POSIX;
+sub closefd {
+ POSIX::close(shift);
+}
+
# Test is_make_jobserver_unavailable and clean_jobserver_makeflags.
$ENV{MAKEFLAGS} = "--jobserver-fds=103,104 -j";
+closefd(103); closefd(104);
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";
+closefd(103); closefd(104);
ok(is_make_jobserver_unavailable(), "unavailable jobserver" );
clean_jobserver_makeflags();
is($ENV{MAKEFLAGS}, "-a -b", "clean makeflags");
$ENV{MAKEFLAGS} = " --jobserver-fds=1,2 -j ";
+# fds left open
ok(! is_make_jobserver_unavailable(), "available jobserver" );
clean_jobserver_makeflags();
ok(! exists $ENV{MAKEFLAGS}, "unset makeflags");
@@ -537,6 +545,7 @@ 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";
+closefd(5); closefd(6);
ok(is_make_jobserver_unavailable(), "unavailable jobserver");
clean_jobserver_makeflags();
is($ENV{MAKEFLAGS}, "-j6 --jobs=8", "jobserver options removed");