#!/bin/bash

set -eu

source ./utils.sh

echo dynamic_config tests start

TEST_DIR=./online_conf_change_test

TIKV_BIN=$TIKV_SERVER_PATH
PD_BIN=$PD_SERVER_PATH
PD_CTL_BIN=$PD_CTL_PATH

echo "tikv: ${TIKV_BIN} pd: ${PD_BIN} pd-ctl: ${PD_CTL_BIN}"

PD_ADDR="127.0.0.1:2011"

stop_services() {
    killall -9 -rq tikv-server || true
    killall -9 -rq pd-server || true
    rm -rf ${TEST_DIR} || true
}

# we need dynamic_config feature enabled
stop_services
trap stop_services EXIT

mkdir -p "$TEST_DIR"

for script in ./common_tests/*.sh; do
    echo "*===== Running dynamic config test $script... =====*"
    TEST_NAME="$(basename $script | cut -f 1 -d '.')" \
    TEST_DIR="$TEST_DIR" \
    PD_ADDR="$PD_ADDR" \
    TIKV_BIN="$TIKV_BIN" \
    PD_BIN="$PD_BIN" \
    PD_CTL_BIN="$PD_CTL_BIN" \
    PD_CONFIG="./common_tests/pd_enable.toml" \
    TIKV_CONFIG="./common_tests/tikv_50.toml" \
    sh "$script"
done

script=./compatibility_tests/test_switch.sh
echo "*===== Running dynamic config compatibility test $script... =====*"
TEST_NAME="$(basename $script | cut -f 1 -d '.')" \
TEST_DIR="$TEST_DIR" \
PD_ADDR="$PD_ADDR" \
TIKV_BIN="$TIKV_BIN" \
PD_BIN="$PD_BIN" \
PD_CTL_BIN="$PD_CTL_BIN" \
PD_CONFIG_ENABLE="./compatibility_tests/pd_enable.toml" \
PD_CONFIG_DISABLE="./compatibility_tests/pd_disable.toml" \
TIKV_CONFIG="./compatibility_tests/tikv_50.toml" \
    sh "$script"

echo "Dynamic config tests passed!"
