Skip to content

Commit bf9ed70

Browse files
committed
fix(consume): recognize --enginex-max-group-size option in consume.consume
1 parent 3531cc1 commit bf9ed70

File tree

1 file changed

+23
-21
lines changed

1 file changed

+23
-21
lines changed

src/pytest_plugins/consume/consume.py

Lines changed: 23 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
import rich
2424

2525
from cli.gen_index import generate_fixtures_index
26-
from ethereum_test_fixtures import BaseFixture, BlockchainEngineXFixture
26+
from ethereum_test_fixtures import BaseFixture
2727
from ethereum_test_fixtures.consume import IndexFile, TestCases
2828
from ethereum_test_forks import get_forks, get_relative_fork_markers, get_transition_forks
2929
from ethereum_test_tools.utility.versioning import get_current_commit_hash_or_tag
@@ -461,26 +461,28 @@ def pytest_configure(config): # noqa: D103
461461
config.test_cases = index.test_cases
462462

463463
# Create XDistGroupMapper for enginex simulator if needed
464-
if (
465-
hasattr(config, "_supported_fixture_formats")
466-
and BlockchainEngineXFixture.format_name in config._supported_fixture_formats
467-
):
468-
max_group_size = getattr(config, "enginex_max_group_size", 400)
469-
config.xdist_group_mapper = XDistGroupMapper(max_group_size)
470-
config.xdist_group_mapper.build_mapping(config.test_cases)
471-
472-
# Log statistics about group splitting
473-
split_stats = config.xdist_group_mapper.get_split_statistics()
474-
if split_stats:
475-
rich.print("[bold yellow]Pre-allocation group splitting for load balancing:[/]")
476-
for pre_hash, stats in split_stats.items():
477-
rich.print(
478-
f" Group {pre_hash[:8]}: {stats['total_tests']} tests → "
479-
f"{stats['num_subgroups']} sub-groups "
480-
f"(~{stats['tests_per_subgroup']} tests each)"
481-
)
482-
rich.print(f" Max group size: {max_group_size}")
483-
else:
464+
# Check if enginex options are present (indicates enginex simulator is being used)
465+
try:
466+
max_group_size = config.getoption("--enginex-max-group-size", None)
467+
if max_group_size is not None:
468+
config.xdist_group_mapper = XDistGroupMapper(max_group_size)
469+
config.xdist_group_mapper.build_mapping(config.test_cases)
470+
471+
# Log statistics about group splitting
472+
split_stats = config.xdist_group_mapper.get_split_statistics()
473+
if split_stats:
474+
rich.print("[bold yellow]Pre-allocation group splitting for load balancing:[/]")
475+
for pre_hash, stats in split_stats.items():
476+
rich.print(
477+
f" Group {pre_hash[:8]}: {stats['total_tests']} tests → "
478+
f"{stats['num_subgroups']} sub-groups "
479+
f"(~{stats['tests_per_subgroup']} tests each)"
480+
)
481+
rich.print(f" Max group size: {max_group_size}")
482+
else:
483+
config.xdist_group_mapper = None
484+
except ValueError:
485+
# enginex options not available, not using enginex simulator
484486
config.xdist_group_mapper = None
485487

486488
for fixture_format in BaseFixture.formats.values():

0 commit comments

Comments
 (0)