Skip to content

Commit d593933

Browse files
committed
fix(docs): tox
1 parent b7bb950 commit d593933

File tree

4 files changed

+36
-31
lines changed

4 files changed

+36
-31
lines changed

docs/checklist_templates/eip_testing_checklist_template.md

Lines changed: 25 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ Depending on the changes introduced by an EIP, the following template is the min
55
## General
66

77
- [ ] Code coverage
8-
- [ ] Run produced tests against [EELS](https://github.com/ethereum/execution-specs) and verify that line code coverage of new added lines for the EIP is 100%, with only exeptions being unreachable code lines.
8+
- [ ] Run produced tests against [EELS](https://github.com/ethereum/execution-specs) and verify that line code coverage of new added lines for the EIP is 100%, with only exceptions being unreachable code lines.
99
- [ ] Run coverage on the test code itself (as a basic logic sanity check), i.e., `uv run fill --cov tests`.
1010
- [ ] Optional - Run against a second client and verify sufficient code coverage over new code added for the EIP.
1111
- [ ] Fuzzing
@@ -32,9 +32,9 @@ The EIP introduces one or more new opcodes to the EVM.
3232
- [ ] 2**64 bytes expansion
3333
- [ ] 2**256-1 bytes expansion (Should always result in Out-of-gas)
3434
- [ ] Stack
35-
- [ ] Overflows/Underflows
36-
- [ ] If the opcode pushes one or more items to the stack, and the opcode pushes more elements than it pops, verify that the opcode execution results in exeptional abort when pushing elements to the stack would result in the stack having more than 1024 elements.
37-
- [ ] If the opcode pops one or more items to the stack, or it has a minimum stack height of one or more (e.g. Op.DUPN requires a minimum amount of elements in the stack even when it does not pop any element from it), verify that the opcode execution results in exeptional abort then stack has 1 less item than the minimum stack height expected.
35+
- [ ] Overflow/Underflow
36+
- [ ] If the opcode pushes one or more items to the stack, and the opcode pushes more elements than it pops, verify that the opcode execution results in exceptional abort when pushing elements to the stack would result in the stack having more than 1024 elements.
37+
- [ ] If the opcode pops one or more items to the stack, or it has a minimum stack height of one or more (e.g. Op.DUPN requires a minimum amount of elements in the stack even when it does not pop any element from it), verify that the opcode execution results in exceptional abort then stack has 1 less item than the minimum stack height expected.
3838
- [ ] If opcode performs stack operations more complex than simple pop/push (e.g. the opcode has a data portion that specifies a variable to access a specific stack element), perform the following test combinations:
3939
- [ ] Operation on different stack heights:
4040
- [ ] Zero (Potential stack-underflow)
@@ -47,9 +47,9 @@ The EIP introduces one or more new opcodes to the EVM.
4747
- [ ] Execution context
4848
- [ ] CALL
4949
- [ ] STATICCALL
50-
- [ ] Verify exeptional abort if the opcode is banned for static contexts or if it attempts to modify the code, storage or balance of an account.
50+
- [ ] Verify exceptional abort if the opcode is banned for static contexts or if it attempts to modify the code, storage or balance of an account.
5151
- [ ] If the opcode is completely banned from static contexts, verify that even when its inputs would not cause any account modification, the opcode still results in exceptional abort of the execution (e.g. Op.PAY with zero value, or Op.SSTORE to the value it already has in the storage).
52-
- [ ] Verify subcalls using other opcodes (e.g. CALL, DELEGATECALL, etc) also results in the same exeptional abort behavior.
52+
- [ ] Verify sub-calls using other opcodes (e.g. CALL, DELEGATECALL, etc) also results in the same exceptional abort behavior.
5353
- [ ] DELEGATECALL
5454
- [ ] If the opcode modifies the storage of the account currently executing it, verify that only the account that is delegating execution is the one that has its storage modified.
5555
- [ ] If the opcode modifies the balance of the account currently executing it, verify that only the account that is delegating execution is the one that has its balance modified.
@@ -64,15 +64,15 @@ The EIP introduces one or more new opcodes to the EVM.
6464
- [ ] Transaction context: If opcode changes behavior depending on particular transaction properties, test using multiple values for each property.
6565
- [ ] Block context: If opcode changes behavior depending on particular block properties, test using multiple values for each property.
6666
- [ ] Return data
67-
- [ ] Verify proper return data buffer overwriting if the opcode is meant to interact with it, otherwise verify that the return data buffer is unnaffected:
67+
- [ ] Verify proper return data buffer overwriting if the opcode is meant to interact with it, otherwise verify that the return data buffer is unaffected:
6868
- [ ] At current call context.
6969
- [ ] At parent call context.
7070
- [ ] Gas usage
7171
- [ ] Normal operation gas usage: Verify gas affectation of each parameter value consumed by the opcode.
7272
- [ ] Memory expansion: Verify that the memory expansion correctly follows the gas calculation
73-
- [ ] Out-of-gas during opcode execution: Verify that attempting to execute the opcode when gas available is 1 less than the required gas results in exeptional abort.
74-
- [ ] Out-of-gas during memory expansion: Verify that the expansion of memory can result in out-of-gas exeptional abort.
75-
- [ ] Order-of-operations: If the opcode requires different gas stipends for other operations (e.g. contract creation, cold/warm account access), create one case for each operation (ideally independent of eachother) and the following cases for each:
73+
- [ ] Out-of-gas during opcode execution: Verify that attempting to execute the opcode when gas available is 1 less than the required gas results in exceptional abort.
74+
- [ ] Out-of-gas during memory expansion: Verify that the expansion of memory can result in out-of-gas exceptional abort.
75+
- [ ] Order-of-operations: If the opcode requires different gas stipends for other operations (e.g. contract creation, cold/warm account access), create one case for each operation (ideally independent of each other) and the following cases for each:
7676
- [ ] Success using the exact amount of gas required for the stipend.
7777
- [ ] OOG with a 1-gas-difference from the gas required for the stipend.
7878
- [ ] Terminating opcode
@@ -90,16 +90,16 @@ The EIP introduces one or more new opcodes to the EVM.
9090
- [ ] Verify if the opcode has out-of-bounds conditions in its parameters and verify:
9191
- [ ] Max value for each parameter
9292
- [ ] Max value + 1 for each parameter
93-
- [ ] Exeptional Abort: Verify behavior that is supposed to cause an exeptional abort, other than stack over or underflow, or out-of-gas errors.
93+
- [ ] Exceptional Abort: Verify behavior that is supposed to cause an exceptional abort, other than stack over or underflow, or out-of-gas errors.
9494
- [ ] Data portion: If an opcode has data portion that affects its behavior, verify checklist items with multiple interesting values (E.g. if data portion size is 1 byte, use at least 0x00, 0x01, 0x7F, 0xFF).
9595
- [ ] Contract creation
9696
- [ ] Verify contract is created at the expected address given multiple inputs to the opcode parameters.
9797
- [ ] Verify that contract is not created in case of:
9898
- [ ] Out-of-gas when available gas is less than minimum contract creation stipend.
99-
- [ ] Creation would result in an address collision with an existing contract or eoa-delegated address.
99+
- [ ] Creation would result in an address collision with an existing contract or EOA-delegated address.
100100
- [ ] Verify recursive contract creation using the opcode: Factory contract uses the opcode, and initcode calls back to factory contract.
101101
- [ ] Fork transition
102-
- [ ] Verify that the opcode results in exeptional abort if executed before its activation fork.
102+
- [ ] Verify that the opcode results in exceptional abort if executed before its activation fork.
103103
- [ ] Verify correct opcode behavior at transition block, in the case of opcodes which behavior depends on current or parent block information.
104104

105105
### <!-- id:new_opcode/framework --> Framework Changes
@@ -130,8 +130,8 @@ The EIP introduces one or more new precompiles.
130130
- [ ] Verify all zeros input.
131131
- [ ] Verify 2^N-1 where N is a single or multiple valid bit-lengths.
132132
- [ ] Verify combinations of invalid inputs to the precompile.
133-
- [ ] Inputs that fail specific mathematical or cryptographic validity checks.
134-
- [ ] Inputs that are malformed/corrupted.
133+
- [ ] Inputs that fail specific mathematical or cryptographic validity checks.
134+
- [ ] Inputs that are malformed/corrupted.
135135
- [ ] Value Transfer
136136
- [ ] If the precompile requires a minimum value with the calls to it, either constant or depending on a formula, verify:
137137
- [ ] Calls with the required value amount minus one, expect failure.
@@ -165,7 +165,6 @@ The EIP introduces one or more new precompiles.
165165
- [ ] Verify that calling the precompile before its activation fork with zero gas results in a valid call.
166166
- [ ] Verify precompile address becomes warm on and after the fork activation block, but not prior.
167167

168-
169168
### <!-- id:new_precompile/framework --> Framework Changes
170169

171170
- [ ] Add precompile address to relevant methods in the fork where the EIP is introduced in `src/ethereum_test_forks/forks/forks.py`
@@ -203,8 +202,8 @@ The EIP removes one or more precompiles from the existing list of precompiles.
203202
- [ ] Verify all zeros input.
204203
- [ ] Verify 2^N-1 where N is a single or multiple valid bit-lengths.
205204
- [ ] Verify combinations of invalid inputs to the precompile.
206-
- [ ] Inputs that fail specific validity checks.
207-
- [ ] Inputs that are malformed/corrupted.
205+
- [ ] Inputs that fail specific validity checks.
206+
- [ ] Inputs that are malformed/corrupted.
208207
- [ ] Value Transfer
209208
- [ ] If the system contract requires a minimum value with the calls to it, either constant or depending on a formula, verify:
210209
- [ ] Calls with the required value amount minus one, expect failure.
@@ -229,9 +228,8 @@ The EIP removes one or more precompiles from the existing list of precompiles.
229228
- [ ] If possible, simulate a scenario where the execution of the contract at the end of the block execution by the system address would result in excessive gas usage (100 million gas or more).
230229
- [ ] Verify spending all block gas in calls to system contract (100 million gas or more).
231230
- [ ] System Contract Deployment
232-
- [ ] Verify block execution behavior after fork activation if the system contract has not been deployed.
231+
- [ ] Verify block execution behavior after fork activation if the system contract has not been deployed (Depending on the EIP, block could be invalid).
233232
- [ ] Verify deployment transaction results in the system contract being deployed to the expected address.
234-
<!-- TODO: Missing contract at fork check -->
235233
- [ ] Contract Variations
236234
- [ ] Verify execution of the different variations of the contract for different networks (if any) results in the expected behavior,
237235
- [ ] Verify execution of a variation that causes an exception.
@@ -263,7 +261,7 @@ The EIP removes one or more precompiles from the existing list of precompiles.
263261
- [ ] Nonce: Verify the transaction (and the block it is included in) is invalid if its nonce value does not match the account's current nonce.
264262
- [ ] To: Verify the transaction (and the block it is included in) is invalid if the transaction type does not allow contract creation and the to-address field is empty.
265263
- [ ] Value: Verify the transaction (and the block it is included in) is invalid if the transaction contains a value of 1 and the account does not contain enough funds to cover the intrinsic transaction cost plus 1.
266-
- [ ] Data: Verify the transaction (and the block it is included in) is invalid if the transaction contains enough data so the data floor cost is higher than the intrinsic gas cost and the gas_limit is equal to the intrinsic gas gost.
264+
- [ ] Data: Verify the transaction (and the block it is included in) is invalid if the transaction contains enough data so the data floor cost is higher than the intrinsic gas cost and the gas_limit is equal to the intrinsic gas cost.
267265
- [ ] Sender balance: Verify the transaction (and the block it is included in) is invalid when the sender account does not have enough balance to cover the gas limit multiplied by the max fee per gas.
268266
- [ ] Signature:
269267
- [ ] Verify the transaction is correctly rejected if it contains an invalid signature:
@@ -321,28 +319,27 @@ The EIP removes one or more precompiles from the existing list of precompiles.
321319
- [ ] Verify that the sender account of the new transaction type transaction has its nonce incremented at least by one after the transaction is included in a block (or more if the transaction type introduces a new mechanism that bumps the nonce by more than one).
322320
- [ ] Verify that the sender account of the new transaction type transaction has its balance reduced by the correct amount (gas consumed and value) at the start of execution (e.g. using Op.BALANCE).
323321
- [ ] Block Level Interactions
324-
- [ ] Verify the new transaction type and the following accept/reject behavior depending on interactions with the block gas limit:
322+
- [ ] Verify the new transaction type and the following accept/reject behavior depending on interactions with the block gas limit:
325323
- [ ] New transaction type is the single transaction in the block:
326324
- [ ] Rejected if `tx.gas_limit == block.gas_limit + 1`
327325
- [ ] Accepted if `tx.gas_limit == block.gas_limit`
328326
- [ ] New transaction type is the last transaction of a block with two transactions:
329327
- [ ] Accepted if `block.txs[0].gas_used + block.txs[1].gas_limit == block.gas_limit`
330328
- [ ] Rejected if `(block.txs[0].gas_used + block.txs[1].gas_limit == block.gas_limit + 1) and (block.txs[0].gas_used < block.gas_limit)`
331-
- [ ] Verify a transaction of the new type is rejected if its gas limit exceeds the [EIP-7825](https://eips.ethereum.org/EIPS/eip-7825) gas limit for the current fork.
332-
- [ ] Verify a block with all transactions types including the new type is executed correctly.
329+
- [ ] Verify a transaction of the new type is rejected if its gas limit exceeds the [EIP-7825](https://eips.ethereum.org/EIPS/eip-7825) gas limit for the current fork.
330+
- [ ] Verify a block with all transactions types including the new type is executed correctly.
333331
- [ ] Fork transition: Verify that a block prior to fork activation where the new transaction type is introduced and containing the new transaction type is invalid.
334332
- [ ] RPC Tests
335-
- [ ] * Verify `eth_estimateGas` behavior for different valid combinations of the new transaction type
333+
- [ ] *Verify `eth_estimateGas` behavior for different valid combinations of the new transaction type
336334
- [ ] Verify `eth_sendRawTransaction` using `execute`
337335

338-
* Tests must be added to [`execution-apis`](https://github.com/ethereum/execution-apis) repository.
336+
*Tests must be added to [`execution-apis`](https://github.com/ethereum/execution-apis) repository.
339337

340338
### <!-- id:new_transaction_type/framework --> Framework Changes
341339

342340
- [ ] Modify `transaction_intrinsic_cost_calculator` in the fork where the EIP is introduced in `src/ethereum_test_forks/forks/forks.py`, adding the appropriate new fields that the transaction introduced and the logic to the intrinsic gas cost calculation, if any.
343341
- [ ] Add the transaction type number to `tx_types` response in the fork where the EIP is introduced in `src/ethereum_test_forks/forks/forks.py` (If applicable add also to `contract_creating_tx_types`).
344342

345-
346343
## <!-- id:new_block_header_field --> New Block Header Field
347344

348345
### <!-- id:new_block_header_field/test --> Test Vectors
@@ -356,7 +353,6 @@ The EIP removes one or more precompiles from the existing list of precompiles.
356353
- [ ] Verify that a block containing the new header field before the activation of the fork is invalid.
357354
- [ ] Verify that a block lacking the new header field at the activation of the fork is invalid.
358355

359-
360356
### <!-- id:new_block_header/framework --> Framework Changes
361357

362358
- [ ] Add the new header field to the relevant objects:
@@ -448,4 +444,4 @@ N/A
448444

449445
### <!-- id:new_execution_layer_request_framework --> Framework Changes
450446

451-
- [ ] Increment `max_request_type` in the fork where the EIP is introduced in `src/ethereum_test_forks/forks/forks.py` to the new maximum request type number after the EIP is activated.
447+
- [ ] Increment `max_request_type` in the fork where the EIP is introduced in `src/ethereum_test_forks/forks/forks.py` to the new maximum request type number after the EIP is activated.

docs/checklist_templates/index.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
11
# Testing Checklist Templates
22

33
This page includes checklist templates that must be followed to guarantee a minimum base testing coverage of new EIP feature.
4-

docs/writing_tests/post_mortems.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ Each entry must include an explanation of why the test case was missed plus the
99
## List
1010

1111
## TEMPLATE
12+
1213
## Date - Title - Fork
1314

1415
### Description
@@ -48,5 +49,5 @@ IDs of the tests added that now cover the missed scenario and link to the docume
4849
Note any modifications that were introduced in the framework and/or documentation to prevent similar misses.
4950

5051
*Example:*
51-
- Updated EIP checklist to include testing combinations of interesting points related to the elliptic-curve under test, and all combinations between them.
5252

53+
- Updated EIP checklist to include testing combinations of interesting points related to the elliptic-curve under test, and all combinations between them.

whitelist.txt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ controlflow
9494
cp
9595
CPUs
9696
crypto
97+
cryptographic
9798
currentframe
9899
customizations
99100
Customizations
@@ -295,6 +296,8 @@ mixins
295296
mixhash
296297
mkdocs
297298
mkdocstrings
299+
mortem
300+
mortems
298301
msm
299302
mypy
300303
ctx
@@ -334,6 +337,7 @@ parseable
334337
passthrough
335338
pathlib
336339
pdb
340+
Pectra
337341
perf
338342
permalink
339343
petersburg
@@ -395,6 +399,7 @@ secp256k1
395399
secp256k1n
396400
selfbalance
397401
ser
402+
serializable
398403
servable
399404
setenv
400405
setitem
@@ -412,6 +417,7 @@ spencertb
412417
splitext
413418
squidfunk
414419
src
420+
ssz
415421
stackoverflow
416422
StateTest
417423
StateTestFiller
@@ -436,6 +442,7 @@ sudo
436442
sysconfig
437443
t8n
438444
tamasfe
445+
tbd
439446
terminalreporter
440447
testability
441448
TestAddress
@@ -470,6 +477,7 @@ ubuntu
470477
ukiyo
471478
uid
472479
uncomment
480+
underflow
473481
undersize
474482
unlink
475483
usr
@@ -509,6 +517,7 @@ xpassed
509517
yaml
510518
YAML
511519
yml
520+
yParity
512521
yul
513522
zfill
514523

0 commit comments

Comments
 (0)