Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func RemoveUnsupportedElems ¶
RemoveUnsupportedElems removes some elements that not all clients support. Once the relenvant json-fields have been added, we can remove things from this method
Types ¶
type AlethVM ¶
type AlethVM struct {
// contains filtered or unexported fields
}
AlethVM is s Evm-interface wrapper around the `testeth` binary, based on Aleth.
func NewAlethVM ¶
func (*AlethVM) Copy ¶
feed reads from the reader, does some geth-specific filtering and outputs items onto the channel
func (*AlethVM) GetStateRoot ¶
GetStateRoot runs the test and returns the stateroot
type BesuBatchVM ¶
type BesuBatchVM struct {
// contains filtered or unexported fields
}
BesuBatchVM is s Evm-interface wrapper around the `evmtool` binary, based on Besu. The BatchVM spins up one 'master' instance of the VM, and uses that to execute tests
func NewBesuBatchVM ¶
func NewBesuBatchVM(path string) *BesuBatchVM
func (*BesuBatchVM) Close ¶
func (vm *BesuBatchVM) Close()
func (*BesuBatchVM) Copy ¶
func (evm *BesuBatchVM) Copy(out io.Writer, input io.Reader)
Copy feed reads from the reader, does some client-specific filtering and outputs BesuBatchVM onto the channel
func (*BesuBatchVM) GetStateRoot ¶
func (vm *BesuBatchVM) GetStateRoot(path string) (string, error)
func (*BesuBatchVM) Name ¶
func (evm *BesuBatchVM) Name() string
func (*BesuBatchVM) RunStateTest ¶
RunStateTest implements the Evm interface
type BesuVM ¶
type BesuVM struct {
// contains filtered or unexported fields
}
BesuVM is s Evm-interface wrapper around the `evmtool` binary, based on Besu.
type Evm ¶
type Evm interface { // RunStateTest runs the statetest on the underlying EVM, and writes // the output to the given writer RunStateTest(path string, writer io.Writer, speedTest bool) (string, error) // GetStateRoot runs the test and returns the stateroot GetStateRoot(path string) (string, error) // Copy takes the 'raw' output from the VM, and writes the // canonical output to the given writer Copy(out io.Writer, input io.Reader) //Open() // Preparare for execution Close() // Tear down processes Name() string }
The Evm interface represents external EVM implementations, which can be e.g. docker instances or binaries
type GethEVM ¶
type GethEVM struct {
// contains filtered or unexported fields
}
GethEVM is s Evm-interface wrapper around the `evm` binary, based on go-ethereum.
func NewGethEVM ¶
func (*GethEVM) Copy ¶
feed reads from the reader, does some geth-specific filtering and outputs items onto the channel
func (*GethEVM) GetStateRoot ¶
GetStateRoot runs the test and returns the stateroot This currently only works for non-filled statetests. TODO: make it work even if the test is filled. Either by getting the whole trace, or adding stateroot to exec std output even in success-case
type NethermindVM ¶
type NethermindVM struct {
// contains filtered or unexported fields
}
NethermindVM is s Evm-interface wrapper around the `nethtest` binary, based on Nethermind.
func NewNethermindVM ¶
func NewNethermindVM(path string) *NethermindVM
func (*NethermindVM) Close ¶
func (vm *NethermindVM) Close()
func (*NethermindVM) Copy ¶
func (evm *NethermindVM) Copy(out io.Writer, input io.Reader)
feed reads from the reader, does some geth-specific filtering and outputs items onto the channel
func (*NethermindVM) GetStateRoot ¶
func (evm *NethermindVM) GetStateRoot(path string) (string, error)
GetStateRoot runs the test and returns the stateroot
func (*NethermindVM) Name ¶
func (evm *NethermindVM) Name() string
func (*NethermindVM) RunStateTest ¶
RunStateTest implements the Evm interface
type ParityVM ¶
type ParityVM struct {
// contains filtered or unexported fields
}
func NewParityVM ¶
func (*ParityVM) GetStateRoot ¶
GetStateRoot runs the test and returns the stateroot