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", ...@@ -29,10 +29,12 @@ sizes[["Repair"]] = c("8k", "15k", "33k", "66k", "135k", "271k", "566k", "1.1M",
toolList = read.csv("tool-list.csv") toolList = read.csv("tool-list.csv")
dir.create("../diagrams/recent")
for (scenario in c("inject", "repair")) { for (scenario in c("inject", "repair")) {
dir.create(file.path("../diagrams/recent", scenario))
# load the data # 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) l = lapply(tsvs, read.csv)
times = rbindlist(l) times = rbindlist(l)
...@@ -181,4 +183,4 @@ for (scenario in c("inject", "repair")) { ...@@ -181,4 +183,4 @@ for (scenario in c("inject", "repair")) {
} }
} }
} }
\ No newline at end of file
#!/usr/bin/env python #!/usr/bin/env python
import argparse import argparse
import csv
import glob import glob
import json import json
import logging import logging
...@@ -51,11 +50,11 @@ def include_file_config(args): ...@@ -51,11 +50,11 @@ def include_file_config(args):
def create_link(fileToLink, linkName, dry_run): 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: if dry_run:
return return
if os.path.lexists(linkName): if os.path.lexists(linkName):
os.unlink(linkName) os.unlink(linkName)
(logger.info if args.dry_run else logger.debug)('Linking %s to %s', fileToLink, linkName)
os.symlink(fileToLink, linkName) os.symlink(fileToLink, linkName)
...@@ -89,6 +88,10 @@ def copy_replace(fileTocopy, all_runs_dir, tool_name, run, dry_run): ...@@ -89,6 +88,10 @@ def copy_replace(fileTocopy, all_runs_dir, tool_name, run, dry_run):
run_name = new_run_name(run) run_name = new_run_name(run)
targetFile = os.path.join( targetFile = os.path.join(
all_runs_dir, os.path.basename(fileTocopy).replace(tool_name, run_name)) 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 first = True
with open(fileTocopy) as fdr_source, open(targetFile, 'w') as fdr_target: with open(fileTocopy) as fdr_source, open(targetFile, 'w') as fdr_target:
for line in fdr_source: for line in fdr_source:
...@@ -116,9 +119,12 @@ def main(args): ...@@ -116,9 +119,12 @@ def main(args):
run1/ -> global_run_dir run1/ -> global_run_dir
merged/ -> merged_dir merged/ -> merged_dir
individual/ -> merged_dir_individual individual/ -> merged_dir_individual
times.csv@ - inject/ -> merged_dir_individual_inject
combined/ -> merged_dir_benchmark times.csv@ - (only newest measurements of inject)
times.csv@ - 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 log_action = logger.info if args.dry_run else logger.debug
...@@ -127,22 +133,19 @@ def main(args): ...@@ -127,22 +133,19 @@ def main(args):
merged_dir = os.path.join(result_dir, 'merged') merged_dir = os.path.join(result_dir, 'merged')
merged_dir_benchmark = os.path.join(merged_dir, 'benchmark') merged_dir_benchmark = os.path.join(merged_dir, 'benchmark')
merged_dir_individual = os.path.join(merged_dir, 'individual') 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) ensure_directory(dir_name, args.dry_run)
# Gathering tools # Using tools from config
tools = [] logger.debug('result_dir: %s, tools: %s', result_dir, args.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)
# Clean symlinks if requested or max_size is set # Clean symlinks if requested or max_size is set
if (args.clean or args.max_size) and not args.dry_run: 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): for link in os.listdir(dir_to_clean):
linkName = os.path.join(dir_to_clean, link) linkName = os.path.join(dir_to_clean, link)
if os.path.islink(linkName): if os.path.islink(linkName):
...@@ -152,7 +155,7 @@ def main(args): ...@@ -152,7 +155,7 @@ def main(args):
os.remove(linkName) os.remove(linkName)
# Merge results # Merge results
for tool in tools: for tool in args.tools:
if tool.startswith('#'): if tool.startswith('#'):
logger.debug('Ignoring tool "%s"', tool[1:]) logger.debug('Ignoring tool "%s"', tool[1:])
continue continue
...@@ -182,7 +185,7 @@ def main(args): ...@@ -182,7 +185,7 @@ def main(args):
ensure_directory(global_run_dir, args.dry_run) ensure_directory(global_run_dir, args.dry_run)
for csvFile in os.listdir(run_dir): for csvFile in os.listdir(run_dir):
# link file in run directory # 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) linkName = os.path.join(global_run_dir, csvFile)
create_link(fileToLink, linkName, args.dry_run) create_link(fileToLink, linkName, args.dry_run)
# skip if max-size is set and size is exceeded # skip if max-size is set and size is exceeded
...@@ -199,8 +202,16 @@ def main(args): ...@@ -199,8 +202,16 @@ def main(args):
logging.warn('file did not match pattern: %s', csvFile) logging.warn('file did not match pattern: %s', csvFile)
# link file in merged directory # link file in merged directory
if csvFile not in already_merged: if csvFile not in already_merged:
linkName = os.path.join(merged_dir_benchmark if BENCHMARK_PATTERN.match(csvFile) if BENCHMARK_PATTERN.match(csvFile):
else merged_dir_individual, 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) create_link(fileToLink, linkName, args.dry_run)
already_merged.append(csvFile) already_merged.append(csvFile)
else: 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