2019-05-23 21:50:58 +00:00
|
|
|
# Epoch processing tests
|
|
|
|
|
|
|
|
The different epoch sub-transitions are tested individually with test handlers.
|
|
|
|
The format is similar to block-processing state-transition tests.
|
2019-05-24 16:24:42 +00:00
|
|
|
There is no "change" factor however, the transitions are pure functions with just the pre-state as input.
|
2019-05-23 21:50:58 +00:00
|
|
|
Hence, the format is shared between each test-handler. (See test condition documentation on how to run the tests.)
|
|
|
|
|
|
|
|
## Test case format
|
|
|
|
|
2019-07-30 12:09:20 +00:00
|
|
|
### `meta.yaml`
|
|
|
|
|
2019-05-23 21:50:58 +00:00
|
|
|
```yaml
|
2019-07-30 12:09:20 +00:00
|
|
|
description: string -- Optional description of test case, purely for debugging purposes.
|
|
|
|
Tests should use the directory name of the test case as identifier, not the description.
|
2019-05-28 13:35:00 +00:00
|
|
|
bls_setting: int -- see general test-format spec.
|
2019-05-23 21:50:58 +00:00
|
|
|
```
|
|
|
|
|
2020-10-08 19:02:18 +00:00
|
|
|
### `pre.ssz_snappy`
|
2019-07-30 12:09:20 +00:00
|
|
|
|
2021-03-13 04:42:51 +00:00
|
|
|
An SSZ-snappy encoded `BeaconState`, the state before running the epoch sub-transition.
|
2019-07-30 12:09:20 +00:00
|
|
|
|
2020-10-08 19:02:18 +00:00
|
|
|
### `post.ssz_snappy`
|
2019-07-30 12:09:20 +00:00
|
|
|
|
2022-05-10 17:00:08 +00:00
|
|
|
An SSZ-snappy encoded `BeaconState`, the state after applying the epoch sub-transition. No value if the sub-transition processing is aborted.
|
2019-07-30 12:09:20 +00:00
|
|
|
|
2019-05-23 21:50:58 +00:00
|
|
|
## Condition
|
|
|
|
|
|
|
|
A handler of the `epoch_processing` test-runner should process these cases,
|
2019-06-30 12:32:38 +00:00
|
|
|
calling the corresponding processing implementation (same name, prefixed with `process_`).
|
|
|
|
This excludes the other parts of the epoch-transition.
|
|
|
|
The provided pre-state is already transitioned to just before the specific sub-transition of focus of the handler.
|
2019-05-23 21:50:58 +00:00
|
|
|
|
|
|
|
Sub-transitions:
|
|
|
|
|
2019-06-30 12:32:38 +00:00
|
|
|
- `justification_and_finalization`
|
2021-06-07 13:56:52 +00:00
|
|
|
- `inactivity_updates` (Altair)
|
2021-01-19 13:34:48 +00:00
|
|
|
- `rewards_and_penalties`
|
2019-06-30 12:32:38 +00:00
|
|
|
- `registry_updates`
|
|
|
|
- `slashings`
|
2021-01-27 06:42:50 +00:00
|
|
|
- `eth1_data_reset`
|
|
|
|
- `effective_balance_updates`
|
|
|
|
- `slashings_reset`
|
|
|
|
- `randao_mixes_reset`
|
2023-01-04 10:20:09 +00:00
|
|
|
- `historical_roots_update` (Phase0, Altair, Bellatrix only)
|
|
|
|
- `historical_summaries_update` (Capella)
|
2021-05-22 17:00:55 +00:00
|
|
|
- `participation_record_updates` (Phase 0 only)
|
|
|
|
- `participation_flag_updates` (Altair)
|
|
|
|
- `sync_committee_updates` (Altair)
|
2019-05-23 21:50:58 +00:00
|
|
|
|
|
|
|
The resulting state should match the expected `post` state.
|