Skip to content

Commit 094dbb1

Browse files
authored
Merge pull request #295 from scroll-tech/chore-merge-upstream-9d1af5a09
chore: merge upstream 9d1af5a
2 parents d6f52ad + 2384329 commit 094dbb1

File tree

510 files changed

+27340
-13593
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

510 files changed

+27340
-13593
lines changed

.codespellrc

Lines changed: 0 additions & 3 deletions
This file was deleted.

.config/nextest.toml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,9 @@ slow-timeout = { period = "30s", terminate-after = 4 }
55
[[profile.default.overrides]]
66
filter = "test(general_state_tests)"
77
slow-timeout = { period = "1m", terminate-after = 10 }
8+
9+
# E2E tests using the testsuite framework from crates/e2e-test-utils
10+
# These tests are located in tests/e2e-testsuite/ directories across various crates
11+
[[profile.default.overrides]]
12+
filter = "binary(e2e_testsuite)"
13+
slow-timeout = { period = "2m", terminate-after = 3 }

.gitattributes

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,5 @@ book/cli/**/*.md linguist-vendored
22
book/cli/cli.md -linguist-vendored
33

44
crates/storage/libmdbx-rs/mdbx-sys/libmdbx/** linguist-vendored
5+
6+
bun.lock linguist-language=JSON-with-Comments

.github/assets/check_wasm.sh

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ exclude_crates=(
4848
reth-rpc-api
4949
reth-rpc-api-testing-util
5050
reth-rpc-builder
51+
reth-rpc-convert
52+
reth-rpc-e2e-tests
5153
reth-rpc-engine-api
5254
reth-rpc-eth-api
5355
reth-rpc-eth-types
@@ -58,7 +60,7 @@ exclude_crates=(
5860
reth-ress-provider
5961
# The following are not supposed to be working
6062
reth # all of the crates below
61-
reth-alloy-provider
63+
reth-storage-rpc-provider
6264
reth-invalid-block-hooks # reth-provider
6365
reth-libmdbx # mdbx
6466
reth-mdbx-sys # mdbx
@@ -76,6 +78,7 @@ exclude_crates=(
7678
reth-era-downloader # tokio
7779
reth-era-utils # tokio
7880
reth-tracing-otlp
81+
reth-node-ethstats
7982
reth-scroll-cli # tokio
8083
reth-scroll-node # tokio
8184
reth-scroll # tokio

.github/assets/hive/expected_failures.yaml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ rpc-compat:
66
- debug_getRawReceipts/get-block-n (reth)
77
- debug_getRawTransaction/get-invalid-hash (reth)
88

9-
- eth_call/call-callenv (reth)
109
- eth_getStorageAt/get-storage-invalid-key-too-large (reth)
1110
- eth_getStorageAt/get-storage-invalid-key (reth)
1211
- eth_getTransactionReceipt/get-access-list (reth)
@@ -60,15 +59,13 @@ engine-auth:
6059
# worth re-visiting when more of these related tests are passing
6160
eest/consume-engine:
6261
- tests/prague/eip7702_set_code_tx/test_set_code_txs.py::test_set_code_to_non_empty_storage[fork_Prague-blockchain_test_engine-zero_nonce]-reth
63-
- tests/prague/eip7251_consolidations/test_modified_consolidation_contract.py::test_system_contract_errors[fork_Prague-blockchain_test_engine-system_contract_reaches_gas_limit-system_contract_0x0000bbddc7ce488642fb579f8b00f3a590007251]-reth
6462
- tests/prague/eip7251_consolidations/test_contract_deployment.py::test_system_contract_deployment[fork_CancunToPragueAtTime15k-blockchain_test_engine-deploy_after_fork-nonzero_balance]-reth
6563
- tests/prague/eip7251_consolidations/test_contract_deployment.py::test_system_contract_deployment[fork_CancunToPragueAtTime15k-blockchain_test_engine-deploy_after_fork-zero_balance]-reth
6664
- tests/prague/eip6110_deposits/test_modified_contract.py::test_invalid_layout[fork_Prague-blockchain_test_engine-log_argument_amount_offset-value_zero]-reth
6765
- tests/prague/eip6110_deposits/test_modified_contract.py::test_invalid_layout[fork_Prague-blockchain_test_engine-log_argument_amount_size-value_zero]-reth
6866
- tests/prague/eip6110_deposits/test_modified_contract.py::test_invalid_layout[fork_Prague-blockchain_test_engine-log_argument_index_offset-value_zero]-reth
6967
- tests/prague/eip6110_deposits/test_modified_contract.py::test_invalid_layout[fork_Prague-blockchain_test_engine-log_argument_index_size-value_zero]-reth
7068
- tests/prague/eip6110_deposits/test_modified_contract.py::test_invalid_layout[fork_Prague-blockchain_test_engine-log_argument_pubkey_offset-value_zero]-reth
71-
- tests/prague/eip7002_el_triggerable_withdrawals/test_modified_withdrawal_contract.py::test_system_contract_errors[fork_Prague-blockchain_test_engine-system_contract_reaches_gas_limit-system_contract_0x00000961ef480eb55e80d19ad83579a64c007002]-reth
7269
- tests/prague/eip6110_deposits/test_modified_contract.py::test_invalid_layout[fork_Prague-blockchain_test_engine-log_argument_pubkey_size-value_zero]-reth
7370
- tests/prague/eip6110_deposits/test_modified_contract.py::test_invalid_layout[fork_Prague-blockchain_test_engine-log_argument_signature_offset-value_zero]-reth
7471
- tests/prague/eip6110_deposits/test_modified_contract.py::test_invalid_layout[fork_Prague-blockchain_test_engine-log_argument_signature_size-value_zero]-reth
@@ -102,9 +99,7 @@ eest/consume-rlp:
10299
- tests/prague/eip7002_el_triggerable_withdrawals/test_contract_deployment.py::test_system_contract_deployment[fork_CancunToPragueAtTime15k-blockchain_test_engine-deploy_after_fork-zero_balance]-reth
103100
- tests/prague/eip6110_deposits/test_modified_contract.py::test_invalid_log_length[fork_Prague-blockchain_test_engine-slice_bytes_False]-reth
104101
- tests/prague/eip6110_deposits/test_modified_contract.py::test_invalid_log_length[fork_Prague-blockchain_test_engine-slice_bytes_True]-reth
105-
- tests/prague/eip7251_consolidations/test_modified_consolidation_contract.py::test_system_contract_errors[fork_Prague-blockchain_test-system_contract_reaches_gas_limit-system_contract_0x0000bbddc7ce488642fb579f8b00f3a590007251]-reth
106102
- tests/prague/eip7251_consolidations/test_contract_deployment.py::test_system_contract_deployment[fork_CancunToPragueAtTime15k-blockchain_test-deploy_after_fork-nonzero_balance]-reth
107103
- tests/prague/eip7251_consolidations/test_contract_deployment.py::test_system_contract_deployment[fork_CancunToPragueAtTime15k-blockchain_test-deploy_after_fork-zero_balance]-reth
108-
- tests/prague/eip7002_el_triggerable_withdrawals/test_modified_withdrawal_contract.py::test_system_contract_errors[fork_Prague-blockchain_test-system_contract_reaches_gas_limit-system_contract_0x00000961ef480eb55e80d19ad83579a64c007002]-reth
109104
- tests/prague/eip7002_el_triggerable_withdrawals/test_contract_deployment.py::test_system_contract_deployment[fork_CancunToPragueAtTime15k-blockchain_test-deploy_after_fork-nonzero_balance]-reth
110105
- tests/prague/eip7002_el_triggerable_withdrawals/test_contract_deployment.py::test_system_contract_deployment[fork_CancunToPragueAtTime15k-blockchain_test-deploy_after_fork-zero_balance]-reth
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Ignored Tests Configuration
2+
#
3+
# This file contains tests that should be ignored for various reasons (flaky, known issues, etc).
4+
# These tests will be IGNORED in the CI results - they won't cause the build to fail
5+
# regardless of whether they pass or fail.
6+
#
7+
# Format
8+
# test_suite:
9+
# - "test name 1"
10+
# - "test name 2"
11+
#
12+
# When a test should no longer be ignored, remove it from this list.
13+
14+
engine-withdrawals:
15+
# flaky
16+
- Withdrawals Fork on Block 1 - 8 Block Re-Org NewPayload (Paris) (reth)
17+

.github/assets/hive/parse.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
parser = argparse.ArgumentParser(description="Check for unexpected test results based on an exclusion list.")
88
parser.add_argument("report_json", help="Path to the hive report JSON file.")
99
parser.add_argument("--exclusion", required=True, help="Path to the exclusion YAML file.")
10+
parser.add_argument("--ignored", required=True, help="Path to the ignored tests YAML file.")
1011
args = parser.parse_args()
1112

1213
# Load hive JSON
@@ -18,20 +19,50 @@
1819
exclusion_data = yaml.safe_load(file)
1920
exclusions = exclusion_data.get(report['name'], [])
2021

22+
# Load ignored tests YAML
23+
with open(args.ignored, 'r') as file:
24+
ignored_data = yaml.safe_load(file)
25+
ignored_tests = ignored_data.get(report['name'], [])
26+
2127
# Collect unexpected failures and passes
2228
unexpected_failures = []
2329
unexpected_passes = []
30+
ignored_results = {'passed': [], 'failed': []}
2431

2532
for test in report['testCases'].values():
2633
test_name = test['name']
2734
test_pass = test['summaryResult']['pass']
35+
36+
# Check if this is an ignored test
37+
if test_name in ignored_tests:
38+
# Track ignored test results for informational purposes
39+
if test_pass:
40+
ignored_results['passed'].append(test_name)
41+
else:
42+
ignored_results['failed'].append(test_name)
43+
continue # Skip this test - don't count it as unexpected
44+
45+
# Check against expected failures
2846
if test_name in exclusions:
2947
if test_pass:
3048
unexpected_passes.append(test_name)
3149
else:
3250
if not test_pass:
3351
unexpected_failures.append(test_name)
3452

53+
# Print summary of ignored tests if any were ignored
54+
if ignored_results['passed'] or ignored_results['failed']:
55+
print("Ignored Tests:")
56+
if ignored_results['passed']:
57+
print(f" Passed ({len(ignored_results['passed'])} tests):")
58+
for test in ignored_results['passed']:
59+
print(f" {test}")
60+
if ignored_results['failed']:
61+
print(f" Failed ({len(ignored_results['failed'])} tests):")
62+
for test in ignored_results['failed']:
63+
print(f" {test}")
64+
print()
65+
3566
# Check if there are any unexpected failures or passes and exit with error
3667
if unexpected_failures or unexpected_passes:
3768
if unexpected_failures:

.github/workflows/e2e.yml

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
# Runs e2e tests using the testsuite framework
2+
3+
name: e2e
4+
5+
on:
6+
pull_request:
7+
merge_group:
8+
push:
9+
branches: [main]
10+
11+
env:
12+
CARGO_TERM_COLOR: always
13+
SEED: rustethereumethereumrust
14+
15+
concurrency:
16+
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
17+
cancel-in-progress: true
18+
19+
jobs:
20+
test:
21+
name: e2e-testsuite
22+
runs-on: ubuntu-latest
23+
env:
24+
RUST_BACKTRACE: 1
25+
RUST_MIN_STACK: 4194304
26+
timeout-minutes: 90
27+
steps:
28+
- uses: actions/checkout@v4
29+
- uses: dtolnay/rust-toolchain@stable
30+
- uses: taiki-e/install-action@nextest
31+
- uses: Swatinem/rust-cache@v2
32+
with:
33+
cache-on-failure: true
34+
- name: Run e2e tests
35+
run: |
36+
cargo nextest run \
37+
--locked --features "asm-keccak" \
38+
--workspace \
39+
--exclude 'example-*' \
40+
--exclude 'exex-subscription' \
41+
--exclude 'reth-bench' \
42+
--exclude 'ef-tests' \
43+
--exclude 'op-reth' \
44+
--exclude 'reth' \
45+
-E 'binary(e2e_testsuite)'
46+

.github/workflows/hive.yml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,6 @@ jobs:
3131
uses: actions/checkout@v4
3232
with:
3333
repository: ethereum/hive
34-
# TODO: unpin when https://github.com/ethereum/hive/issues/1306 is fixed
35-
ref: edd9969338dd1798ba2e61f049c7e3a15cef53e6
3634
path: hivetests
3735

3836
- uses: actions/setup-go@v5
@@ -200,7 +198,7 @@ jobs:
200198
201199
- name: Parse hive output
202200
run: |
203-
find hivetests/workspace/logs -type f -name "*.json" ! -name "hive.json" | xargs -I {} python .github/assets/hive/parse.py {} --exclusion .github/assets/hive/expected_failures.yaml
201+
find hivetests/workspace/logs -type f -name "*.json" ! -name "hive.json" | xargs -I {} python .github/assets/hive/parse.py {} --exclusion .github/assets/hive/expected_failures.yaml --ignored .github/assets/hive/ignored_tests.yaml
204202
205203
- name: Print simulator output
206204
if: ${{ failure() }}

.github/workflows/integration.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ jobs:
4242
cargo nextest run \
4343
--locked --features "asm-keccak ${{ matrix.network }}" \
4444
--workspace --exclude ef-tests \
45-
-E "kind(test)"
45+
-E "kind(test) and not binary(e2e_testsuite)"
4646
- if: matrix.network == 'optimism'
4747
name: Run tests
4848
run: |

0 commit comments

Comments
 (0)