From 9cb9739a176c57b5049e9d0e173ed993e0492656 Mon Sep 17 00:00:00 2001
From: Florian Angerer <florian.angerer@oracle.com>
Date: Thu, 11 Jan 2018 10:26:12 +0100
Subject: [PATCH] Add log messages.

---
 .../test/packages/analyzer/dump/AbstractDumper.java |  8 +++++++-
 .../r/test/packages/analyzer/dump/HTMLDumper.java   | 13 +++++++++++--
 2 files changed, 18 insertions(+), 3 deletions(-)

diff --git a/com.oracle.truffle.r.test.packages.analyzer/src/com/oracle/truffle/r/test/packages/analyzer/dump/AbstractDumper.java b/com.oracle.truffle.r.test.packages.analyzer/src/com/oracle/truffle/r/test/packages/analyzer/dump/AbstractDumper.java
index ec3bb6b686..1eeb0c3b7b 100644
--- a/com.oracle.truffle.r.test.packages.analyzer/src/com/oracle/truffle/r/test/packages/analyzer/dump/AbstractDumper.java
+++ b/com.oracle.truffle.r.test.packages.analyzer/src/com/oracle/truffle/r/test/packages/analyzer/dump/AbstractDumper.java
@@ -30,6 +30,7 @@ import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.logging.Logger;
 import java.util.stream.Collectors;
 
 import com.oracle.truffle.r.test.packages.analyzer.Problem;
