stat: Update.
[massrebuild.git] / stat
diff --git a/stat b/stat
index a209c70..4972065 100755 (executable)
--- a/stat
+++ b/stat
@@ -61,7 +61,6 @@ sub onesrcrpm($) {
   $dtrpmsizetot+=$dtrpmsize;
   if (($dwzfilesize>=$dtfilesize)!=($dwzrpmsize>=$dtrpmsize)) {
     #warn "file vs. rpm size do not match (dwzfilesize=$dwzfilesize dtfilesize=$dtfilesize dwzrpmsize=$dwzrpmsize dtrpmsize=$dtrpmsize: $srcrpm";
-    return;
   }
   if ($dwzfilesize==0&&$dtfilesize==0) {
     ++$emptybyfile;
@@ -97,27 +96,39 @@ if (($ARGV[0]||"") eq "-r") {
   }
   shift;
 }
+#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));
+my $extras=0;
 for my $srcrpmdone (glob "build/*.src.rpm.done") {
   (my $srcrpm=$srcrpmdone)=~s{\Q.done\E$}{} or die $srcrpmdone;
   if (%rpmqa) {
     $srcrpm=~m{^build/(.*)-[^-]*-[^-]*$} or die;
     next if !$rpmqa{$1};
   }
+  if (!$allpkgs{$srcrpm}) {
+    warn "extra: $srcrpm\n";
+    ++$extras;
+    next;
+  }
+  ++$allpkgs{$srcrpm};
   onesrcrpm $srcrpm;
 }
+my $unbuilt=0;
+for my $srcrpm (keys(%allpkgs)) {
+  next if $allpkgs{$srcrpm}>1;
+  warn "unbuilt: $srcrpm\n";
+  ++$unbuilt;
+}
+$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 "mockfail=$mockfail dtmockfail=$dtmockfail\n";
 print "dwzfilesizetot=$dwzfilesizetot"." dtfilesizetot=$dtfilesizetot"." = ".($dwzfilesizetot/$dtfilesizetot*100)."%\n";
 print " dwzrpmsizetot=$dwzrpmsizetot" ."  dtrpmsizetot=$dtrpmsizetot" ." = ".( $dwzrpmsizetot/ $dtrpmsizetot*100)."%\n";
-my $fail=0;
-for my $srcrpmfail (glob "build/*.src.rpm.*fail*") {
-  ++$fail;
-}
-my $allpkgs=readfile "dnf -C --disablerepo='*' --enablerepo=rawhide-source repoquery -a --arch src 2>/dev/null|";
-$allpkgs=~tr/\n//cd;
-$allpkgs=length $allpkgs;
-print "done=$done + fail=$fail = ".($done+$fail)." all=$allpkgs processed=".(($done+$fail)/$allpkgs*100)."%\n";
 #print "equal: $_\n" for @{$filestat{1}};
 my @sorted=map({ my $r=$_; map(($_,$r),@{$filestat{$_}}); } sort {$a<=>$b;} keys %filestat);
 sub out($) {