xmpp-compliance-tester

XMPP Compliance Tester, forked from github.com/iNPUTmice/ComplianceTester
git clone https://git.in0rdr.ch/xmpp-compliance-tester.git
Log | Files | Refs | Pull requests |Archive | README | LICENSE

commit 6a243cba4dc6a17e49e21591d1f36c62b1397a17
parent eb2f88b44f6fccf96cf349cd95a65ecf1f25b73a
Author: Daniel Gultsch <daniel@gultsch.de>
Date:   Sat, 18 Jun 2016 21:03:48 +0200

optionally order output by frequency

Diffstat:
Mreports/tohtml.php | 59++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
1 file changed, 54 insertions(+), 5 deletions(-)

diff --git a/reports/tohtml.php b/reports/tohtml.php @@ -17,12 +17,18 @@ table tbody tr td.failed { background-color: #e53935; } + table tbody tr td.missing { + background-color: #757575; + } table tr:hover td.passed { background-color: #2e7d32; } table tr:hover td.failed { background-color: #c62828; } + table tr:hover td.missing { + background-color: #424242; + } table tr:hover td { background-color: #e0e0e0; } @@ -36,8 +42,47 @@ </head> <body> <?php +function count_frequency($needle, $reports) { + $count = 0; + foreach($reports as $report) { + foreach($report as $key => $value) { + if ($key === $needle && $value == "PASSED") { + $count++; + } + } + } + return $count; +} +function comp_header($a, $b) { + $reports = $GLOBALS["reports"]; + $count_a = count_frequency($a, $reports); + $count_b = count_frequency($b, $reports); + if ($count_a == $count_b) { + return 0; + } + return ($count_a > $count_b) ? -1 : 1; +} +function count_passed($report) { + $count = 0; + foreach($report as $row) { + if ($row === 'PASSED') { + $count++; + } + } + return $count; +} +function comp_report($a, $b) { + $count_a = count_passed($a); + $count_b = count_passed($b); + if ($count_a == $count_b) { + return 0; + } + return ($count_a > $count_b) ? -1 : 1; +} $reports = json_decode(file_get_contents('complete.json'),true); $headers = array_keys(reset($reports)); +uasort($reports, "comp_report"); +usort($headers, "comp_header"); ?> <table> <thead> @@ -55,11 +100,15 @@ $headers = array_keys(reset($reports)); foreach($reports as $server => $report) { echo '<tr>'; echo '<td>'.htmlentities($server).'</td>'; - foreach($report as $data) { - $pass = 'PASSED' === $data; - echo '<td class="'; - echo $pass ? 'passed' : 'failed'; - echo '"></td>'; + foreach($headers as $c) { + if (!array_key_exists($c, $report)) { + $class = 'missing'; + } else if ('PASSED' === $report[$c]) { + $class = 'passed'; + } else { + $class = 'failed'; + } + echo '<td class="'.$class.'"></td>'; } echo '</tr>'; }