One consensus test generator
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
winsvega a0ae216262
Merge pull request #39 from lithp/patch-1
5 years ago
cmake Rollback the change to use LevelDB from hunter, let's use it always from system for now. 5 years ago
cpp-ethereum@60a2fe9157 Update submodules so that stShift tests are executed 5 years ago
doc Snapshot download now is merged to develop, update instructions accordingly 5 years ago
evmjit@e5d4a82d3d EVM-C: Remove get_code_status() 5 years ago
hera@2645bd4d18 Update Hera 5 years ago
homebrew Additional paths for dylib path fixup for macOS ZIP builds. 7 years ago
scripts Update Dockerfile for eth 5 years ago
test Suggest the right way to write -1 in YAML 5 years ago
.clang-format Add clang-format config file 6 years ago
.editorconfig Add .editorconfig file 6 years ago
.gitignore Scripts for external projects 6 years ago
.gitmodules Adding cpp-ethereum as a submodule 5 years ago
.travis.yml Tracis CI: Disable macOS builds 5 years ago
.ycm_extra_conf.py Add YCM config 6 years ago
CMakeLists.txt Adding cpp-ethereum as a submodule 5 years ago
CODING_STYLE.md Replace some files and directories with symlinks 5 years ago
CONTRIBUTING.md Fix git clang-format options description 6 years ago
LICENSE Added missing GPLv3 LICENSE file. 7 years ago
README.md Add deprecation notice to the README 5 years ago
appveyor.yml AppVeyor: Clean up config 5 years ago
circle.yml Omit GCC build 5 years ago
codecov.yml codecov: Clean up PR comment 6 years ago
eth Replace more directories with symbolic links to cpp-ethereum submodule 5 years ago
ethkey Replace more directories with symbolic links to cpp-ethereum submodule 5 years ago
ethvm Replace more directories with symbolic links to cpp-ethereum submodule 5 years ago
libdevcore Replace some files and directories with symlinks 5 years ago
libdevcrypto Replace more directories with symbolic links to cpp-ethereum submodule 5 years ago
libethash Replace more directories with symbolic links to cpp-ethereum submodule 5 years ago
libethashseal Replace more directories with symbolic links to cpp-ethereum submodule 5 years ago
libethcore Replace more directories with symbolic links into cpp-ethereum 5 years ago
libethereum Replace more directories with symbolic links into cpp-ethereum 5 years ago
libevm Replace more directories with symbolic links into cpp-ethereum 5 years ago
libp2p Replace more directories with symbolic links into cpp-ethereum 5 years ago
libweb3jsonrpc Replace more directories with symbolic links to cpp-ethereum submodule 5 years ago
libwebthree Replace more directories with symbolic links to cpp-ethereum submodule 5 years ago
refilltests refill tests 7 years ago
rlp Replace more directories with symbolic links to cpp-ethereum submodule 5 years ago
sanitizer-blacklist.txt Added stray README.md and sanitizizer-blacklist.txt files. 7 years ago
snapcraft.yaml Update snapcraft config 6 years ago
utils Replace more directories with symbolic links to cpp-ethereum submodule 5 years ago

README.md

testeth - Ethereum consensus test generator.

This repository contains testeth, an Ethereum consensus test generator.

This repository is out of date and should be closed. Anyone wanting to use testeth should instead build and run it from the ethereum/aleth repository.

Contact

Gitter GitHub Issues

Difference from cpp-ethereum

Currently the repository is almost identical to cpp-ethereum

  • testeth will drop MacOS and Windows supports
  • testeth will drop commands except eth and testeth
  • testeth will drop key management features except needed for generating tests

However, eth command in testeth will keep the ability to sync the main network. It's important to generate tests using the code compliant with the main network.

Building from source

Get the source code

Git and GitHub is used to maintain the source code. Clone the repository by:

git clone --recursive https://github.com/ethereum/testeth.git
cd testeth

The --recursive option is important. It orders git to clone additional submodules which are required to build the project. If you missed it you can correct your mistake with command git submodule update --init.

Install CMake

CMake is used to control the build configuration of the project. Quite recent version of CMake is required (at the time of writing 3.4.3 is the minimum). We recommend installing CMake by downloading and unpacking the binary distribution of the latest version available on the CMake download page.

The CMake package available in your operating system can also be installed and used if it meets the minimum version requirement.

Alternative method

The repository contains the scripts/install_cmake.sh script that downloads a fixed version of CMake and unpacks it to the given directory prefix. Example usage: scripts/install_cmake.sh --prefix /usr/local.

Install dependencies (Linux, macOS)

The following libraries are required to be installed in the system in their development variant:

  • leveldb

They usually can be installed using system-specific package manager. Examples for some systems:

Operating system Installation command
Debian-based sudo apt-get install libleveldb-dev
RedHat-based dnf install leveldb-devel
macOS brew install leveldb

We also support a "one-button" shell script scripts/install_deps.sh which attempts to aggregate dependencies installation instructions for Unix-like operating systems. It identifies your distro and installs the external packages. Supporting the script is non-trivial task so please inform us if it does not work for your use-case.

Build

Configure the project build with the following command. It will create the build directory with the configuration.

mkdir build; cd build  # Create a build directory.
cmake ..               # Configure the project.
cmake --build .        # Build all default targets.

Testing

To run the tests, make sure you clone https://github.com/ethereum/tests and point the environment variable ETHEREUM_TEST_PATH to that path.

After building,

ctest -j4

will run the tests with some parallelism.

You can also add testeth options (that come after the separator --) like

ctest -j4 -DTESTETH_ARGS="--verbosity 5"

To see the list of options,

test/testeth --help

Documentation

License

License

All contributions are made under the GNU General Public License v3. See LICENSE.