Add option to parse a list of known FTBFS bugs from UDD
authorSteve McIntyre <steve@einval.com>
Thu, 20 Dec 2018 18:10:20 +0000 (18:10 +0000)
committerSteve McIntyre <steve@einval.com>
Thu, 20 Dec 2018 18:10:20 +0000 (18:10 +0000)
Helmut's script gives nice input. Save time on analysis where we can.

bin/analyze_results

index 60aba86..dbb6674 100755 (executable)
@@ -12,6 +12,7 @@ use strict;
 use warnings;
 use POSIX qw(strftime);
 use Data::Dumper;
 use warnings;
 use POSIX qw(strftime);
 use Data::Dumper;
+use Getopt::Std;
 
 my $name = "analyze_results";
 my $repo = "https://git.einval.com/cgi-bin/gitweb.cgi?p=buildd-scripts.git";
 
 my $name = "analyze_results";
 my $repo = "https://git.einval.com/cgi-bin/gitweb.cgi?p=buildd-scripts.git";
@@ -419,6 +420,7 @@ my @logcheck = (
 );
 
 my %log_results;
 );
 
 my %log_results;
+my %udd;
 
 #foreach my $checktmp (@logcheck) {
 #    my %check = %$checktmp;
 
 #foreach my $checktmp (@logcheck) {
 #    my %check = %$checktmp;
@@ -438,6 +440,36 @@ print "<p><a href=\"#summary\">Summary</a></p>\n";
 print "<h2>Packages</h2>\n";
 print "<ol>\n";
 
 print "<h2>Packages</h2>\n";
 print "<ol>\n";
 
+my $line;
+
+our($opt_u);
+getopts('u:') or die "getopts failure\n";
+
+if (defined $opt_u) {
+    open (UDD, "< $opt_u") or die "Can't open UDD list file $opt_u for reading\n";
+    while (defined ($line = <UDD>)) {
+       chomp $line;
+       my ($pkg, $bugno, $bugsubj) = split (/ /, $line, 3);
+       my @buglist;
+       my $tmp = $udd{"$pkg"};
+       if ($tmp) {
+           @buglist = @$tmp;
+       }
+       push (@buglist, "$bugno: $bugsubj");
+       $udd{"$pkg"} = \@buglist;
+    }
+    close UDD;
+
+#    foreach my $key (keys %udd) {
+#      my $tmp = $udd{$key};
+#      my $num = scalar (@$tmp);
+#      print "$key has $num bugs:\n";
+#      foreach my $entry (@$tmp) {
+#          print "  $entry\n";
+#      }
+#    }
+}
+
 foreach my $input (@ARGV) {
     open (IN, "< $input") or die "Can't read $input: $!\n";
     $num_fail++;
 foreach my $input (@ARGV) {
     open (IN, "< $input") or die "Can't read $input: $!\n";
     $num_fail++;
@@ -447,9 +479,19 @@ foreach my $input (@ARGV) {
     my $errors_need_analysis = 0;
     my $oldline = "";
     my %file_results;
     my $errors_need_analysis = 0;
     my $oldline = "";
     my %file_results;
-    print "<li>Looking at <a href=\"$input\">$input</a>:\n";
+    my $pav;
+    my $pkg;
+    my $arch;
+    my $version;
+
+    $pav = $input;
+    $pav =~ s,^.*/,,g;
+    $pav =~ s,\.log,,g;
+    ($pkg, $version, $arch) = split (/_/, $pav);
+
+    print "<li>Looking at <a href=\"$input\">$pkg version $version on arch $arch</a>:\n";
     print "<ul>\n";
     print "<ul>\n";
-    while (defined (my $line = <IN>) and !$stop) {
+    while (defined ($line = <IN>) and !$stop) {
        $lineno++;
        $lines_read++;
        foreach my $checktmp (@logcheck) {
        $lineno++;
        $lines_read++;
        foreach my $checktmp (@logcheck) {
@@ -507,6 +549,16 @@ foreach my $input (@ARGV) {
     } else {
        if ($errors_need_analysis) {
            print "  <li><strong>Needs analysis</strong>\n";
     } else {
        if ($errors_need_analysis) {
            print "  <li><strong>Needs analysis</strong>\n";
+           if ($udd{$pkg}) {
+               my $tmp = $udd{$pkg};
+               my $num = scalar (@$tmp);
+               print "  <li>$num reported FTBFS bugs:\n";
+               print "  <ul>\n";
+               foreach my $entry (@$tmp) {
+                   print "    <li>#$entry\n";
+               }
+               print "  </ul>\n";
+           }
        }
     }
 
        }
     }