From f829832457237b7342e510e4112f66819be3ab3d Mon Sep 17 00:00:00 2001 From: drebs Date: Mon, 30 May 2016 13:45:51 -0300 Subject: [test] add files to create docker image --- scripts/docker/Makefile | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 scripts/docker/Makefile (limited to 'scripts/docker/Makefile') diff --git a/scripts/docker/Makefile b/scripts/docker/Makefile new file mode 100644 index 00000000..7a80fe02 --- /dev/null +++ b/scripts/docker/Makefile @@ -0,0 +1,30 @@ +#/usr/bin/env + +IMAGE_NAME = "leap/soledad:1.0" + +all: image + +image: + docker build -t $(IMAGE_NAME) . + +run-server: image + rm -f $(CONTAINER_ID_FILE) + docker run \ + --env="SOLEDAD_REMOTE=https://0xacab.org/leap/soledad.git" \ + --env="SOLEDAD_BRANCH=develop" \ + --cidfile=$(CONTAINER_ID_FILE) \ + --detach \ + $(IMAGE_NAME) \ + /usr/local/soledad/start-server.sh + +# TODO: the following rule does not work for now, we have to add a +# `start-test.sh` file +run-test: image + container_id=`cat $(CONTAINER_ID_FILE)`; \ + server_ip=`./helper/get-container-ip.sh $${container_id}`; \ + docker run \ + --env="SOLEDAD_REMOTE=https://0xacab.org/leap/soledad.git" \ + --env="SOLEDAD_BRANCH=develop" \ + --env="SOLEDAD_SERVER_IP=$${server_ip}" \ + $(IMAGE_NAME) \ + /usr/local/soledad/start-test.sh -- cgit v1.2.3 From 23410ebd3e2fbf6b2a803ea7e437bf51a2481fef Mon Sep 17 00:00:00 2001 From: drebs Date: Mon, 6 Jun 2016 18:06:53 -0300 Subject: [test] fix docker makefile target for running client test --- scripts/docker/Makefile | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'scripts/docker/Makefile') diff --git a/scripts/docker/Makefile b/scripts/docker/Makefile index 7a80fe02..b9432e8a 100644 --- a/scripts/docker/Makefile +++ b/scripts/docker/Makefile @@ -17,14 +17,12 @@ run-server: image $(IMAGE_NAME) \ /usr/local/soledad/start-server.sh -# TODO: the following rule does not work for now, we have to add a -# `start-test.sh` file -run-test: image +run-client-test: image container_id=`cat $(CONTAINER_ID_FILE)`; \ server_ip=`./helper/get-container-ip.sh $${container_id}`; \ - docker run \ + docker run -t -i \ --env="SOLEDAD_REMOTE=https://0xacab.org/leap/soledad.git" \ --env="SOLEDAD_BRANCH=develop" \ - --env="SOLEDAD_SERVER_IP=$${server_ip}" \ + --env="SOLEDAD_SERVER_URL=http://$${server_ip}:2424" \ $(IMAGE_NAME) \ - /usr/local/soledad/start-test.sh + /usr/local/soledad/start-client-test.sh -- cgit v1.2.3 From 8823fd51ce24d0afae82541d614eeb1ef8c5c0c3 Mon Sep 17 00:00:00 2001 From: drebs Date: Mon, 6 Jun 2016 18:09:39 -0300 Subject: [test] add makefile option to rm all docker containers --- scripts/docker/Makefile | 3 +++ 1 file changed, 3 insertions(+) (limited to 'scripts/docker/Makefile') diff --git a/scripts/docker/Makefile b/scripts/docker/Makefile index b9432e8a..5e5b345e 100644 --- a/scripts/docker/Makefile +++ b/scripts/docker/Makefile @@ -26,3 +26,6 @@ run-client-test: image --env="SOLEDAD_SERVER_URL=http://$${server_ip}:2424" \ $(IMAGE_NAME) \ /usr/local/soledad/start-client-test.sh + +rm-all-containers: + docker ps -a | cut -d" " -f 1 | tail -n +2 | xargs docker rm -f -- cgit v1.2.3 From 7ee12a38d6e8230525f3401abdbd3def4d81502b Mon Sep 17 00:00:00 2001 From: drebs Date: Mon, 6 Jun 2016 20:34:03 -0300 Subject: [test] add rule and script to run soledad connection test --- scripts/docker/Makefile | 42 ++++++++++++++++++++++++++++++++++-------- 1 file changed, 34 insertions(+), 8 deletions(-) (limited to 'scripts/docker/Makefile') diff --git a/scripts/docker/Makefile b/scripts/docker/Makefile index 5e5b345e..9b9ab8f7 100644 --- a/scripts/docker/Makefile +++ b/scripts/docker/Makefile @@ -1,31 +1,57 @@ #/usr/bin/env -IMAGE_NAME = "leap/soledad:1.0" +# This makefile is intended to aid on running soledad docker images for +# specific purposes, as running a server, a client or tests. +# +# In order to communicate the IP address of one container to another, we make +# use of a file containing the container id. You have to explicitelly pass the +# CONTAINER_ID_FILE variable when invoking some of the targets below. +# +# Example usage: +# +# make run-server CONTAINER_ID_FILE=/tmp/container-id.txt +# make run-client-test CONTAINER_ID_FILE=/tmp/container-id.txt + + +IMAGE_NAME ?= "leap/soledad:1.0" +SOLEDAD_REMOTE ?= "https://0xacab.org/leap/soledad.git" +SOLEDAD_BRANCH ?= "develop" + all: image image: docker build -t $(IMAGE_NAME) . -run-server: image - rm -f $(CONTAINER_ID_FILE) +run-server: + @if [ -z "$(CONTAINER_ID_FILE)" ]; then \ + echo "Error: you have to pass a value to CONTAINER_ID_FILE."; \ + exit 2; \ + fi docker run \ - --env="SOLEDAD_REMOTE=https://0xacab.org/leap/soledad.git" \ - --env="SOLEDAD_BRANCH=develop" \ + --env="SOLEDAD_REMOTE=$(SOLEDAD_REMOTE)" \ + --env="SOLEDAD_BRANCH=$(SOLEDAD_BRANCH)" \ --cidfile=$(CONTAINER_ID_FILE) \ --detach \ $(IMAGE_NAME) \ /usr/local/soledad/start-server.sh -run-client-test: image +run-client-test: + @if [ -z "$(CONTAINER_ID_FILE)" ]; then \ + echo "Error: you have to pass a value to CONTAINER_ID_FILE."; \ + exit 2; \ + fi container_id=`cat $(CONTAINER_ID_FILE)`; \ server_ip=`./helper/get-container-ip.sh $${container_id}`; \ docker run -t -i \ - --env="SOLEDAD_REMOTE=https://0xacab.org/leap/soledad.git" \ - --env="SOLEDAD_BRANCH=develop" \ + --env="SOLEDAD_REMOTE=$(SOLEDAD_REMOTE)" \ + --env="SOLEDAD_BRANCH=$(SOLEDAD_BRANCH)" \ --env="SOLEDAD_SERVER_URL=http://$${server_ip}:2424" \ $(IMAGE_NAME) \ /usr/local/soledad/start-client-test.sh +run-shell: image + docker run -t -i $(IMAGE_NAME) /bin/bash + rm-all-containers: docker ps -a | cut -d" " -f 1 | tail -n +2 | xargs docker rm -f -- cgit v1.2.3 From 57e21dc89f1cc5e34261da75d939e53edd3d5a2b Mon Sep 17 00:00:00 2001 From: drebs Date: Mon, 6 Jun 2016 20:43:59 -0300 Subject: [test] add rule for running trial tests in a docker container --- scripts/docker/Makefile | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'scripts/docker/Makefile') diff --git a/scripts/docker/Makefile b/scripts/docker/Makefile index 9b9ab8f7..872bdc40 100644 --- a/scripts/docker/Makefile +++ b/scripts/docker/Makefile @@ -50,6 +50,13 @@ run-client-test: $(IMAGE_NAME) \ /usr/local/soledad/start-client-test.sh +run-trial-test: + docker run -t -i \ + --env="SOLEDAD_REMOTE=$(SOLEDAD_REMOTE)" \ + --env="SOLEDAD_BRANCH=$(SOLEDAD_BRANCH)" \ + $(IMAGE_NAME) \ + /usr/local/soledad/start-trial-test.sh + run-shell: image docker run -t -i $(IMAGE_NAME) /bin/bash -- cgit v1.2.3 From 8f5259b6ce218f8ffeec57fc04cb5c2b782bd959 Mon Sep 17 00:00:00 2001 From: drebs Date: Wed, 8 Jun 2016 17:52:59 -0300 Subject: [test] add docker perf tests --- scripts/docker/Makefile | 67 ++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 63 insertions(+), 4 deletions(-) (limited to 'scripts/docker/Makefile') diff --git a/scripts/docker/Makefile b/scripts/docker/Makefile index 872bdc40..41334142 100644 --- a/scripts/docker/Makefile +++ b/scripts/docker/Makefile @@ -12,17 +12,29 @@ # make run-server CONTAINER_ID_FILE=/tmp/container-id.txt # make run-client-test CONTAINER_ID_FILE=/tmp/container-id.txt +##################################################################### +# Some configurations you might override when calling this makefile # +##################################################################### -IMAGE_NAME ?= "leap/soledad:1.0" -SOLEDAD_REMOTE ?= "https://0xacab.org/leap/soledad.git" -SOLEDAD_BRANCH ?= "develop" +IMAGE_NAME ?= "leap/soledad:1.0" +SOLEDAD_REMOTE ?= "https://0xacab.org/leap/soledad.git" +SOLEDAD_BRANCH ?= "develop" +SOLEDAD_PRELOAD_NUM ?= "100" +SOLEDAD_PRELOAD_SIZE ?= "500" +############################################## +# Docker image generation (main make target) # +############################################## all: image image: docker build -t $(IMAGE_NAME) . +################################################## +# Run a Soledad Server inside a docker container # +################################################## + run-server: @if [ -z "$(CONTAINER_ID_FILE)" ]; then \ echo "Error: you have to pass a value to CONTAINER_ID_FILE."; \ @@ -31,6 +43,8 @@ run-server: docker run \ --env="SOLEDAD_REMOTE=$(SOLEDAD_REMOTE)" \ --env="SOLEDAD_BRANCH=$(SOLEDAD_BRANCH)" \ + --env="SOLEDAD_PRELOAD_NUM=$(SOLEDAD_PRELOAD_NUM)" \ + --env="SOLEDAD_PRELOAD_SIZE=$(SOLEDAD_PRELOAD_SIZE)" \ --cidfile=$(CONTAINER_ID_FILE) \ --detach \ $(IMAGE_NAME) \ @@ -50,6 +64,10 @@ run-client-test: $(IMAGE_NAME) \ /usr/local/soledad/start-client-test.sh +################################################# +# Run all trial tests inside a docker container # +################################################# + run-trial-test: docker run -t -i \ --env="SOLEDAD_REMOTE=$(SOLEDAD_REMOTE)" \ @@ -57,8 +75,49 @@ run-trial-test: $(IMAGE_NAME) \ /usr/local/soledad/start-trial-test.sh +############################################ +# Performance tests and graphic generation # +############################################ + +run-perf: + helper/run-test.sh perf + +run-perf-test: + @if [ -z "$(CONTAINER_ID_FILE)" ]; then \ + echo "Error: you have to pass a value to CONTAINER_ID_FILE."; \ + exit 2; \ + fi + container_id=`cat $(CONTAINER_ID_FILE)`; \ + server_ip=`./helper/get-container-ip.sh $${container_id}`; \ + docker run -t -i \ + --cidfile=$(CONTAINER_ID_FILE)-perf \ + --env="SOLEDAD_REMOTE=$(SOLEDAD_REMOTE)" \ + --env="SOLEDAD_BRANCH=$(SOLEDAD_BRANCH)" \ + --env="SOLEDAD_PERF_REMOTE=https://0xacab.org/drebs/soledad-perf.git" \ + --env="SOLEDAD_PERF_BRANCH=bug/ensure-events-server" \ + --env="SOLEDAD_PRELOAD_NUM=$(SOLEDAD_PRELOAD_NUM)" \ + --env="SOLEDAD_PRELOAD_SIZE=$(SOLEDAD_PRELOAD_SIZE)" \ + --env="SOLEDAD_STATS=1" \ + --env="SOLEDAD_SERVER_URL=http://$${server_ip}:2424" \ + $(IMAGE_NAME) \ + /usr/local/soledad/run-perf-test.sh + +cp-perf-result: + @if [ -z "$(CONTAINER_ID_FILE)" ]; then \ + echo "Error: you have to pass a value to CONTAINER_ID_FILE."; \ + exit 2; \ + fi + perf_id=`cat $(CONTAINER_ID_FILE)-perf`; \ + docker cp $${perf_id}:/var/local/soledad-perf/out/sync-stats.png /tmp/; \ + docker cp $${perf_id}:/var/local/soledad-perf/out/series.log /tmp/ + +######################## +# Other helper targets # +######################## + run-shell: image docker run -t -i $(IMAGE_NAME) /bin/bash rm-all-containers: - docker ps -a | cut -d" " -f 1 | tail -n +2 | xargs docker rm -f + containers=`docker ps -a | cut -d" " -f 1 | tail -n +2 | xargs`; \ + if [ ! -z ${containers} ]; then docker rm -f $${containers}; fi -- cgit v1.2.3 From 6c90ea9ea4ecdb58aa70a755f05a03598ce664f6 Mon Sep 17 00:00:00 2001 From: drebs Date: Fri, 10 Jun 2016 14:35:38 -0300 Subject: [test] add memory limit to docker containers --- scripts/docker/Makefile | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) (limited to 'scripts/docker/Makefile') diff --git a/scripts/docker/Makefile b/scripts/docker/Makefile index 41334142..080fd16c 100644 --- a/scripts/docker/Makefile +++ b/scripts/docker/Makefile @@ -16,11 +16,12 @@ # Some configurations you might override when calling this makefile # ##################################################################### -IMAGE_NAME ?= "leap/soledad:1.0" -SOLEDAD_REMOTE ?= "https://0xacab.org/leap/soledad.git" -SOLEDAD_BRANCH ?= "develop" -SOLEDAD_PRELOAD_NUM ?= "100" -SOLEDAD_PRELOAD_SIZE ?= "500" +IMAGE_NAME ?= leap/soledad:1.0 +SOLEDAD_REMOTE ?= https://0xacab.org/leap/soledad.git +SOLEDAD_BRANCH ?= develop +SOLEDAD_PRELOAD_NUM ?= 100 +SOLEDAD_PRELOAD_SIZE ?= 500 +MEMORY ?= 512m ############################################## # Docker image generation (main make target) # @@ -41,6 +42,7 @@ run-server: exit 2; \ fi docker run \ + --memory="$(MEMORY)" \ --env="SOLEDAD_REMOTE=$(SOLEDAD_REMOTE)" \ --env="SOLEDAD_BRANCH=$(SOLEDAD_BRANCH)" \ --env="SOLEDAD_PRELOAD_NUM=$(SOLEDAD_PRELOAD_NUM)" \ @@ -58,6 +60,7 @@ run-client-test: container_id=`cat $(CONTAINER_ID_FILE)`; \ server_ip=`./helper/get-container-ip.sh $${container_id}`; \ docker run -t -i \ + --memory="$(MEMORY)" \ --env="SOLEDAD_REMOTE=$(SOLEDAD_REMOTE)" \ --env="SOLEDAD_BRANCH=$(SOLEDAD_BRANCH)" \ --env="SOLEDAD_SERVER_URL=http://$${server_ip}:2424" \ @@ -70,6 +73,7 @@ run-client-test: run-trial-test: docker run -t -i \ + --memory="$(MEMORY)" \ --env="SOLEDAD_REMOTE=$(SOLEDAD_REMOTE)" \ --env="SOLEDAD_BRANCH=$(SOLEDAD_BRANCH)" \ $(IMAGE_NAME) \ @@ -90,6 +94,7 @@ run-perf-test: container_id=`cat $(CONTAINER_ID_FILE)`; \ server_ip=`./helper/get-container-ip.sh $${container_id}`; \ docker run -t -i \ + --memory="$(MEMORY)" \ --cidfile=$(CONTAINER_ID_FILE)-perf \ --env="SOLEDAD_REMOTE=$(SOLEDAD_REMOTE)" \ --env="SOLEDAD_BRANCH=$(SOLEDAD_BRANCH)" \ @@ -116,8 +121,11 @@ cp-perf-result: ######################## run-shell: image - docker run -t -i $(IMAGE_NAME) /bin/bash + docker run -t -i \ + --memory="$(MEMORY)" \ + $(IMAGE_NAME) \ + /bin/bash rm-all-containers: containers=`docker ps -a | cut -d" " -f 1 | tail -n +2 | xargs`; \ - if [ ! -z ${containers} ]; then docker rm -f $${containers}; fi + if [ ! -z "$${containers}" ]; then docker rm -f $${containers}; fi -- cgit v1.2.3 From 78d61dfaadf9bcac7258a33738c660b238b7bf27 Mon Sep 17 00:00:00 2001 From: drebs Date: Fri, 10 Jun 2016 22:07:35 -0300 Subject: [test] refactor of docker scripts --- scripts/docker/Makefile | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'scripts/docker/Makefile') diff --git a/scripts/docker/Makefile b/scripts/docker/Makefile index 080fd16c..9dbe9062 100644 --- a/scripts/docker/Makefile +++ b/scripts/docker/Makefile @@ -10,7 +10,7 @@ # Example usage: # # make run-server CONTAINER_ID_FILE=/tmp/container-id.txt -# make run-client-test CONTAINER_ID_FILE=/tmp/container-id.txt +# make run-client-perf CONTAINER_ID_FILE=/tmp/container-id.txt ##################################################################### # Some configurations you might override when calling this makefile # @@ -50,9 +50,9 @@ run-server: --cidfile=$(CONTAINER_ID_FILE) \ --detach \ $(IMAGE_NAME) \ - /usr/local/soledad/start-server.sh + /usr/local/soledad/run-server.sh # --drop-to-shell -run-client-test: +run-client-bootstrap: @if [ -z "$(CONTAINER_ID_FILE)" ]; then \ echo "Error: you have to pass a value to CONTAINER_ID_FILE."; \ exit 2; \ @@ -65,28 +65,28 @@ run-client-test: --env="SOLEDAD_BRANCH=$(SOLEDAD_BRANCH)" \ --env="SOLEDAD_SERVER_URL=http://$${server_ip}:2424" \ $(IMAGE_NAME) \ - /usr/local/soledad/start-client-test.sh + /usr/local/soledad/run-client-bootstrap.sh ################################################# # Run all trial tests inside a docker container # ################################################# -run-trial-test: +run-trial: docker run -t -i \ --memory="$(MEMORY)" \ --env="SOLEDAD_REMOTE=$(SOLEDAD_REMOTE)" \ --env="SOLEDAD_BRANCH=$(SOLEDAD_BRANCH)" \ $(IMAGE_NAME) \ - /usr/local/soledad/start-trial-test.sh + /usr/local/soledad/run-trial.sh ############################################ # Performance tests and graphic generation # ############################################ -run-perf: +run-perf-test: helper/run-test.sh perf -run-perf-test: +run-client-perf: @if [ -z "$(CONTAINER_ID_FILE)" ]; then \ echo "Error: you have to pass a value to CONTAINER_ID_FILE."; \ exit 2; \ @@ -105,7 +105,7 @@ run-perf-test: --env="SOLEDAD_STATS=1" \ --env="SOLEDAD_SERVER_URL=http://$${server_ip}:2424" \ $(IMAGE_NAME) \ - /usr/local/soledad/run-perf-test.sh + /usr/local/soledad/run-client-perf.sh # --drop-to-shell cp-perf-result: @if [ -z "$(CONTAINER_ID_FILE)" ]; then \ -- cgit v1.2.3 From 2c5f5e886a2be8100ef27816adf81ef6cef1545a Mon Sep 17 00:00:00 2001 From: drebs Date: Sun, 12 Jun 2016 13:25:54 -0300 Subject: [test] add logging to client running on docker container --- scripts/docker/Makefile | 1 + 1 file changed, 1 insertion(+) (limited to 'scripts/docker/Makefile') diff --git a/scripts/docker/Makefile b/scripts/docker/Makefile index 9dbe9062..9d669097 100644 --- a/scripts/docker/Makefile +++ b/scripts/docker/Makefile @@ -104,6 +104,7 @@ run-client-perf: --env="SOLEDAD_PRELOAD_SIZE=$(SOLEDAD_PRELOAD_SIZE)" \ --env="SOLEDAD_STATS=1" \ --env="SOLEDAD_SERVER_URL=http://$${server_ip}:2424" \ + --env="SOLEDAD_LOG=1" \ $(IMAGE_NAME) \ /usr/local/soledad/run-client-perf.sh # --drop-to-shell -- cgit v1.2.3 From e8d3f659fbd15f7024eba0a9316634fde31b6bdc Mon Sep 17 00:00:00 2001 From: drebs Date: Mon, 13 Jun 2016 09:27:23 -0300 Subject: [test] limit cpu sets for docker perf test containers --- scripts/docker/Makefile | 2 ++ 1 file changed, 2 insertions(+) (limited to 'scripts/docker/Makefile') diff --git a/scripts/docker/Makefile b/scripts/docker/Makefile index 9d669097..4fa2e264 100644 --- a/scripts/docker/Makefile +++ b/scripts/docker/Makefile @@ -43,6 +43,7 @@ run-server: fi docker run \ --memory="$(MEMORY)" \ + --cpuset-cpus=0 \ --env="SOLEDAD_REMOTE=$(SOLEDAD_REMOTE)" \ --env="SOLEDAD_BRANCH=$(SOLEDAD_BRANCH)" \ --env="SOLEDAD_PRELOAD_NUM=$(SOLEDAD_PRELOAD_NUM)" \ @@ -95,6 +96,7 @@ run-client-perf: server_ip=`./helper/get-container-ip.sh $${container_id}`; \ docker run -t -i \ --memory="$(MEMORY)" \ + --cpuset-cpus=1 \ --cidfile=$(CONTAINER_ID_FILE)-perf \ --env="SOLEDAD_REMOTE=$(SOLEDAD_REMOTE)" \ --env="SOLEDAD_BRANCH=$(SOLEDAD_BRANCH)" \ -- cgit v1.2.3