Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Add simple HTML hover text with a couple diagnostic details
  • Loading branch information
Geoffrey Broadwell committed Nov 1, 2014
1 parent 2dbd21e commit 8e2d9f9
Showing 1 changed file with 27 additions and 11 deletions.
38 changes: 27 additions & 11 deletions analyze
Expand Up @@ -229,11 +229,12 @@ sub diagnose_runs {
my %diagnoses;

while (my ($comp, $runs) = each %$run_info) {
my %by_scale;
my (%by_scale, %details);
for my $run (@$runs) {
my $scale = $run->{scale};
my $diagnosis = $run->{diagnosis} // 'unknown';
my $diagnosis = $run->{diagnosis} //= 'unknown';
push @{$by_scale{$scale} ||= []}, $diagnosis;
push @{$details{$scale} ||= []}, $run;
}

my %summary;
Expand All @@ -242,12 +243,16 @@ sub diagnose_runs {
$summary{$scale} = @diagnoses > 1 ? 'mixed' : $diagnoses[0];
}

my @sorted = map { $summary{$_} }
sort { $a <=> $b } keys %summary;
my @sorted = map { $summary{$_} }
sort { $a <=> $b } keys %summary;

my @details = map { $details{$_} }
sort { $a <=> $b } keys %details;

$diagnoses{$comp} = {
by_scale => \%by_scale,
summary => \%summary,
details => \@details,
sorted => \@sorted,
};
}
Expand Down Expand Up @@ -767,8 +772,21 @@ CSS
};
my $icon_set = sub {
my @icons = map { $DIAGNOSIS_ICON{$_}
// $DIAGNOSIS_ICON{unknown} } @_;
my @icons = map { my $icon = $DIAGNOSIS_ICON{$_}
// $DIAGNOSIS_ICON{unknown};
qq{<span title="$_">$icon</span>}; } @_;
join '' => @icons;
};
my $detailed_icons = sub {
my @icons;
for my $run (@_) {
my $diag = $run->{diagnosis};
my $icon = $DIAGNOSIS_ICON{$diag}
// $DIAGNOSIS_ICON{unknown};
my $hover = $diag ? "$diag: $run->{reason}" : 'ok';
push @icons, qq{<span title="$hover">$icon</span>};
}
join '' => @icons;
};
Expand Down Expand Up @@ -825,12 +843,10 @@ CSS
my (@icon_sets, $icons);
if ($opt->{verbose}) {
my $by_scale = $diags->{by_scale};
my @scales = sort { $a <=> $b } keys %$by_scale;
my $details = $diags->{details};
my @icon_sets;
for my $scale (@scales) {
my $diag = $by_scale->{$scale};
push @icon_sets, $icon_set->(@$diag);
for my $run_set (@$details) {
push @icon_sets, $detailed_icons->(@$run_set);
}
$icons = join '<br>' => @icon_sets;
}
Expand Down

0 comments on commit 8e2d9f9

Please sign in to comment.