Skip to content

kkrt-labs/ef-tests

Repository files navigation

About

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.

Requirements

  • 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 the public_repo scope in the repo category).
  • Install jq from its official website

Setup

In order to set up the repo and start the testing, please follow the below instructions:

  • run make setup
  • run make setup-kakarot

Test execution

To run the whole test suite, execute make ef-test To run a specific test or list of tests, execute cargo test regular_expression where regular_expression allows you to filter on the specific tests you want to run.

Acknowledgement

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.