79 lines
2.2 KiB
Bash
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
|