From d5f627863cadc97dde60adc8b6fe0a40f715d466 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafael=20Cort=C3=AAs?= Date: Tue, 5 Jan 2016 17:55:39 +0000 Subject: [PATCH] Fix #18: Prevent division by zero exception --- src/Codacy/Coverage/Parser/CloverParser.php | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/Codacy/Coverage/Parser/CloverParser.php b/src/Codacy/Coverage/Parser/CloverParser.php index 82f5814..20627d5 100644 --- a/src/Codacy/Coverage/Parser/CloverParser.php +++ b/src/Codacy/Coverage/Parser/CloverParser.php @@ -25,7 +25,7 @@ public function makeReport() $projectMetrics = $project->metrics; $coveredStatements = intval($projectMetrics['coveredstatements']); $statementsTotal = intval($projectMetrics['statements']); - $reportTotal = round(($coveredStatements / $statementsTotal) * 100); + $reportTotal = round($this->safeDivision($coveredStatements, $statementsTotal) * 100); $fileReports = $this->makeFileReports($project); $report = new CoverageReport($reportTotal, $fileReports); return $report; @@ -71,7 +71,7 @@ private function makeFileReportsFromFiles(\SimpleXMLElement $node, $fileReports) if ($countStatement == 0) { $fileTotal = 0; } else { - $fileTotal = round(($countCoveredStatements / $countStatement) * 100); + $fileTotal = round($this->safeDivision($countCoveredStatements, $countStatement) * 100); } $fileName = $this->getRelativePath($file['name']); $lineCoverage = $this->getLineCoverage($file); @@ -135,4 +135,12 @@ private function getRelativePath(\SimpleXMLElement $fileName) return $str; } + + private function safeDivision($a, $b) + { + if ($b === 0) { + return 0; + } + return $a / $b; + } }