Commit Diff


commit - 1b4e458e9c63f638eb44adeb8d8ff7b7a9b4dd19
commit + 9abfd3c8c2d3087a7ec4467f43eeb1dac3ac1fdb
blob - 4acf73001a4278c39ae6e2747eabfe32be232785
blob + bdfe3aae2b04f2d8e7bf528fc076dd97b9b0eccf
--- src/metrics.c
+++ src/metrics.c
@@ -35,14 +35,14 @@
 /* FIXME: passed, failed and skipped calculated twice */
 double metric_pass_rate(struct tailq_report *report) {
 
-    if (!report)
-      return 0;
+    int passed = num_by_status_class(report, STATUS_CLASS_PASS);
+    int failed = num_by_status_class(report, STATUS_CLASS_FAIL);
+    int skipped = num_by_status_class(report, STATUS_CLASS_SKIP);
+    if (!report || (passed + failed + skipped == 0))
+       return 0;
 
     double num = 0;
     if (report->suites != NULL) {
-       int passed = num_by_status_class(report, STATUS_CLASS_PASS);
-       int failed = num_by_status_class(report, STATUS_CLASS_FAIL);
-       int skipped = num_by_status_class(report, STATUS_CLASS_SKIP);
        num = (double)passed / (double)(passed + failed + skipped) * 100;
     } else {
        num = 0;