@@ -40,6 +41,8 @@ import com.oracle.truffle.r.test.packages.analyzer.parser.LogFileParseException;
 
 public abstract class AbstractDumper {
 
+    private static final Logger LOGGER = Logger.getLogger(AbstractDumper.class.getName());
+
     public abstract void dump(Collection<RPackage> problems, Collection<LogFileParseException> collection);
 
     protected Map<Class<? extends Problem>, List<Problem>> groupByType(Collection<Problem> problems) {
@@ -66,17 +69,20 @@ public abstract class AbstractDumper {
     }
 
     protected static Collection<Problem> eliminateRedundantProblems(Collection<Problem> problems) {
-        // build detector hierarchy
+        LOGGER.fine("Building detector hierarchy.");
         Set<Detector<?>> collect = problems.stream().map(p -> p.getDetector()).collect(Collectors.toSet());
         Map<Detector<?>, Collection<Detector<?>>> hierarchy = new HashMap<>();
         for (Detector<?> detector : collect) {
             hierarchy.put(detector, collectChildrenRecursive(detector));
         }
 
+        LOGGER.fine("Grouping problems by detector.");
         Map<Detector<?>, List<Problem>> collect2 = problems.stream().collect(Collectors.groupingBy(p -> p.getDetector()));
 
+        LOGGER.fine("Eliminating redundnat problems.");
         List<Problem> cleaned = problems.stream().filter(p -> isIncluded(p, hierarchy, collect2)).collect(Collectors.toList());
         assert new HashSet<>(cleaned).size() == cleaned.size();
+        LOGGER.fine(String.format("Eliminated %d redundant problems.", (problems.size() - cleaned.size())));
         return cleaned;
     }
 
diff --git a/com.oracle.truffle.r.test.packages.analyzer/src/com/oracle/truffle/r/test/packages/analyzer/dump/HTMLDumper.java b/com.oracle.truffle.r.test.packages.analyzer/src/com/oracle/truffle/r/test/packages/analyzer/dump/HTMLDumper.java
index 02cd6e6ad8..18970331d7 100644
--- a/com.oracle.truffle.r.test.packages.analyzer/src/com/oracle/truffle/r/test/packages/analyzer/dump/HTMLDumper.java
+++ b/com.oracle.truffle.r.test.packages.analyzer/src/com/oracle/truffle/r/test/packages/analyzer/dump/HTMLDumper.java
@@ -36,6 +36,7 @@ import java.util.Collection;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
+import java.util.logging.Logger;
 import java.util.stream.Collectors;
 
 import com.oracle.truffle.r.test.packages.analyzer.Location;
@@ -47,6 +48,8 @@ import com.oracle.truffle.r.test.packages.analyzer.parser.LogFileParseException;
 
 public class HTMLDumper extends AbstractDumper {
 
+    private static final Logger LOGGER = Logger.getLogger(HTMLDumper.class.getName());
+
     private static final String TITLE = "FastR Package Test Dashboard";
     private Path destDir;
 
@@ -75,7 +78,7 @@ public class HTMLDumper extends AbstractDumper {
             createAndCheckOutDir();
             dumpIndexFile(packages, parseErrors);
         } catch (IOException e) {
-            e.printStackTrace();
+            LOGGER.severe("Error writing HTML output: " + e.getMessage());
         }
     }
 
@@ -94,6 +97,7 @@ public class HTMLDumper extends AbstractDumper {
             Tag pkgDistributionTable = generateTestRunDistributionTable(indexFile, builder, groupByTestRuns(allTestRuns, allProblems));
             Tag distrinctProblemDistributionTable = generateDistinctProblemDistribution(builder, groupByProblemContent(allProblems));
 
+            LOGGER.info("Writing index file.");
             builder.html(builder.head(builder.title(TITLE)), builder.body(
                             builder.h1(TITLE),
                             builder.p("Total number of analysis candidates: " + allTestRuns.size()),
@@ -103,7 +107,7 @@ public class HTMLDumper extends AbstractDumper {
                             builder.h2("Distinct Problem Distribution"), distrinctProblemDistributionTable));
             builder.dump();
         } catch (IOException e) {
-            e.printStackTrace();
+            LOGGER.severe("Error during generation of HTML output: " + e.getMessage());
         }
     }
 
@@ -118,16 +122,19 @@ public class HTMLDumper extends AbstractDumper {
     }
 
     private static Collection<Problem> collectAllProblems(Collection<RPackage> pkgs) {
+        LOGGER.fine(String.format("Collecting problems for %d test runs.", pkgs.size()));
         Collection<Problem> problems = new ArrayList<>();
         for (RPackage pkg : pkgs) {
             for (RPackageTestRun run : pkg.getTestRuns()) {
                 problems.addAll(run.getProblems());
             }
         }
+        LOGGER.fine(String.format("Collected %d problems.", problems.size()));
         return problems;
     }
 
     private Tag generateTestRunDistributionTable(Path indexFile, HTMLBuilder builder, Map<RPackageTestRun, List<Problem>> groupByTestRun) {
+        LOGGER.info("Generating test run distribution table.");
         List<RPackageTestRun> collect = groupByTestRun.keySet().stream().sorted((a, b) -> Integer.compare(groupByTestRun.get(b).size(), groupByTestRun.get(a).size())).collect(Collectors.toList());
 
         Tag table = builder.table(builder.tr(
@@ -162,6 +169,7 @@ public class HTMLDumper extends AbstractDumper {
     }
 
     private Tag generateDistinctProblemDistribution(HTMLBuilder builder, Map<ProblemContent, List<Problem>> groupByPkg) {
+        LOGGER.info("Generating distinct problem distribution table.");
         List<ProblemContent> collect = groupByPkg.keySet().stream().sorted((a, b) -> Integer.compare(groupByPkg.get(b).size(), groupByPkg.get(a).size())).collect(Collectors.toList());
 
         Tag table = builder.table(builder.tr(
@@ -186,6 +194,7 @@ public class HTMLDumper extends AbstractDumper {
     }
 
     private Tag generateTypeDistributionTable(HTMLBuilder builder, Map<Class<? extends Problem>, List<Problem>> groupByType) {
+        LOGGER.info("Generating problem type distribution table.");
         List<Class<? extends Problem>> collect = groupByType.keySet().stream().sorted((a, b) -> Integer.compare(groupByType.get(b).size(), groupByType.get(a).size())).collect(Collectors.toList());
 
         Tag table = builder.table();
-- 
GitLab