Skip to content
Snippets Groups Projects
Commit 8200221c authored by Johannes Mey's avatar Johannes Mey
Browse files

Merge branch 'master' of git-st.inf.tu-dresden.de:stgroup/trainbenchmark

parents c4c45448 29a7ba5e
No related branches found
No related tags found
No related merge requests found
No preview for this file type
......@@ -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)
......
#!/usr/bin/env python
import argparse
import csv
import glob
import json
import logging
......@@ -51,11 +50,11 @@ def include_file_config(args):
def create_link(fileToLink, linkName, dry_run):
(logger.info if args.dry_run else logger.debug)('Linking %s to %s', fileToLink, linkName)
if dry_run:
return
if os.path.lexists(linkName):
os.unlink(linkName)
(logger.info if args.dry_run else logger.debug)('Linking %s to %s', fileToLink, linkName)
os.symlink(fileToLink, linkName)
......@@ -89,6 +88,10 @@ def copy_replace(fileTocopy, all_runs_dir, tool_name, run, dry_run):
run_name = new_run_name(run)
targetFile = os.path.join(
all_runs_dir, os.path.basename(fileTocopy).replace(tool_name, run_name))
if dry_run:
logger.info('Would copy "%s" to "%s"', fileTocopy, targetFile)
return
logger.debug('Copying "%s" to "%s"', fileTocopy, targetFile)
first = True
with open(fileTocopy) as fdr_source, open(targetFile, 'w') as fdr_target:
for line in fdr_source:
......@@ -116,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
......@@ -127,22 +133,19 @@ 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)
# Gathering tools
tools = []
reader = csv.reader(args.tools)
next(reader)
for row in reader:
if not row:
continue
tools.append(row[0])
logger.debug('result_dir: %s, tools: %s', result_dir, tools)
# Using tools from config
logger.debug('result_dir: %s, tools: %s', result_dir, args.tools)
# 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):
......@@ -152,7 +155,7 @@ def main(args):
os.remove(linkName)
# Merge results
for tool in tools:
for tool in args.tools:
if tool.startswith('#'):
logger.debug('Ignoring tool "%s"', tool[1:])
continue
......@@ -182,7 +185,7 @@ def main(args):
ensure_directory(global_run_dir, args.dry_run)
for csvFile in os.listdir(run_dir):
# link file in run directory
fileToLink = os.path.join(tool_dir, run, csvFile)
fileToLink = os.path.join(run_dir, csvFile)
linkName = os.path.join(global_run_dir, csvFile)
create_link(fileToLink, linkName, args.dry_run)
# skip if max-size is set and size is exceeded
......@@ -199,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:
......
No preview for this file type
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment