From: Ian Jackson Date: Mon, 4 Feb 2013 15:30:51 +0000 (+0000) Subject: sg-report-flight: findaflight can chase build job references as found in bisection... X-Git-Tag: wip.xsm-13-actual.base~476^2~98 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=1d22bbdc7800848dc4c7338607fd42da1ff95877;p=people%2Fiwj%2Fosstest.git sg-report-flight: findaflight can chase build job references as found in bisection flights --- diff --git a/sg-report-flight b/sg-report-flight index fe403920..c2f0db5b 100755 --- a/sg-report-flight +++ b/sg-report-flight @@ -153,11 +153,17 @@ END $flightsq= $dbh_tests->prepare($flightsq); $flightsq->execute($branch, @blessings); + my $buildflightsq= $dbh_tests->prepare(<prepare($revisionsq); @@ -168,28 +174,41 @@ END END while (my ($tflight) = $flightsq->fetchrow_array) { + my @bflights; + push @bflights, $tflight; + $buildflightsq->execute($tflight); + while (my $bflightrow = $buildflightsq->fetchrow_hashref()) { + my $val = $bflightrow->{val}; + next unless $val =~ m/\./; # same flight, already added + push @bflights, $`; + } my $whynot; foreach my $tree (keys %{ $specver{$thisthat} }) { + my @revisions; my $v= $specver{$thisthat}{$tree}; - my $revisions; - if ($tree ne 'osstest') { - $revisionsq->execute($tflight, "built_revision_$tree"); - $revisions= $revisionsq->fetchall_arrayref({}); - } else { - $revisionsosstestq->execute($tflight); - $revisions= $revisionsosstestq->fetchall_arrayref({}); - } - if (!@$revisions) { + foreach my $bflight (@bflights) { + my $revisions; + if ($tree ne 'osstest') { + $revisionsq->execute($bflight, "built_revision_$tree"); + $revisions= $revisionsq->fetchall_arrayref({}); + } else { + $revisionsosstestq->execute($bflight); + $revisions= $revisionsosstestq->fetchall_arrayref({}); + } + push @revisions, @$revisions; + } + if (!@revisions) { $whynot= "no built/used $tree"; last; } my ($wrong) = grep { $_->{val} !~ m/^(?: .*: )? $v /x; - } @$revisions; + } @revisions; if (defined $wrong) { $whynot= "mismatch $tree ". - (defined $wrong->{job} ? $wrong->{job} : "(osstest)"). + (defined $wrong->{job} ? + "$wrong->{flight}.$wrong->{job}" : "(osstest)"). " $wrong->{val} != $v"; last; }