Added | Compatible |
Warning | Incompatible |
$SONAME_Title".(keys(%TestResults) + keys(%Added) + keys(%Removed) - keys(%SONAME_Changed))." | "; if(not $GroupByHeaders) { $SYS_REPORT .= "VERSION | "; } $SYS_REPORT .= "Compatibility | Added Symbols |
Removed Symbols |
API Changes / Compatibility Problems | ||||||
---|---|---|---|---|---|---|---|---|---|---|---|
$SystemName1 | $SystemName2 | "; } $SYS_REPORT .= "High | Medium | Low | |||||||
$LName | \n"; if(defined $Removed{$LName}) { $SYS_REPORT .= "".$Removed{$LName}{"version"}." | \n"; } elsif(defined $Added{$LName}) { $SYS_REPORT .= "added | \n"; } elsif(not $GroupByHeaders) { $SYS_REPORT .= "".$TestResults{$LName}{"v1"}." | \n"; } if(defined $Added{$LName}) { # added library $SYS_REPORT .= "".$Added{$LName}{"version"}." | \n"; $SYS_REPORT .= "100% | \n"; if($RegisteredPairs{$LName}) { # do nothing } elsif(my $To = $ChangedSoname{$LName}) { $RegisteredPairs{$To}=1; $SYS_REPORT .= "SONAME has changed | \n"; } else { foreach (1 .. 5) { $SYS_REPORT .= "n/a | \n"; # colspan='5' } } $SYS_REPORT .= "removed | \n"; $SYS_REPORT .= "0% | \n"; if($RegisteredPairs{$LName}) { # do nothing } elsif(my $To = $ChangedSoname{$LName}) { $RegisteredPairs{$To}=1; $SYS_REPORT .= "SONAME has changed | \n"; } else { foreach (1 .. 5) { $SYS_REPORT .= "n/a | \n"; # colspan='5' } } $SYS_REPORT .= "\n"; next; } elsif(not $GroupByHeaders) { $SYS_REPORT .= "".$TestResults{$LName}{"v2"}." | \n"; } if($TestResults{$LName}{"verdict"} eq "compatible") { $SYS_REPORT .= "100% | \n"; } else { my $Compatible = 100 - $TestResults{$LName}{"affected"}; $SYS_REPORT .= "$Compatible% | \n"; } my $AddedSym=""; if(my $Count = $TestResults{$LName}{"added"}) { $AddedSym="$Count new"; } if($AddedSym) { $SYS_REPORT.="$AddedSym | "; } else { $SYS_REPORT.="0 | "; } my $RemovedSym=""; if(my $Count = $TestResults{$LName}{"removed"}) { $RemovedSym="$Count removed"; } if($RemovedSym) { $SYS_REPORT.="$RemovedSym | "; } else { $SYS_REPORT.="0 | "; } my $High=""; if(my $Count = $TestResults{$LName}{"type_problems_high"}+$TestResults{$LName}{"interface_problems_high"}) { $High="".problem_title($Count).""; } if($High) { $SYS_REPORT.="$High | "; } else { $SYS_REPORT.="0 | "; } my $Medium=""; if(my $Count = $TestResults{$LName}{"type_problems_medium"}+$TestResults{$LName}{"interface_problems_medium"}) { $Medium="".problem_title($Count).""; } if($Medium) { $SYS_REPORT.="$Medium | "; } else { $SYS_REPORT.="0 | "; } my $Low=""; if(my $Count = $TestResults{$LName}{"type_problems_low"}+$TestResults{$LName}{"interface_problems_low"}+$TestResults{$LName}{"changed_constants"}) { $Low="".warning_title($Count).""; } if($Low) { $SYS_REPORT.="$Low | "; } else { $SYS_REPORT.="0 | "; } $SYS_REPORT .= "\n"; } my @META_DATA = (); my %Stat = ( "total"=>int(keys(%TestResults)), "added"=>int(keys(%Added)), "removed"=>int(keys(%Removed)) ); foreach ("added", "removed") { my $Kind = $_."_interfaces"; foreach my $LName (keys(%TestResults)) { $Stat{$Kind} += $TestResults{$LName}{$_}; } push(@META_DATA, $Kind.":".$Stat{$Kind}); } foreach my $T ("type", "interface") { foreach my $S ("high", "medium", "low") { my $Kind = $T."_problems_".$S; foreach my $LName (keys(%TestResults)) { $Stat{$Kind} += $TestResults{$LName}{$Kind}; } push(@META_DATA, $Kind.":".$Stat{$Kind}); } } foreach my $LName (keys(%TestResults)) { foreach ("affected", "changed_constants") { $Stat{$_} += $TestResults{$LName}{$_}; } if(not defined $Stat{"verdict"} and $TestResults{$LName}{"verdict"} eq "incompatible") { $Stat{"verdict"} = "incompatible"; } } if(not defined $Stat{"verdict"}) { $Stat{"verdict"} = "compatible"; } if($Stat{"total"}) { $Stat{"affected"} /= $Stat{"total"}; } else { $Stat{"affected"} = 0; } $Stat{"affected"} = show_number($Stat{"affected"}); if($Stat{"verdict"}>1) { $Stat{"verdict"} = 1; } push(@META_DATA, "changed_constants:".$Stat{"changed_constants"}); push(@META_DATA, "tool_version:".get_dumpversion("perl $0")); foreach ("removed", "added", "total", "affected", "verdict") { @META_DATA = ($_.":".$Stat{$_}, @META_DATA); } # bottom header $SYS_REPORT .= "
$SONAME_Title | "; if(not $GroupByHeaders) { $SYS_REPORT .= "$SystemName1 | $SystemName2 | "; } $SYS_REPORT .= "Compatibility | Added Symbols |
Removed Symbols |
High | Medium | Low | |||
VERSION | "; } $SYS_REPORT .= "API Changes / Compatibility Problems |