. ${top_srcdir}/test/test.shvars fail() { echo "$@" false } 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() { get_treesize_host ${BASEURL} } get_treesize_host() { ${top_srcdir}/tools/loginfo.py --localconfig machine/merge/catlfish-test-local-merge.cfg --treesize "$1" } check_sth() { 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() { n=15 expected_treesize=$1 while [ $n -gt 0 ]; do ${top_srcdir}/tools/merge --config machine/merge/catlfish-test.cfg --timing --localconfig machine/merge/catlfish-test-local-merge.cfg || fail "Merge failed" ${top_srcdir}/tools/mergestatus.py --config machine/merge/catlfish-test.cfg --localconfig machine/merge/catlfish-test-local-merge.cfg n=$((n-1)) treesize=$(get_treesize) [ "${treesize}" = "${expected_treesize}" ] && return sleep 1 done }