pokt-network / pocket-core

Official implementation of the Pocket Network Protocol
http://www.pokt.network
MIT License
211 stars 103 forks source link

Automated e2e Testing #1482

Closed iajrz closed 1 year ago

iajrz commented 2 years ago

This proposal suggests adding an in-repo automated suite of e2e tests that can be expanded upon and help reduce the effort needed to increase the confidence of a specific release.

Goals

Non-goals

Components:

Details

The code to be introduced would depend on code from pocket-core, but would not affect any builds. The complexity introduced would be self-contained in its packages, which would live under the e2e folder at the top level.

The Network Launcher compiles pocket-core, establishes datadirs for all the defined nodes, and starts the network. It contains in runtime the information defined in the network configuration.

Network configurations allow defining a genesis file, node configurations, and hold the private keys for the actors of the network.

The Pocket Client and Pocket Server can be run with any command-line arguments. We get to read their full stdout and stderr, which allows for inspecting state transitions as evidenced by, for example, the debug log.

The tests are defined in a twofold process: