Files
prysm/testing/spectest
Radosław Kapka 3f5c4df7e0 Optimize processing of slashings (#14990)
* Calculate max epoch and churn for slashing once

* calculate once for proposer and attester slashings

* changelog <3

* introduce struct

* check if err is nil in ProcessVoluntaryExits

* rename exitData to exitInfo and return from functions

* cleanup + tests

* cleanup after rebase

* Potuz's review

* pre-calculate total active balance

* remove `slashValidatorFunc` closure

* Avoid a second validator loop

    🤖 Generated with [Claude Code](https://claude.ai/code)

    Co-Authored-By: Claude <noreply@anthropic.com>

* remove balance parameter from slashing functions

---------

Co-authored-by: terence tsao <terence@prysmaticlabs.com>
Co-authored-by: potuz <potuz@prysmaticlabs.com>
2025-09-10 18:14:11 +00:00
..
2025-07-01 21:40:18 +00:00

Spec Tests

Spec testing vectors: https://github.com/ethereum/consensus-spec-tests

To run all spectests:

bazel test //... --test_tag_filters=spectest

Adding new tests

New tests must adhere to the following filename convention:

{mainnet/minimal/general}/$fork__$package__$test_test.go

An example test is the phase0 epoch processing test for effective balance updates. This test has a spectest path of {mainnet, minimal}/phase0/epoch_processing/effective_balance_updates/pyspec_tests. There are tests for mainnet and minimal config, so for each config we will add a file by the name of phase0__epoch_processing__effective_balance_updates_test.go since the fork is phase0, the package is epoch_processing, and the test is effective_balance_updates.

Running nightly spectests

Since PR 15312, Prysm has support to download "nightly" spectests from github via a starlark rule configuration by environment variable. Set --repo_env=CONSENSUS_SPEC_TESTS_VERSION=nightly when running spectest to download the "nightly" spectests. Note: A GITHUB_TOKEN environment variable is required to be set. The github token must be a fine grained token.

bazel test //... --test_tag_filters=spectest --repo_env=CONSENSUS_SPEC_TESTS_VERSION=nightly