-
Notifications
You must be signed in to change notification settings - Fork 19
Testing
This page assumes go-ethereum has been configured according to the Developers Guide. All commands (unless stated otherwise) are assumed to be run from $GOPATH/src/github.com/ethereum/go-ethereum
See Travis or Coveralls for status.
Test the full codebase locally by changing to the repository directory and running
test ./...
Integration tests for Go are included in the tests
directory and can be run with standard go testing (i.e. go test
). To run all the integration tests simply run:
go test ./tests/
Alternatively, there is a CLI application, ethtest
who can be used to run these tests without Go. The binary can be built from ./cmd/ethtest
and then run from anywhere (such as the root directory of the test files). Some examples:
Run all tests from current directory, looking in their respective sub directories for json files:
ethtest
Run all VM json tests from ./VMTests/ directory
ethtest --test "vm" --file "./VMTests/"
Run all tests in a cousin directory supplied by environment variable
ETHEREUM_TEST_PATH="../../tests/files" ethtest --test "all"
Run a single transaction test
ethtest --test "tx" --file "./TransactionTests/ttTransactionTest.json"
Flags:
--test "all" Test type (string): VMTests, TransactionTests, StateTests, BlockTests
--file "." Test file or directory. Directories are searched for .json files 1 level deep [$ETHEREUM_TEST_PATH]
--continue Continue running tests on error (true) or exit immediately (false)
go test ./tests/vm_test.go
go test ./tests/state_test.go
go test ./tests/transaction_test.go
go test ./tests/block_test.go
- Load test JSON with
geth blocktest <pathToTheTestRepo>/BlockTests/bcRPC_API_Test.json RPC_API_Test rpc
- Run rpc-tests (https://github.com/ethereum/rpc-tests#usage)