From b7b8903b6a7c3342933b9984afa72fb6527b5f72 Mon Sep 17 00:00:00 2001 From: Linus Nordberg Date: Tue, 24 Jan 2017 09:16:28 +0100 Subject: Parallelised merge, distribution phase. --- test/catlfish-test-local-merge.cfg | 15 +++++++++++- test/catlfish-test.cfg.in | 1 - .../light-system-test-prepare-merge-takeover.sh | 1 + test/scripts/light-system-test-prepare.sh | 1 + test/scripts/light-system-test-start.sh | 9 +++++++- test/scripts/light-system-test-stop.sh | 7 +++++- test/scripts/light-system-test.sh | 3 ++- test/scripts/testutils.sh | 27 ++++++++++++++++++++-- 8 files changed, 57 insertions(+), 7 deletions(-) (limited to 'test') diff --git a/test/catlfish-test-local-merge.cfg b/test/catlfish-test-local-merge.cfg index 3b4d45f..bf1d3c1 100644 --- a/test/catlfish-test-local-merge.cfg +++ b/test/catlfish-test-local-merge.cfg @@ -1,14 +1,27 @@ nodename: merge-1 +localnodes: + - merge-1 + paths: + configdir: . mergedb: mergedb + # TODO: https_certfile and https_keyfile not strictly necessary for primary merge + https_certfile: httpscert/httpscert-1.pem + https_keyfile: httpscert/httpskey-1.pem https_cacertfile: httpsca/demoCA/cacert.pem publickeys: publickeys logpublickey: keys/logkey.pem privatekeys: privatekeys verifycert_bin: ../bin/verifycert.erl.escript - known_roots: known_roots/ + knownroots: known_roots/ logadminkey: MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEQ Ah9sZ2CD+JeLbprS6AFcZbo0TGCH0rtEnr2Q3JW0ylhfA+ 0/WLu755b3soVX/wI23vqCVGC7N9fOB2WUltveQ== + +merge: + min-delay: 1 + dist-window-size: 2 + dist-sendlog-chunksize: 1 + dist-sendentries-chunksize: 1 diff --git a/test/catlfish-test.cfg.in b/test/catlfish-test.cfg.in index 39288c7..ed3494b 100644 --- a/test/catlfish-test.cfg.in +++ b/test/catlfish-test.cfg.in @@ -15,7 +15,6 @@ signingnodes: mergenodes: - name: merge-1 - address: localhost:8180 - name: merge-2 address: localhost:8181 diff --git a/test/scripts/light-system-test-prepare-merge-takeover.sh b/test/scripts/light-system-test-prepare-merge-takeover.sh index c84a17e..085a6a2 100755 --- a/test/scripts/light-system-test-prepare-merge-takeover.sh +++ b/test/scripts/light-system-test-prepare-merge-takeover.sh @@ -9,6 +9,7 @@ top_srcdir=$(cd $(dirname $0)/../..; pwd) mv mergedb mergedb-down mv mergedb-secondary mergedb +init_log mkdir mergedb-secondary touch mergedb-secondary/logorder printf 0 > mergedb-secondary/verifiedsize diff --git a/test/scripts/light-system-test-prepare.sh b/test/scripts/light-system-test-prepare.sh index 84b06cd..536c0db 100755 --- a/test/scripts/light-system-test-prepare.sh +++ b/test/scripts/light-system-test-prepare.sh @@ -71,6 +71,7 @@ for machine in ${MACHINES}; do \ mkdir -p machine/machine-${machine}/db touch machine/machine-${machine}/db/index && touch machine/machine-${machine}/db/newentries done +${top_srcdir}/tools/compileconfig.py --config ${top_srcdir}/test/catlfish-test.cfg --localconfig ${top_srcdir}/test/catlfish-test-local-merge.cfg ${top_srcdir}/tools/compileconfig.py --config ${top_srcdir}/test/catlfish-test.cfg --localconfig ${top_srcdir}/test/catlfish-test-local-merge-2.cfg ${top_srcdir}/tools/compileconfig.py --config ${top_srcdir}/test/catlfish-test.cfg --localconfig ${top_srcdir}/test/catlfish-test-local-signing.cfg test -x ${SOFTHSM} && ${SOFTHSM} --init-token --slot=0 --label=mylabel --so-pin=ffff --pin=ffff || true diff --git a/test/scripts/light-system-test-start.sh b/test/scripts/light-system-test-start.sh index 1623d7e..4520945 100755 --- a/test/scripts/light-system-test-start.sh +++ b/test/scripts/light-system-test-start.sh @@ -7,8 +7,15 @@ top_srcdir=$(cd $(dirname $0)/../..; pwd) . ${top_srcdir}/test/scripts/testutils.sh +start_node() { + node=$1 + node_app=$2 + ../bin/run_erl -daemon nodes/${node}/ nodes/${node}/log/ \ + "exec ../bin/erl -boot ${node_app} -config ${node}" +} + for node in ${ERLANGNODES}; do - (../bin/run_erl -daemon nodes/${node}/ nodes/${node}/log/ "exec ../bin/erl -config ${node}") + start_node $(echo $node | tr ':' ' ') done for i in 1 2 3 4 5 6 7 8 9 10; do echo "waiting for system to start" diff --git a/test/scripts/light-system-test-stop.sh b/test/scripts/light-system-test-stop.sh index 575ef38..0bf4374 100755 --- a/test/scripts/light-system-test-stop.sh +++ b/test/scripts/light-system-test-stop.sh @@ -7,6 +7,11 @@ top_srcdir=$(cd $(dirname $0)/../..; pwd) . ${top_srcdir}/test/scripts/testutils.sh -for node in ${ERLANGNODES}; do +stop_node() { + node=$1 ${top_srcdir}/tools/to_catlfish.py to_erl nodes/${node}/ "init:stop()" +} + +for node in ${ERLANGNODES}; do + stop_node $(echo $node | tr ':' ' ') done diff --git a/test/scripts/light-system-test.sh b/test/scripts/light-system-test.sh index eee1078..816bd67 100755 --- a/test/scripts/light-system-test.sh +++ b/test/scripts/light-system-test.sh @@ -5,7 +5,7 @@ set -o errexit top_srcdir=$(cd $(dirname $0)/../..; pwd) -. ${top_srcdir}/test/test.shvars +. ${top_srcdir}/test/scripts/testutils.sh SCRIPTS=${top_srcdir}/test/scripts @@ -18,6 +18,7 @@ tests_stop() { } ${SCRIPTS}/light-system-test-prepare.sh +init_log tests_start ${SCRIPTS}/light-system-test-run-1.sh || (echo "Tests failed"; sleep 5; tests_stop; false) sleep 5 diff --git a/test/scripts/testutils.sh b/test/scripts/testutils.sh index e779e07..ba4221c 100644 --- a/test/scripts/testutils.sh +++ b/test/scripts/testutils.sh @@ -9,14 +9,37 @@ assert_equal() { test "$2" = "$3" || fail "$1 $2 != expected $3" } +wait_for_equal() { + n=$4 + while [ $n -gt 0 ]; do + currentvalue="$(eval "$2")" + [ "${currentvalue}" = "$3" ] && return + echo "still ${currentvalue}, not $3" + n=$((n-1)) + sleep 1 + done + assert_equal "$1" "$(eval "$2")" "$3" +} + get_treesize() { - ${top_srcdir}/tools/loginfo.py --config ${top_srcdir}/test/catlfish-test.cfg --localconfig ${top_srcdir}/test/catlfish-test-local-merge.cfg --treesize https://localhost:8080/ + get_treesize_host ${BASEURL} +} +get_treesize_host() { + ${top_srcdir}/tools/loginfo.py --config ${top_srcdir}/test/catlfish-test.cfg --localconfig ${top_srcdir}/test/catlfish-test-local-merge.cfg --treesize "$1" } check_sth() { - ${top_srcdir}/tools/check-sth.py ${BASEURL} --publickey=keys/logkey.pem --cur-sth=stored-sth --cafile httpsca/demoCA/cacert.pem || fail "Check STH failed" + check_sth_host ${BASEURL} +} +check_sth_host() { + ${top_srcdir}/tools/check-sth.py "$1" --publickey=keys/logkey.pem --cur-sth=stored-sth --cafile httpsca/demoCA/cacert.pem || fail "Check STH failed" } do_merge() { ${top_srcdir}/tools/merge --config ${top_srcdir}/test/catlfish-test.cfg --timing --localconfig ${top_srcdir}/test/catlfish-test-local-merge.cfg || fail "Merge failed" + sleep 5 # FIXME: Just wait for dist instead. +} + +init_log() { + ${top_srcdir}/tools/initlog.py --config ${top_srcdir}/test/catlfish-test.cfg --localconfig ${top_srcdir}/test/catlfish-test-local-merge.cfg || fail "Log init failed" } -- cgit v1.1