From fb10ff7bcdb271418a7deee57c9db3ba4a5d5849 Mon Sep 17 00:00:00 2001
From: rschoene <rene.schoene@tu-dresden.de>
Date: Mon, 18 Mar 2019 13:49:23 +0100
Subject: [PATCH] Changed merge_results to create inject and repair
 sub-directories in merged.

---
 .../trainbenchmark-reporting/individual.R     |  6 ++--
 .../trainbenchmark-reporting/merge_results.py | 29 ++++++++++++++-----
 2 files changed, 26 insertions(+), 9 deletions(-)

diff --git a/trainbenchmark/trainbenchmark-reporting/individual.R b/trainbenchmark/trainbenchmark-reporting/individual.R
index 9d9a1f67a..bdd70e340 100644
--- a/trainbenchmark/trainbenchmark-reporting/individual.R
+++ b/trainbenchmark/trainbenchmark-reporting/individual.R
@@ -29,10 +29,12 @@ sizes[["Repair"]] = c("8k", "15k", "33k", "66k", "135k", "271k", "566k", "1.1M",
 
 toolList = read.csv("tool-list.csv")
 
+dir.create("../diagrams/recent")
 for (scenario in c("inject", "repair")) {
+  dir.create(file.path("../diagrams/recent", scenario))
 
   # load the data
-  tsvs = list.files("../results/merged/individual", pattern = paste("times-.*", scenario, ".*\\.csv", sep=""), full.names = T, recursive = T)
+  tsvs = list.files(paste("../results/merged/individual", scenario, sep="/"), pattern = "times-.*\\.csv", full.names = T, recursive = T)
 
   l = lapply(tsvs, read.csv)
   times = rbindlist(l)
@@ -181,4 +183,4 @@ for (scenario in c("inject", "repair")) {
     }
 
   }
-}
\ No newline at end of file
+}
diff --git a/trainbenchmark/trainbenchmark-reporting/merge_results.py b/trainbenchmark/trainbenchmark-reporting/merge_results.py
index af439c79e..dfe5e7344 100755
--- a/trainbenchmark/trainbenchmark-reporting/merge_results.py
+++ b/trainbenchmark/trainbenchmark-reporting/merge_results.py
@@ -119,9 +119,12 @@ def main(args):
         run1/                       -> global_run_dir
         merged/                     -> merged_dir
             individual/             -> merged_dir_individual
-                times.csv@          -
-            combined/               -> merged_dir_benchmark
-                times.csv@          -
+                inject/             -> merged_dir_individual_inject
+                    times.csv@      - (only newest measurements of inject)
+                repair/             -> merged_dir_individual_repair
+                    times.csv@      - (only newest measurements of repair)
+            benchmark/              -> merged_dir_benchmark
+                times.csv@          - (only newest measurements of benchmark)
     """
     log_action = logger.info if args.dry_run else logger.debug
 
@@ -130,7 +133,10 @@ def main(args):
     merged_dir = os.path.join(result_dir, 'merged')
     merged_dir_benchmark = os.path.join(merged_dir, 'benchmark')
     merged_dir_individual = os.path.join(merged_dir, 'individual')
-    for dir_name in (merged_dir, merged_dir_benchmark, merged_dir_individual):
+    merged_dir_individual_inject = os.path.join(merged_dir_individual, 'inject')
+    merged_dir_individual_repair = os.path.join(merged_dir_individual, 'repair')
+    for dir_name in (merged_dir, merged_dir_benchmark, merged_dir_individual,
+                     merged_dir_individual_inject, merged_dir_individual_repair):
         ensure_directory(dir_name, args.dry_run)
 
     # Using tools from config
@@ -138,7 +144,8 @@ def main(args):
 
     # Clean symlinks if requested or max_size is set
     if (args.clean or args.max_size) and not args.dry_run:
-        for dir_to_clean in [merged_dir, merged_dir_benchmark, merged_dir_individual]:
+        for dir_to_clean in [merged_dir, merged_dir_benchmark, merged_dir_individual,
+                             merged_dir_individual_inject, merged_dir_individual_inject]:
             for link in os.listdir(dir_to_clean):
                 linkName = os.path.join(dir_to_clean, link)
                 if os.path.islink(linkName):
@@ -195,8 +202,16 @@ def main(args):
                         logging.warn('file did not match pattern: %s', csvFile)
                 # link file in merged directory
                 if csvFile not in already_merged:
-                    linkName = os.path.join(merged_dir_benchmark if BENCHMARK_PATTERN.match(csvFile)
-                                            else merged_dir_individual, csvFile)
+                    if BENCHMARK_PATTERN.match(csvFile):
+                        target_dir = merged_dir_benchmark
+                    elif 'inject' in csvFile:
+                        target_dir = merged_dir_individual_inject
+                    elif 'repair' in csvFile:
+                        target_dir = merged_dir_individual_repair
+                    else:
+                        # this file has a strange name
+                        logger.warn('Ignoring file "%s" with unknown pattern', fileToLink)
+                    linkName = os.path.join(target_dir, csvFile)
                     create_link(fileToLink, linkName, args.dry_run)
                     already_merged.append(csvFile)
                 else:
-- 
GitLab