Files
tendermint/test
Erik Grinaker 250c3aa92e test: add end-to-end testing framework (#5435)
Partial fix for #5291. For details, see [README.md](https://github.com/tendermint/tendermint/blob/erik/e2e-tests/test/e2e/README.md) and [RFC-001](https://github.com/tendermint/tendermint/blob/master/docs/rfc/rfc-001-end-to-end-testing.md).

This only includes a single test case under `test/e2e/tests/`, as a proof of concept - additional test cases will be submitted separately. A randomized testnet generator will also be submitted separately, there a currently just a handful of static testnets under `test/e2e/networks/`. This will eventually replace the current P2P tests and run in CI.
2020-10-05 09:35:01 +00:00
..
2020-07-01 08:36:16 +00:00

Tendermint Tests

The unit tests (ie. the go test s) can be run with make test. The integration tests can be run with make test_integrations.

Running the integrations test will build a docker container with local version of tendermint and run the following tests in docker containers:

  • go tests, with --race
    • includes test coverage
  • app tests
    • kvstore app over socket
    • counter app over socket
    • counter app over grpc
  • persistence tests
    • crash tendermint at each of many predefined points, restart, and ensure it syncs properly with the app
  • p2p tests
    • start a local kvstore app testnet on a docker network (requires docker version 1.10+)
    • send a tx on each node and ensure the state root is updated on all of them
    • crash and restart nodes one at a time and ensure they can sync back up (via fastsync)
    • crash and restart all nodes at once and ensure they can sync back up
    • restart each nodes with double_sign_check_height and ensure panic if the same consensus key was used to sign in double_sign_check_height blocks