. ${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
        [ $(eval "$2") = "$3" ] && return
        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/
}

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"
}

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"
}