diff --git a/.gitignore b/.gitignore index eea0580..bd58b2d 100644 --- a/.gitignore +++ b/.gitignore @@ -226,3 +226,8 @@ dmypy.json # Pyre type checker .pyre/ +**/*.txt +**/*.png +**/*.csv +**/*.vm +**/*.docker diff --git a/tests/docker-vm/vnf-vm/graphs.r b/tests/docker-vm/vnf-vm/graphs.r new file mode 100755 index 0000000..ac07487 --- /dev/null +++ b/tests/docker-vm/vnf-vm/graphs.r @@ -0,0 +1,52 @@ +#!/usr/bin/env Rscript + +print_boxplot = function(data, path, name) { + png(filename=sprintf("%s/%sGraph.png", path, name)) + names = structure(list(range01(data[,1]), range01(data[,2])), .Names = c("Virtual Box", "Docker"), class = "data.frame") + boxplot(names) + dev.off() +} + +print_pie = function(data, path, name) { + png(filename=sprintf("%s/%sGraph.png", path, name)) + pie( + c(sum(data[,1]), sum(data[,2])), + col=c("darkgreen", "darkred"), + labels = c("Virtual Box", "Docker"), + main = "Docker vs VM start up times") + dev.off() +} + +print_barplot = function(data, path, name) { + png(filename=sprintf("%s/%sGraph.png", path, name)) + barplot( + c(log(sum(data[,1])), log(sum(data[,2]))), +# main="Docker vs Virtual Machine startup times", + col=c("darkgreen", "darkred"), + ylim=c(0, round(log((max(sum(data[,1]), sum(data[,2])))) / 5))*5, + names.arg=c("Virtual Box", "Docker"), + cex.lab=2, + cex.axis=2, + cex.names=2, + cex.main=2) + mtext(side=2, line=3, text="log(seconds)") + dev.off() +} + +range01 = function(x) { + (x-min(x))/(max(x)-min(x)) +} + +append = function(x, y) { + paste(x, y, sep='') +} + +args = commandArgs(trailingOnly=TRUE) +if (length(args) < 2) { + stop("At least three arguments must be supplied (path to the data, path where to save the graphs and name prefix).n", call.=FALSE) +} else { + data = read.csv(args[1], sep=",") + print_pie(data, args[2], append(args[3], 'Pie')) + print_barplot(data, args[2], append(args[3], 'Barplot')) + print_boxplot(data, args[2], append(args[3], 'Boxplot')) +} diff --git a/tests/docker-vm/vnf-vm/runner.sh b/tests/docker-vm/vnf-vm/runner.sh index 1c7a4e7..76d59ed 100755 --- a/tests/docker-vm/vnf-vm/runner.sh +++ b/tests/docker-vm/vnf-vm/runner.sh @@ -61,6 +61,7 @@ function main() { check_docker $2 $4 "$1.docker" $5 msg info "Tests finished. Output file: $1. Number of tests performed: $2. Bye!" + ./zip.py "$1" } main $@ diff --git a/tests/docker-vm/vnf-vm/zip.py b/tests/docker-vm/vnf-vm/zip.py new file mode 100755 index 0000000..b8a07ac --- /dev/null +++ b/tests/docker-vm/vnf-vm/zip.py @@ -0,0 +1,28 @@ +#!/bin/python3 + +import sys +import csv + +def get_lines(filename): + with open(filename) as f: + content = f.readlines() + return [x.strip() for x in content] + + +def zip_res(filenames): + docker = filenames + ".docker" + vm = filenames + ".vm" + docker_lines = get_lines(docker) + vm_lines = get_lines(vm) + + zipped_lines = zip(vm_lines, docker_lines) + + with open('result.csv', mode='w') as result_file: + result_writer = csv.writer(result_file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL) + + result_writer.writerow(['VirtualBox', 'Docker']) + result_writer.writerows(zipped_lines) + + +if __name__ == '__main__': + zip_res(sys.argv[1])