| name | run-sdk-tests |
| description | Run the Restate SDK conformance test suite locally against this SDK's Docker image. Use when the user wants to run sdk tests, run conformance tests, or verify an implementation. |
| user-invocable | true |
Running SDK Conformance Tests Locally
Quick start
./.tools/run-sdk-tests.sh
./.tools/run-sdk-tests.sh --skip-build
./.tools/run-sdk-tests.sh --skip-build --test-suite=default --test-name=Combinators
Prerequisites
- Java 21+
- Podman or Docker
What the script does
- Reads the suite version from
.github/workflows/integration.yaml (single source of truth)
- Builds the service image using Jib (
./gradlew :test-services:jibBuildTar โ podman/docker load)
- Downloads and caches
sdk-tests.jar in tmp/ (version-pinned)
- Pulls the Restate runtime image explicitly
- Runs
java -jar sdk-tests.jar run ... directly on the host
Jib + Podman note
Jib's jibBuildTar creates a tarball which is then loaded via podman load / docker load. This avoids needing a Docker socket. If jibDockerBuild is needed instead, set up the Podman Docker socket compatibility:
export DOCKER_HOST=unix:///run/user/$(id -u)/podman/podman.sock
Key flags (passed through to the runner)
| Flag | Purpose |
|---|
--test-suite=default | Which suite to run (default, alwaysSuspending, threeNodes, etc.) |
--test-name=ClassName | Run only one test class (requires --test-suite) |
--exclusions-file=path | YAML file listing tests to skip |
Reading results
Logs are written to tmp/test-report/<timestamp>/<suite>/<TestClass>/:
testRunner.log โ client-side request/response logs
runtime_0.log โ Restate server log
default-service_0.log โ SDK service container log