The following commit has been merged in the master branch: commit f85156c2469de1f9637f444a4c4e8dd9396ee106 Author: Niels Thykier <ni...@thykier.net> Date: Thu Aug 18 22:23:18 2011 +0200
Do not use Lintian::Command (or IPC::Run) in t/runtests Testing suggested that the dead-lock test dead-lock appears to be related to the lintian sub-process and only spawn (using IPC::Run) started that process. diff --git a/t/runtests b/t/runtests index 9ddd7de..133cf38 100755 --- a/t/runtests +++ b/t/runtests @@ -58,7 +58,6 @@ BEGIN { use lib "$ENV{'LINTIAN_ROOT'}/lib"; -use Lintian::Command qw(spawn); use Util; # --- Global configuration @@ -441,24 +440,31 @@ sub _builder_tests { sub run_lintian { my ($testdata, $file, $out) = @_; msg_print 'testing... '; - my $opts = { err => "$out", fail => 'never' }; - my $status; - my @options = split(' ', $testdata->{options}//''); + my $status = 0; + # Quote (A test use -L <=, which blows up if we don't... plus it is safer that way) + my @options = map { quotemeta $_ } split(' ', $testdata->{options}//''); + my $cmd; + my $ret; unshift(@options, '--allow-root', '--no-cfg'); unshift(@options, '--profile', $testdata->{profile}) if $testdata->{profile}; - if ($testdata->{sort}) { - $status = spawn($opts, [ $LINTIAN, @options, $file ], '|', [ 'sort' ]); + $cmd = "$LINTIAN " . join(' ', @options). " $file 2>&1"; + if (open my $in, '-|', $cmd) { + my @data = <$in>; + close $in; + $status = ($? >> 8) & 255; + @data = sort @data if $testdata->{sort}; + open my $fd, '>', $out or fail "opening $out: $!"; + print $fd $_ for @data; + close $fd or fail "closing $out: $!"; } else { - $status = spawn($opts, [ $LINTIAN, @options, $file ]); + # Set it to 255 so it fails below + $status = 255; } + unless ($status == 0 or $status == 1) { msg_print "FAILED:\n"; fail("$LINTIAN @options $file exited with status $status\n"); } - open(my $fd, '>>', "$out") - or fail("cannot append to $out: $!"); - print $fd ${ $opts->{out} }; - close $fd or fail "closing $out: $!"; return 1; } -- Debian package checker -- To UNSUBSCRIBE, email to debian-lint-maint-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/e1qu9e6-0005ne...@vasks.debian.org