#!/bin/sh

set -o nounset
set -o errexit

top_srcdir=$(cd $(dirname $0)/../..; pwd)

. ${top_srcdir}/test/scripts/testutils.sh

SCRIPTS=${top_srcdir}/test/scripts

tests_start() {
    ${SCRIPTS}/light-system-test-start.sh "$@"
}

tests_stop() {
    ${SCRIPTS}/light-system-test-stop.sh "$@"
}

tests_stop_all() {
    ${SCRIPTS}/light-system-test-stop.sh mergeprimary mergesecondary frontend storage signing
}

${SCRIPTS}/light-system-test-prepare.sh
tests_start signing mergesecondary storage frontend
${top_srcdir}/tools/initlog.py --config machine/merge/catlfish-test.cfg --localconfig machine/merge/catlfish-test-local-merge.cfg
tests_start mergeprimary
${SCRIPTS}/light-system-test-run-1.sh || (echo "Tests failed"; sleep 5; tests_stop_all; false)
sleep 5
tests_stop_all
sleep 5
echo
echo
echo
echo
echo Test 2
echo
echo
echo
echo
echo
tests_start signing mergesecondary storage frontend mergeprimary
${SCRIPTS}/light-system-test-run-2.sh || (echo "Tests failed"; sleep 5; tests_stop_all; false)
sleep 5
tests_stop_all
sleep 5
echo
echo
echo
echo
echo Test 3
echo
echo
echo
echo
echo
${SCRIPTS}/light-system-test-prepare-merge-takeover.sh
tests_start signing mergesecondary storage frontend
${top_srcdir}/tools/initlog.py --config machine/merge/catlfish-test.cfg --localconfig machine/merge/catlfish-test-local-merge.cfg --promote-secondary
tests_start mergeprimary
${SCRIPTS}/light-system-test-run-3.sh || (echo "Tests failed"; sleep 5; tests_stop_all; false)
sleep 5
tests_stop_all
sleep 5
echo
echo
echo
echo
echo Test 4
echo
echo
echo
echo
echo
${SCRIPTS}/light-system-test-prepare-redistribute-frontend.sh
tests_start signing mergesecondary storage frontend mergeprimary
${SCRIPTS}/light-system-test-run-4.sh || (echo "Tests failed"; sleep 5; tests_stop_all; false)

echo
echo
echo
echo
echo Test 5
echo
echo
echo
echo
echo


${SCRIPTS}/light-system-test-run-5.sh || (echo "Tests failed"; sleep 5; tests_stop_all; false)
sleep 5
tests_stop_all