This folder contains all tests which relies on external processes such as TiDB.
-
The following executables must be copied or linked into these locations:
bin/tidb-server
bin/tikv-server
bin/pd-server
bin/tiflash
bin/minio
bin/mc
The versions must be ≥2.1.0.
Only some tests requires
minio
/mc
which can be downloaded from the official site, you can skip them if you don't need to run those cases.You can use
tiup
to download binaries related to TiDB cluster, and then link them to thebin
directory:cluster_version=v8.1.0 # change to the version you need tiup install tidb:$cluster_version tikv:$cluster_version pd:$cluster_version tiflash:$cluster_version ln -s ~/.tiup/components/tidb/$cluster_version/tidb-server bin/tidb-server ln -s ~/.tiup/components/tikv/$cluster_version/tikv-server bin/tikv-server ln -s ~/.tiup/components/pd/$cluster_version/pd-server bin/pd-server ln -s ~/.tiup/components/tiflash/$cluster_version/tiflash/tiflash bin/tiflash
-
make build_for_lightning_integration_test
make server
to build the latest TiDB server if your test requires it. -
The following programs must be installed:
mysql
(the CLI client)curl
openssl
wget
lsof
-
The user executing the tests must have permission to create the folder
/tmp/lightning_test
. All test artifacts will be written into this folder.
Run make lightning_integration_test
to execute all the integration tests.
- Logs will be written into
/tmp/lightning_test
directory.
Run tests/run.sh --debug
to pause immediately after all servers are started.
If you only want to run some tests, you can use:
TEST_NAME="lightning_gcs lightning_view" lightning/tests/run.sh
Case names are separated by spaces.
- New integration tests can be written as shell scripts in
tests/TEST_NAME/run.sh
.TEST_NAME
should start withlightning_
.- The script should exit with a nonzero error code on failure.
- Add TEST_NAME to existing group in run_group_lightning_tests.sh(Recommended), or add a new group for it.
- If you add a new group, the name of the new group must be added to CI lightning-integration-test.
Several convenient commands are provided in utils:
run_sql <SQL>
— Executes an SQL query on the TiDB databaserun_lightning [CONFIG]
— Startstidb-lightning
usingtests/TEST_NAME/CONFIG.toml
check_contains <TEXT>
— Checks if the previousrun_sql
result contains the given text (in-E
format)check_not_contains <TEXT>
— Checks if the previousrun_sql
result does not contain the given text (in-E
format)