Skip to main content
Version: Nightly

Sqlness Test

Introduction

SQL is an important user interface for GreptimeDB. We have a separate test suite for it (named sqlness).

Sqlness manual

Case file

Sqlness has two types of file

  • .sql: test input, SQL only
  • .result: expected test output, SQL and its results

The .result file is the expected execution output. If you see .result files changed, it means the test gets a different result and indicates it may fail. You should check the change logs to solve the problem.

You only need to write test SQL in the .sql file, and run the test.

Case organization

The root dir of input cases is tests/cases. It contains several sub-directories stand for different test modes. E.g., standalone/ contains all the tests to run under greptimedb standalone start mode.

Under the first level of sub-directory (e.g. the cases/standalone), you can organize your cases as you like. Sqlness walks through every file recursively and runs them.

Run the test

Unlike other tests, this harness is in a binary target form. You can run it with

cargo run --bin sqlness-runner 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 whether any .result files changed. If not, congratulations, the test is passed 🥳!

Run a specific test

cargo sqlness bare -t your_test

The -t or --test-filter option accepts a regex string. Sqlness examines case names in the format of env:case.