/test-state-machine-client

Rust library to interact with the ic-test-state-machine

Primary LanguageRustApache License 2.0Apache-2.0

Test State Machine Client

This is a client library for the test-state-machine binary from the IC repository: https://github.com/dfinity/ic/tree/master/rs/state_machine_tests

Whenever a new StateMachine is created, the library spawns a child process, which it will communicate with using stdio. If the debug flag is passed in, the binary will print debug information to stderr (as to not interfere with the protocol going over stdin/stdout).

The ic-test-state-machine is an incomplete wrapper around the ic-state-machine-tests library (in the same crate). It was created to decouple the lengthy build process and the many dependencies of the IC repo from clients of the ic-test-state-machine.

Download

The prebuilt binary can be downloaded from https://download.dfinity.systems/ic/$sha/binaries/x86_64-$platform/ic-test-state-machine.gz, where sha is the commit sha of a commit on the master branch of the IC repository and platform is either linux or darwin.

Dependencies

The ic-test-state-machine binary requires openssl 3. On MacOs it can be installed using homebrew by running brew install openssl@3.

Disclaimer

While testing with the ic-test-state-machine might help the development process, it is not a replacement for testing with the actual replica.