github.com/pingcap/tiflow@v0.0.0-20240520035814-5bf52d54e205/dm/tests/foreign_key/run.sh (about)

     1  #!/bin/bash
     2  
     3  set -eu
     4  
     5  cur=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
     6  source $cur/../_utils/test_prepare
     7  WORK_DIR=$TEST_DIR/$TEST_NAME
     8  
     9  function run() {
    10  	run_sql_tidb "set @@global.foreign_key_checks=1;"
    11  	run_sql_file $cur/data/db1.prepare.sql $MYSQL_HOST1 $MYSQL_PORT1 $MYSQL_PASSWORD1
    12  	# start DM worker and master
    13  	run_dm_master $WORK_DIR/master $MASTER_PORT $cur/conf/dm-master.toml
    14  	check_rpc_alive $cur/../bin/check_master_online 127.0.0.1:$MASTER_PORT
    15  	run_dm_worker $WORK_DIR/worker1 $WORKER1_PORT $cur/conf/dm-worker1.toml
    16  	check_rpc_alive $cur/../bin/check_worker_online 127.0.0.1:$WORKER1_PORT
    17  
    18  	# operate mysql config to worker
    19  	cp $cur/conf/source1.yaml $WORK_DIR/source1.yaml
    20  	sed -i "/relay-binlog-name/i\relay-dir: $WORK_DIR/worker1/relay_log" $WORK_DIR/source1.yaml
    21  	dmctl_operate_source create $WORK_DIR/source1.yaml $SOURCE_ID1
    22  
    23  	run_dm_ctl $WORK_DIR "127.0.0.1:$MASTER_PORT" \
    24  		"start-task $cur/conf/dm-task.yaml --remove-meta"
    25  	run_dm_ctl_with_retry $WORK_DIR "127.0.0.1:$MASTER_PORT" \
    26  		"query-status test" \
    27  		"\"relayCatchUpMaster\": true" 1
    28  
    29  	# use sync_diff_inspector to check full dump loader
    30  	check_sync_diff $WORK_DIR $cur/conf/diff_config.toml
    31  
    32  	run_sql_file $cur/data/db1.increment.sql $MYSQL_HOST1 $MYSQL_PORT1 $MYSQL_PASSWORD1
    33  
    34  	run_dm_ctl_with_retry $WORK_DIR "127.0.0.1:$MASTER_PORT" \
    35  		"query-status test" \
    36  		"\"result\": true" 2 \
    37  		"\"unit\": \"Sync\"" 1 \
    38  		"\"stage\": \"Running\"" 2
    39  
    40  	# check upstream and downstream data are inconsistent
    41  	run_sql_source1 "select count(1) from foreign_key.t2"
    42  	check_contains "count(1): 4"
    43  	run_sql_tidb_with_retry "select count(2) from foreign_key.t2" "count(2): 5"
    44  }
    45  
    46  cleanup_data foreign_key
    47  # also cleanup dm processes in case of last run failed
    48  cleanup_process $*
    49  run $*
    50  cleanup_process $*
    51  
    52  echo "[$(date)] <<<<<< test case $TEST_NAME success! >>>>>>"