Files
tidb/dumpling/tests/rows/run.sh

79 lines
2.2 KiB
Bash

#!/bin/sh
#
# Copyright 2020 PingCAP, Inc. Licensed under Apache-2.0.
set -eu
cur=$(cd `dirname $0`; pwd)
DB_NAME="rows"
TABLE_NAME="t"
# drop database on tidb
export DUMPLING_TEST_PORT=4000
run_sql "drop database if exists \`$DB_NAME\`;"
# drop database on mysql
export DUMPLING_TEST_PORT=3306
run_sql "drop database if exists \`$DB_NAME\`;"
# build data on mysql
run_sql "create database \`$DB_NAME\` DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;"
run_sql "create table \`$DB_NAME\`.\`$TABLE_NAME\` (id int unsigned not null auto_increment primary key, a varchar(24));"
# insert 100 records
run_sql_file "$cur/data/rows.t.000000000.sql"
# make sure the estimated count is accurate
run_sql "analyze table \`$DB_NAME\`.\`$TABLE_NAME\`"
# dumping
export DUMPLING_TEST_DATABASE=$DB_NAME
run_dumpling --rows 10 --loglevel debug
# the dumping result is expected to be:
# 10 files for insertion
file_num=$(find "$DUMPLING_OUTPUT_DIR" -maxdepth 1 -iname "$DB_NAME.$TABLE_NAME.*.sql" | wc -l)
if [ "$file_num" -ne 10 ]; then
echo "obtain file number: $file_num, but expect: 10" && exit 1
fi
cat "$cur/conf/lightning.toml"
# use lightning import data to tidb
run_lightning $cur/conf/lightning.toml
# check mysql and tidb data
check_sync_diff $cur/conf/diff_config.toml
# test dumpling with both rows and filesize
rm -rf "$DUMPLING_OUTPUT_DIR"
run_dumpling --rows 10 --filesize 140B --loglevel debug
# the dumping result is expected to be:
# 50 files for insertion
file_num=$(find "$DUMPLING_OUTPUT_DIR" -maxdepth 1 -iname "$DB_NAME.$TABLE_NAME.*.sql" | wc -l)
if [ "$file_num" -ne 50 ]; then
echo "obtain file number: $file_num, but expect: 50" && exit 1
fi
for i in `seq 0 9`
do
r=$(printf "%02d" $i)
for j in `seq 0 4`
do
file_name="$DUMPLING_OUTPUT_DIR/$DB_NAME.$TABLE_NAME.0000000${r}000${j}.sql"
if [ ! -f "$file_name" ]; then
echo "file $file_name doesn't exist, which is not expected" && exit 1
fi
done
done
# drop database on tidb
export DUMPLING_TEST_PORT=4000
run_sql "drop database if exists \`$DB_NAME\`;"
cat "$cur/conf/lightning.toml"
# use lightning import data to tidb
run_lightning $cur/conf/lightning.toml
# check mysql and tidb data
check_sync_diff $cur/conf/diff_config.toml