[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[lintian] 01/05: c/r-lintian-harness: Record processing errors



This is an automated email from the git hooks/post-receive script.

nthykier pushed a commit to branch master
in repository lintian.

commit ca764b17da939c5b1b80aebf486ca3bcf23482a0
Author: Niels Thykier <niels@thykier.net>
Date:   Sun Feb 4 09:23:01 2018 +0000

    c/r-lintian-harness: Record processing errors
    
    Signed-off-by: Niels Thykier <niels@thykier.net>
---
 commands/reporting-lintian-harness.pm | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/commands/reporting-lintian-harness.pm b/commands/reporting-lintian-harness.pm
index fc76850..d107687 100644
--- a/commands/reporting-lintian-harness.pm
+++ b/commands/reporting-lintian-harness.pm
@@ -213,7 +213,7 @@ sub process_worklist {
     log_msg('Command line used: ' . join(q{ }, @LINTIAN_CMD));
     while (@worklist) {
         my $len = scalar @worklist;
-        my (@work_splice, @completed, %processed);
+        my (@work_splice, @completed, %processed, %errors);
         my ($lintpipe, $lint_stdin, $status_fd, $lint_status_out);
         my $got_alarm = 0;
 
@@ -299,8 +299,10 @@ sub process_worklist {
             my $time_limit
               = $start_time + BACKLOG_PROCESSING_TIME_LIMIT - time();
             my $count = 0;
+            my $signalled_lintian = 0;
             my $sig_handler = sub {
                 my ($signal_name) = @_;
+                $signalled_lintian = 1;
                 $count++;
                 if ($signal_name eq 'ALRM') {
                     $got_alarm = 1 if $got_alarm >= 0;
@@ -345,6 +347,9 @@ sub process_worklist {
                     log_msg("  [lintian] error processing $group_id "
                           . "(time: $runtime)");
                     $processed{$group_id} = 1;
+                    # We ignore errors if we sent lintian a signal to avoid
+                    # *some* false-positives.
+                    $errors{$group_id} if not $signalled_lintian;
                 } elsif ($line =~ m/^ack-signal (SIG\S+)$/) {
                     my $signal = $1;
                     log_msg(
@@ -409,6 +414,11 @@ sub process_worklist {
             next if not exists($state->{'groups'}{$group_id});
             $group_data = $state->{'groups'}{$group_id};
             $group_data->{'last-processed-by'} = $LINTIAN_VERSION;
+            if ($errors{$group_id}) {
+                ++$group_data->{'processing-errors'};
+            } else {
+                delete($group_data->{'processing-errors'});
+            }
             delete($group_data->{'out-of-date'});
         }
         save_state_cache($OPT{'state-dir'}, $state);

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/lintian/lintian.git


Reply to: