Test and Debug
Run Tests
clice has two types of tests: unit tests and integration tests.
- Run unit tests
$ ./build/bin/unit_tests --test-dir="./tests/data"
- Run integration tests
We use pytest to run integration tests. Please refer to pyproject.toml
to install the required Python libraries.
$ pytest -s --log-cli-level=INFO tests/integration --executable=./build/bin/clice
If you use xmake as your build system, you can run the tests directly with xmake:
$ xmake run --verbose unit_tests
$ xmake test --verbose integration_tests/default
Debug
If you want to attach a debugger to clice for debugging, it is recommended to first start clice in socket mode independently, and then connect the client to it.
$ ./build/bin/clice --mode=socket --port=50051
After the server starts, you can connect a client to the server in the following two ways:
- Connect by running a specific test with pytest
You can run a single integration test case to connect to a running clice instance. This is very useful for reproducing and debugging specific scenarios.
$ pytest -s --log-cli-level=INFO tests/integration/test_file_operation.py::test_did_open --mode=socket --port=50051
- Use VS Code for practical testing
You can also connect to a running clice service by configuring the clice-vscode extension, allowing you to debug in a real-world usage scenario.
Download the clice-vscode extension from the Marketplace.
Configure
settings.json
: Create a.vscode/settings.json
file in your project's root directory and add the following content:jsonc{ // Point this to the clice binary you downloaded. "clice.executable": "/path/to/your/clice/executable", // Enable socket mode. "clice.mode": "socket", "clice.port": 50051, // Optional: Set this to an empty string to turn off the clangd. "clangd.path": "", }
Reload Window: After modifying the configuration, execute the
Developer: Reload Window
command in VS Code for the settings to take effect. The extension will automatically connect to the clice instance listening on port 50051.
If you need to modify or debug the clice-vscode extension itself, follow these steps:
Clone and install dependencies:
shell$ git clone https://github.com/clice-io/clice-vscode $ cd clice-vscode $ npm install
Open the extension project with VS Code: Open the
clice-vscode
folder in a new VS Code window.Create debug configuration: In the
clice-vscode
project, also create a.vscode/settings.json
file with the same content as above.Press
F5
. This will launch an [Extension Development Host] window. This is a new VS Code window with your local clice-vscode extension code loaded. Open your C++ project in this new window, and it should automatically connect to clice.