mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2026-01-03 20:02:54 +00:00
* refactor: restructure sqlness to support multiple envs and extract common utils Signed-off-by: WenyXu <wenymedia@gmail.com> * chore(ci): update sqlness cmd Signed-off-by: WenyXu <wenymedia@gmail.com> * chore: add comments Signed-off-by: WenyXu <wenymedia@gmail.com> * fix: error fmt Signed-off-by: WenyXu <wenymedia@gmail.com> * fix: only reconnect mysql and pg client Signed-off-by: WenyXu <wenymedia@gmail.com> * chore: apply suggestions Signed-off-by: WenyXu <wenymedia@gmail.com> --------- Signed-off-by: WenyXu <wenymedia@gmail.com>
51 lines
1.8 KiB
Markdown
51 lines
1.8 KiB
Markdown
# Sqlness Test
|
|
|
|
## Sqlness manual
|
|
|
|
### Case file
|
|
|
|
Sqlness has two types of file:
|
|
|
|
- `.sql`: test input, SQL only
|
|
- `.result`: expected test output, SQL and its results
|
|
|
|
`.result` is the output (execution result) file. If you see `.result` files is changed,
|
|
it means this test gets a different result and indicates it fails. You should
|
|
check change logs to solve the problem.
|
|
|
|
You only need to write test SQL in `.sql` file, and run the test.
|
|
|
|
### Case organization
|
|
|
|
The root dir of input cases is `tests/cases`. It contains several subdirectories stand for different test
|
|
modes. E.g., `standalone/` contains all the tests to run under `greptimedb standalone start` mode.
|
|
|
|
Under the first level of subdirectory (e.g. the `cases/standalone`), you can organize your cases as you like.
|
|
Sqlness walks through every file recursively and runs them.
|
|
|
|
### Kafka WAL
|
|
|
|
Sqlness supports Kafka WAL. You can either provide a Kafka cluster or let sqlness to start one for you.
|
|
|
|
To run test with kafka, you need to pass the option `-w kafka`. If no other options are provided, sqlness will use `conf/kafka-cluster.yml` to start a Kafka cluster. This requires `docker` and `docker-compose` commands in your environment.
|
|
|
|
Otherwise, you can additionally pass the your existing kafka environment to sqlness with `-k` option. E.g.:
|
|
|
|
```shell
|
|
cargo sqlness bare -w kafka -k localhost:9092
|
|
```
|
|
|
|
In this case, sqlness will not start its own kafka cluster and the one you provided instead.
|
|
|
|
## Run the test
|
|
|
|
Unlike other tests, this harness is in a binary target form. You can run it with:
|
|
|
|
```shell
|
|
cargo sqlness bare
|
|
```
|
|
|
|
It automatically finishes the following procedures: compile `GreptimeDB`, start it, grab tests and feed it to
|
|
the server, then collect and compare the results. You only need to check if the `.result` files are changed.
|
|
If not, congratulations, the test is passed 🥳!
|