소스 정보
- 저장소
- ethereum/execution-specs
- 최근 소스 활동
- 2026년 10월 5일 21:03
- 감지된 SKILL.md 언어
- 영어
- 스타
- 1,208
- 포크
- 527
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
SKILL.md 표시 중
SKILL.md
소스 지침 · 읽기 전용 미리보기- name
- eip-checklist
- description
- Track EIP test coverage with the repository checklist system.
# EIP Checklist
Guide for using the EIP testing checklist system to track test coverage. Run this skill when working on EIP test coverage or checklists.
## What It Is
The `EIPChecklist` class (in `execution_testing.checklists.eip_checklist`) provides a hierarchical marker system for tagging tests with what aspect of an EIP they cover. Categories include:
- `General`, `Opcode`, `Precompile`, `SystemContract`, `TransactionType`
- `BlockHeaderField`, `BlockBodyField`, `GasCostChanges`, `GasRefundsChanges`
- `ExecutionLayerRequest`, `BlobCountChanges`
Each category has deep sub-items (e.g., `EIPChecklist.Opcode.Test.GasUsage.Normal`).
## Usage in Tests
```python
@EIPChecklist.TransactionType.Test.IntrinsicValidity.GasLimit.Exact()
def test_exact_intrinsic_gas(state_test: StateTestFiller):
...
# Multi-EIP coverage:
@EIPChecklist.TransactionType.Test.Signature.Invalid.V.Two(eip=[2930])
def test_invalid_v(state_test: StateTestFiller):
...
```
## Generating Checklists
Run `uv run checklist` to generate coverage reports. Template at `docs/writing_tests/checklist_templates/eip_testing_checklist_template.md`.
## Marking Items as Externally Covered or N/A
Create `eip_checklist_external_coverage.txt` in the EIP test directory:
```
general/code_coverage/eels = Covered by EELS test suite
```
Create `eip_checklist_not_applicable.txt` for inapplicable items:
```
system_contract = EIP-7702 does not introduce a system contract
precompile/ = EIP-7702 does not introduce a precompile
```
(trailing `/` marks entire category as N/A)
## Code Coverage Items
`general/code_coverage/missed_lines` claims that every remaining miss is acceptable; it is not a place to park gaps.
- Measure branches: `uv run fill --cov=ethereum --cov-branch --cov-report=term-missing <eip test dir> --until <Fork>`. A line report counts an `if` whose false path never ran as covered, and without `--until` a fork under development fills nothing. Before calling a miss uncovered, rerun it against every suite that can reach that code.
- A missed branch is a test to write. Only two kinds of miss are acceptable: code that runs only outside `fill` (such as block validation in `fork.py`, run by `just json-loader`), and code the spec makes unreachable.
- An unreachable claim cites the guard that rules the branch out and a construction that was tried and failed, ideally by a second person or agent. "Nothing on mainnet does this" is not a reason while custom predeploy code (`pre_alloc_mutable`) or a crafted transaction reaches the branch at fill time.
- The entry lists only what is still missed, why, and a re-verify command that has been run as written; never covered branches or test names, which go stale. Re-derive the entry whenever the code it reasons about changes.
## Completed Examples
Reference these for patterns:
- `tests/prague/eip7702_set_code_tx/` — comprehensive checklist for a transaction type EIP
- `tests/osaka/eip7951_p256verify_precompiles/` — precompile checklist example
## References
See `docs/writing_tests/checklist_templates/` for templates and detailed documentation.
GitHub에서 보기