This repository contains the execution of the EF standard execution layer tests.
The Ethereum Foundation provides a suite of official tests to verify the compliance of EVM clients. Passing all these tests qualifies allows a client to gain confidence on his execution layer. For further information, please refer to the official documentation.
Kakarot is an EVM running within CairoVM, coupled with a RPC, which would make it possible to run these tests using the Ethereum Foundation runner (retesteth). However, in order to limit the possible number of interactions and avoid adding failing points, we develop our own simplified test runner based on Reth's ef-tests runner.
- nextest: to install nextest, run
cargo install cargo-nextest --locked
- A GitHub token in your
.env
file:- Copy the
.env.example
file to a.env
file - Create a GitHub token and add it inside the
.env
file (make sure you have selected thepublic_repo
scope in therepo
category).
- Copy the
In order to set up the repo and start the testing, please follow the below instructions:
- run
make setup
- run
make fetch-dump
To run the whole test suite, execute make ef-tests
To run a specific test or
list of tests, execute make target=regular_expression ef-test
where
regular_expression allows you to filter on the specific tests you want to run.
This repository is heavily inspired by https://github.com/paradigmxyz/reth/tree/main/testing/ef-tests, it uses some code snippets from the Reth codebase and when possible, imports modules and helpers from it.