/mysql-vector-tester

A Golang implementation of MySQL Vector Store Test Framework

Primary LanguageGoApache License 2.0Apache-2.0

MySQL Tester

This is a golang implementation of MySQL Test Framework.

Requirements

  • All the tests should be put in t, take t/example.test as an example.
  • All the expected test results should be put in r. Result file has the same file name with the corresponding test file, but with a .result file suffix, take r/example.result as an examle.

Test Vector Store on Local

  1. Start up a local TiDB cluster with TiUP

    tiup playground --without-monitor \
        --db.binpath /path/to/tidb-server \
        --db.config /path/to/tidb-server/config.toml \
        --kv.binpath /path/to/tikv-server \
        --tiflash.binpath /path/to/tiflash
  2. Build the mysql-tester binary

    make build
  3. Run the test cases in t directory

    make run-vector-test
  4. Update the test case

    Update the test case in t directory, and run the following command to update the expected result in r directory.

    make update-vector-test

Advanced Usage

Basic usage:

Usage of ./mysql-tester:
  -all
        run all tests
  -host string
        The host of the TiDB/MySQL server. (default "127.0.0.1")
  -log-level string
        The log level of mysql-tester: info, warn, error, debug. (default "error")
  -params string
        Additional params pass as DSN(e.g. session variable)
  -passwd string
        The password for the user.
  -port string
        The listen port of TiDB/MySQL server. (default "4000")
  -record
        Whether to record the test output to the result file.
  -reserve-schema
        Reserve schema after each test
  -retry-connection-count int
        The max number to retry to connect to the database. (default 120)
  -user string
        The user for connecting to the database. (default "root")
  -xunitfile string
        The xml file path to record testing results.

By default, it connects to the TiDB/MySQL server at 127.0.0.1:4000 with root and no passward:

./mysql-tester # run all the tests
./mysql-tester example # run a specified test
./mysql-tester example1 example2   example3 # seperate different tests with one or more spaces

For more details about how to run and write test cases, see the Wiki page.

Contributing

Contributions are welcomed and greatly appreciated. You can help by:

  • writing user document about how to use this framework
  • triaging issues
  • submitting new test cases
  • fixing bugs of this test framework
  • adding features that mysql test has but this implementation does not
  • ...

In case you have any problem, discuss with us in the tidbcommunity slack workspace.

See CONTRIBUTING.md for details.

License

MySQL Tester is under the Apache 2.0 license. See the LICENSE file for details.