X-Git-Url: https://git.jankratochvil.net/?p=massrebuild.git;a=blobdiff_plain;f=stat;h=4fced7e5e5624f9f296bfd7969f74d99b878bae6;hp=fe70111e83ee451dfc421431d0848523fcffa41f;hb=99eb7ee7ff23318aca7b906bb60d9f0ac3fcc4f3;hpb=175e9338f03f76a55eb0e4e127efb737825b4761 diff --git a/stat b/stat index fe70111..4fced7e 100755 --- a/stat +++ b/stat @@ -20,65 +20,85 @@ sub writefile { close F or die $fname; } +my($exta,$extb); my $mockfail=0; -my $dtmockfail=0; +my $extbmockfail=0; my $emptybyfile=0; -my $dwzwinbyfile=0; -my $dtwinbyfile=0; +my $extawinbyfile=0; +my $extbwinbyfile=0; my $equalbyfile=0; my $emptybyrpm=0; -my $dwzwinbyrpm=0; -my $dtwinbyrpm=0; +my $extawinbyrpm=0; +my $extbwinbyrpm=0; my $equalbyrpm=0; -my $dwzfilesizetot=0; -my $dtfilesizetot=0; -my $dwzrpmsizetot=0; -my $dtrpmsizetot=0; +my $extafilesizetot=0; +my $extbfilesizetot=0; +my $extarpmsizetot=0; +my $extbrpmsizetot=0; my $done=0; my %filestat; my @srcrpms; sub onesrcrpm($) { my($srcrpm)=@_; # print "$srcrpm\n"; - if (-e "$srcrpm.mockfail") { - die if -e "$srcrpm.dt.rpm.mockfail"; + if (-e "$srcrpm.mockfail" + ||-e "$srcrpm$exta.mockfail" + ||-e "$srcrpm$extb.mockfail") { warn "mockfail: $srcrpm"; ++$mockfail; return; } - if (-e "$srcrpm.dt.rpm.mockfail") { - warn "dtmockfail: $srcrpm"; - ++$dtmockfail; + if (-e "$srcrpm.bsmockfail" + ||-e "$srcrpm.bsmockefail" + ||-e "$srcrpm$exta.bsmockfail" + ||-e "$srcrpm$exta.bsmockefail" + ||-e "$srcrpm$extb.bsmockfail" + ||-e "$srcrpm$extb.bsmockefail" + ) { + warn "bsmock(|e)fail: $srcrpm"; + ++$mockfail; + return; + } + if (-e "$srcrpm$exta.mockfail" + ||-e "$srcrpm$extb.mockfail") { + warn "${extb}mockfail: $srcrpm"; + ++$extbmockfail; return; } - my $dwzfilesize=0+readfile "$srcrpm.filesize"; - my $dwzrpmsize=0+readfile "$srcrpm.rpmsize"; - my $dtfilesize=0+readfile "$srcrpm.dt.rpm.filesize"; - my $dtrpmsize=0+readfile "$srcrpm.dt.rpm.rpmsize"; - $dwzfilesizetot+=$dwzfilesize; - $dtfilesizetot+=$dtfilesize; - $dwzrpmsizetot+=$dwzrpmsize; - $dtrpmsizetot+=$dtrpmsize; - if (($dwzfilesize>=$dtfilesize)!=($dwzrpmsize>=$dtrpmsize)) { - #warn "file vs. rpm size do not match (dwzfilesize=$dwzfilesize dtfilesize=$dtfilesize dwzrpmsize=$dwzrpmsize dtrpmsize=$dtrpmsize: $srcrpm"; + if (!-e "$srcrpm$exta.filesize" + ||!-e "$srcrpm$extb.filesize") { + warn "!filesize: $srcrpm"; + ++$extbmockfail; + return; } - if ($dwzfilesize==0&&$dtfilesize==0) { + my $extafilesize=0+readfile "$srcrpm$exta.filesize"; + my $extarpmsize=0+readfile "$srcrpm$exta.rpmsize"; + my $extbfilesize=0+readfile "$srcrpm$extb.filesize"; + my $extbrpmsize=0+readfile "$srcrpm$extb.rpmsize"; + $extafilesizetot+=$extafilesize; + $extbfilesizetot+=$extbfilesize; + $extarpmsizetot+=$extarpmsize; + $extbrpmsizetot+=$extbrpmsize; + if (($extafilesize>=$extbfilesize)!=($extarpmsize>=$extbrpmsize)) { + #warn "file vs. rpm size do not match (${exta}filesize=$extafilesize ${extb}filesize=$extbfilesize ${exta}rpmsize=$extarpmsize ${extb}rpmsize=$extbrpmsize: $srcrpm"; + } + if ($extafilesize==0&&$extbfilesize==0) { ++$emptybyfile; - } elsif ($dwzfilesize<$dtfilesize) { - #warn "dwz dwzfilesize $dwzfilesize < dtfilesize $dtfilesize: $srcrpm"; - ++$dwzwinbyfile; - } elsif ($dwzfilesize>$dtfilesize) { - ++$dtwinbyfile; + } elsif ($extafilesize<$extbfilesize) { + #warn "exta ${exta}filesize $extafilesize < ${extb}filesize $extbfilesize: $srcrpm"; + ++$extawinbyfile; + } elsif ($extafilesize>$extbfilesize) { + ++$extbwinbyfile; } else { ++$equalbyfile; } - push @{$filestat{$dwzfilesize-$dtfilesize}},sprintf("%.2f",100*$dwzfilesize/$dtfilesize).": $srcrpm dwzfilesize=$dwzfilesize dtfilesize=$dtfilesize" if $dtfilesize; - if ($dwzrpmsize==0&&$dtrpmsize==0) { + push @{$filestat{$extafilesize-$extbfilesize}},sprintf("%.2f",100*$extafilesize/$extbfilesize).": $srcrpm ${exta}filesize=$extafilesize ${extb}filesize=$extbfilesize" if $extbfilesize; + if ($extarpmsize==0&&$extbrpmsize==0) { ++$emptybyrpm; - } elsif ($dwzrpmsize<$dtrpmsize) { - ++$dwzwinbyrpm; - } elsif ($dwzrpmsize>$dtrpmsize) { - ++$dtwinbyrpm; + } elsif ($extarpmsize<$extbrpmsize) { + ++$extawinbyrpm; + } elsif ($extarpmsize>$extbrpmsize) { + ++$extbwinbyrpm; } else { ++$equalbyrpm; } @@ -96,6 +116,12 @@ if (($ARGV[0]||"") eq "-r") { } shift; } +my $all_sorted=shift @ARGV if ($ARGV[0]||"") eq "-a"; +die "" + .$0.' [-r ] [-a] {""|.dt.rpm|.dt5.rpm} {""|.dt.rpm|.dt5.rpm}'."\n" + .$0.' .dt.rpm "";'.$0.' .dt5.rpm .dt.rpm;'.$0.' .dt5.rpm ""'."\n" + if @ARGV!=2; +($exta,$extb)=@ARGV; #my $allpkgs=readfile "dnf -C --disablerepo='*' --enablerepo=rawhide-source repoquery -a --arch src 2>/dev/null|"; my $allpkgs=readfile "all"; my %allpkgs=map(("build/$_.src.rpm"=>1),grep /./,(split /\n/,$allpkgs)); @@ -123,43 +149,43 @@ for my $srcrpm (keys(%allpkgs)) { $allpkgs=~tr/\n//cd; die if length($allpkgs)!=keys(%allpkgs); $allpkgs=keys(%allpkgs); -die if $allpkgs!=$done+$mockfail+$dtmockfail+$unbuilt; -print "extras=$extras; unbuilt=$unbuilt; done=$done + mockfail=$mockfail + dtmockfail=$dtmockfail = ".($done+$mockfail+$dtmockfail)." all=$allpkgs processed=".(($done+$mockfail+$dtmockfail)/$allpkgs*100)."%\n"; -print "dwzwinbyfile=$dwzwinbyfile"." dtwinbyfile=$dtwinbyfile"." equalbyfile=$equalbyfile"." emptybyfile=$emptybyfile"."\n"; -print "dwzwinbyrpm =$dwzwinbyrpm" ." dtwinbyrpm =$dtwinbyrpm" ." equalbyrpm =$equalbyrpm" ." emptybyrpm =$emptybyrpm" ."\n"; -print "dwzfilesizetot=$dwzfilesizetot"." dtfilesizetot=$dtfilesizetot"." = ".($dwzfilesizetot/$dtfilesizetot*100)."%\n"; -print " dwzrpmsizetot=$dwzrpmsizetot" ." dtrpmsizetot=$dtrpmsizetot" ." = ".( $dwzrpmsizetot/ $dtrpmsizetot*100)."%\n"; +die if $allpkgs!=$done+$mockfail+$extbmockfail+$unbuilt; +print "extras=$extras; unbuilt=$unbuilt; done=$done + ${exta}mockfail=$mockfail + ${extb}mockfail=$extbmockfail = ".($done+$mockfail+$extbmockfail)." all=$allpkgs processed=".(($done+$mockfail+$extbmockfail)/$allpkgs*100)."%\n"; +print "${exta}winbyfile=$extawinbyfile"." ${extb}winbyfile=$extbwinbyfile"." equalbyfile=$equalbyfile"." emptybyfile=$emptybyfile"."\n"; +print "${exta}winbyrpm =$extawinbyrpm" ." ${extb}winbyrpm =$extbwinbyrpm" ." equalbyrpm =$equalbyrpm" ." emptybyrpm =$emptybyrpm" ."\n"; +print "${exta}filesizetot=$extafilesizetot"." ${extb}filesizetot=$extbfilesizetot"." = ".($extafilesizetot/$extbfilesizetot*100)."%\n"; +print " ${exta}rpmsizetot=$extarpmsizetot" ." ${extb}rpmsizetot=$extbrpmsizetot" ." = ".( $extarpmsizetot/ $extbrpmsizetot*100)."%\n"; #print "equal: $_\n" for @{$filestat{1}}; my @sorted=map @{$filestat{$_}},sort {$a<=>$b;} keys(%filestat); sub out($) { my($ix)=@_; print($sorted[$ix]."\n"); } -if (@ARGV) { +if ($all_sorted) { out $_ for 0..$#sorted; } else { my $p=5; out $_ for 0..$p-1; out $_ for @sorted-$p..$#sorted; } -print "debuginfod download size: "; -my $dwzsizetot=0; -my $dtsizetot=0; -for my $srcrpm (@srcrpms) { - my $rpmsizes="$srcrpm.rpmsizes"; - -e $rpmsizes or (system "./debuginfosize $srcrpm" and die $srcrpm); - -e $rpmsizes or die $srcrpm; - my $f=readfile $rpmsizes; - $f=~/^(\d+) (\d+)\n$/s; - my $dwzsize=$1; - my $dtsize=$2; - $dwzsizetot+=$dwzsize; - $dtsizetot+=$dtsize; -} -print "dwzsizetot=$dwzsizetot dtsizetot=$dtsizetot = ".sprintf("%.2f",$dwzsizetot/$dtsizetot*100)."%\n"; +#print "debuginfod download size: "; +#my $extasizetot=0; +#my $extbsizetot=0; +#for my $srcrpm (@srcrpms) { +# my $rpmsizes="$srcrpm.rpmsizes"; +# -e $rpmsizes or (system "./debuginfosize $srcrpm" and die $srcrpm); +# -e $rpmsizes or die $srcrpm; +# my $f=readfile $rpmsizes; +# $f=~/^(\d+) (\d+)\n$/s; +# my $extasize=$1; +# my $extbsize=$2; +# $extasizetot+=$extasize; +# $extbsizetot+=$extbsize; +#} +#print "${exta}sizetot=$extasizetot ${extb}sizetot=$extbsizetot = ".sprintf("%.2f",$extasizetot/$extbsizetot*100)."%\n"; print "build time: "; -my $dwztime=0; -my $dttime=0; +my $extatime=0; +my $extbtime=0; for my $srcrpm (@srcrpms) { sub onemocklog($) { my($mocklog)=@_; @@ -173,7 +199,7 @@ for my $srcrpm (@srcrpms) { writefile $mocklogtime,"$t\n"; return $t; } - $dwztime+=onemocklog "$srcrpm.mocklog"; - $dttime+=onemocklog "$srcrpm.dt.rpm.mocklog"; + $extatime+=onemocklog "$srcrpm$exta.mocklog"; + $extbtime+=onemocklog "$srcrpm$extb.mocklog"; } -print "dwztime=$dwztime dttime=$dttime = ".sprintf("%.2f",$dwztime/$dttime*100)."%\n"; +print "${exta}time=$extatime ${extb}time=$extbtime = ".sprintf("%.2f",$extatime/$extbtime*100)."%\n";