2019-05-24 01:03:21 +02:00
|
|
|
# Sanity slots testing
|
|
|
|
|
|
|
|
Sanity tests to cover a series of one or more empty-slot transitions being processed, aiming to cover common changes.
|
|
|
|
|
|
|
|
## Test case format
|
|
|
|
|
2019-07-30 15:06:15 +02:00
|
|
|
### `meta.yaml`
|
|
|
|
|
2019-05-24 01:03:21 +02:00
|
|
|
```yaml
|
2019-07-30 15:06:15 +02:00
|
|
|
description: string -- Optional. Description of test case, purely for debugging purposes.
|
2019-05-28 15:35:00 +02:00
|
|
|
bls_setting: int -- see general test-format spec.
|
2019-05-24 01:03:21 +02:00
|
|
|
```
|
|
|
|
|
2019-07-30 15:06:15 +02:00
|
|
|
|
|
|
|
### `pre.yaml`
|
|
|
|
|
|
|
|
A YAML-encoded `BeaconState`, the state before running the transitions.
|
|
|
|
|
2019-07-31 02:16:41 +02:00
|
|
|
Also available as `pre.ssz`.
|
2019-07-30 15:06:15 +02:00
|
|
|
|
|
|
|
|
|
|
|
### `slots.yaml`
|
|
|
|
|
|
|
|
An integer. The amount of slots to process (i.e. the difference in slots between pre and post), always a positive number.
|
|
|
|
|
|
|
|
### `post.yaml`
|
|
|
|
|
|
|
|
A YAML-encoded `BeaconState`, the state after applying the transitions.
|
|
|
|
|
2019-07-31 02:16:41 +02:00
|
|
|
Also available as `post.ssz`.
|
2019-07-30 15:06:15 +02:00
|
|
|
|
|
|
|
|
|
|
|
### Processing
|
|
|
|
|
2019-06-30 15:03:50 +02:00
|
|
|
The transition with pure time, no blocks, is known as `process_slots(state, slot)` in the spec.
|
2019-05-24 01:03:21 +02:00
|
|
|
This runs state-caching (pure slot transition) and epoch processing (every E slots).
|
|
|
|
|
2019-06-30 15:03:50 +02:00
|
|
|
To process the data, call `process_slots(pre, pre.slot + N)`.
|
2019-05-24 01:03:21 +02:00
|
|
|
|
|
|
|
## Condition
|
|
|
|
|
|
|
|
The resulting state should match the expected `post` state.
|