PR #7 opened by Kacper Michajłow (kasper93)
URL: https://code.ffmpeg.org/FFmpeg/fateserver/pulls/7
Patch URL: https://code.ffmpeg.org/FFmpeg/fateserver/pulls/7.patch

Rounding the three percentages could sum to 100.1%, and the progress
element hides what does not fit. Instead just round the values in
tooltips.


From db731eddc4f1d21de2aae141a84dc285e6e5bc13 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Kacper=20Michaj=C5=82ow?= <[email protected]>
Date: Sat, 15 Aug 2026 17:49:57 +0200
Subject: [PATCH] index: do not round the failometer bar widths
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Rounding the three percentages could sum to 100.1%, and the progress
element hides what does not fit. Instead just round the values in
tooltips.

Signed-off-by: Kacper Michajłow <[email protected]>
---
 index.cgi | 30 +++++++++++++-----------------
 1 file changed, 13 insertions(+), 17 deletions(-)

diff --git a/index.cgi b/index.cgi
index 36dc5e1..8b57fc5 100755
--- a/index.cgi
+++ b/index.cgi
@@ -110,17 +110,13 @@ my $clear = '?' . join '&', other_params();
                          'Clear all search criteria.</a>' :
                          'No data in $fatedir.';
 
-# Percentage of $n out of $total, rounded to one decimal for display.
-sub pct {
-    my ($n, $total) = @_;
-    return int(1000 * $n / $total + 0.5) / 10;
-}
-
-my $nreps = @reps;
-my $warn = $nreps - $allpass - $allfail;
-$allpass = pct($allpass, $nreps);
-$allfail = pct($allfail, $nreps);
-$warn    = pct($warn,    $nreps);
+my $warn = @reps - $allpass - $allfail;
+$allpass = 100 * $allpass / @reps;
+$allfail = 100 * $allfail / @reps;
+$warn    = 100 * $warn / @reps;
+my $passpc = sprintf '%.1f', $allpass;
+my $failpc = sprintf '%.1f', $allfail;
+my $warnpc = sprintf '%.1f', $warn;
 
 my @sort = ('result', 'subarch', 'os', 'cc', 'comment', 'slot');
 defined $sort and unshift @sort, split /\/\//, $sort;
@@ -279,22 +275,22 @@ start 'td', colspan => 8, id => 'failometer';
 start 'div', class => 'progress';
 if ($allpass) {
     print <<EOF;
-<div class="progress-bar pass" role="progressbar" title="${allpass}% tests 
passed" aria-valuenow="${allpass}" aria-valuemin="0" aria-valuemax="100" 
style="width: ${allpass}%">
-  <span class="sr-only">${allpass}%</span>
+<div class="progress-bar pass" role="progressbar" title="${passpc}% tests 
passed" aria-valuenow="${passpc}" aria-valuemin="0" aria-valuemax="100" 
style="width: ${allpass}%">
+  <span class="sr-only">${passpc}%</span>
 </div>
 EOF
 }
 if ($warn) {
     print <<EOF;
-<div class="progress-bar warn" role="progressbar" title="${warn}% tests 
failed" aria-valuenow="${warn}" aria-valuemin="0" aria-valuemax="100" 
style="width: ${warn}%">
-  <span class="sr-only">${warn}%</span>
+<div class="progress-bar warn" role="progressbar" title="${warnpc}% tests 
failed" aria-valuenow="${warnpc}" aria-valuemin="0" aria-valuemax="100" 
style="width: ${warn}%">
+  <span class="sr-only">${warnpc}%</span>
 </div>
 EOF
 }
 if ($allfail) {
     print <<EOF;
-<div class="progress-bar fail" role="progressbar" title="${allfail}% build 
failed" aria-valuenow="${allfail}" aria-valuemin="0" aria-valuemax="100" 
style="width: ${allfail}%">
-  <span class="sr-only">${allfail}%</span>
+<div class="progress-bar fail" role="progressbar" title="${failpc}% build 
failed" aria-valuenow="${failpc}" aria-valuemin="0" aria-valuemax="100" 
style="width: ${allfail}%">
+  <span class="sr-only">${failpc}%</span>
 </div>
 EOF
 }
-- 
2.52.0

_______________________________________________
ffmpeg-devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to