Skip to content

Commit 6b6ee77

Browse files
author
Threepwood-7
committed
CI-035 forward admin storage live options
1 parent 452946a commit 6b6ee77

7 files changed

Lines changed: 50 additions & 0 deletions

File tree

emule_workspace/certification.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -265,6 +265,7 @@ def _invoke_step(
265265
profile_cpu=True,
266266
profile_cpu_stack=True,
267267
profile_memory=True,
268+
admin_volume_fixtures=True,
268269
),
269270
)
270271
return
@@ -347,6 +348,7 @@ def _live_options(
347348
profile_cpu: bool = False,
348349
profile_cpu_stack: bool = False,
349350
profile_memory: bool = False,
351+
admin_volume_fixtures: bool = False,
350352
rest_cold_start_dump_stress_cpu_profile: bool = False,
351353
rest_cold_start_dump_stress_cpu_profile_stack: bool = False,
352354
) -> LiveE2eOptions:
@@ -369,6 +371,7 @@ def _live_options(
369371
profile_cpu=profile_cpu,
370372
profile_cpu_stack=profile_cpu_stack,
371373
profile_memory=profile_memory,
374+
admin_volume_fixtures=admin_volume_fixtures,
372375
rest_cold_start_dump_stress_cpu_profile=rest_cold_start_dump_stress_cpu_profile,
373376
rest_cold_start_dump_stress_cpu_profile_stack=rest_cold_start_dump_stress_cpu_profile_stack,
374377
)

emule_workspace/cli.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,10 @@ def _live_e2e_options(function: F) -> F:
147147
@click.option("--skip-live-seed-refresh", is_flag=True, help="Reuse the existing live seed state.")
148148
@click.option("--startup-trace-mode", type=click.Choice(["required", "optional"]), default="required", show_default=True)
149149
@click.option("--shared-root", default=None, help="Shared file root for live UI scenarios.")
150+
@click.option("--admin-volume-fixtures", is_flag=True, help="Enable admin-only VHD drive-letter and folder-mount live fixtures.")
151+
@click.option("--vhd-size-mb", default=256, show_default=True, type=int)
152+
@click.option("--mount-root", default=None, help="Parent directory for admin-only folder mount fixtures.")
153+
@click.option("--keep-admin-fixtures", is_flag=True, help="Leave admin VHD fixture files after a live suite for inspection.")
150154
@click.option("--preference-ui-directories-tree-stress", is_flag=True, help="Exercise the Preferences Directories tree with a large shared-directory profile.")
151155
@click.option("--shared-files-ui-scenario", "shared_files_ui_scenarios", multiple=True)
152156
@click.option("--shared-files-tree-stress-churn-cycles", default=-1, show_default=True, type=int)

emule_workspace/config.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,10 @@ class LiveE2eOptions(BaseModel):
9494
preference_ui_directories_tree_stress: bool = False
9595
shared_files_ui_scenarios: tuple[str, ...] = ()
9696
shared_files_tree_stress_churn_cycles: int = -1
97+
admin_volume_fixtures: bool = False
98+
vhd_size_mb: int = 256
99+
mount_root: str | None = None
100+
keep_admin_fixtures: bool = False
97101
profile_cpu: bool = False
98102
profile_cpu_max_file_mb: int = 512
99103
profile_cpu_stack: bool = False

emule_workspace/test_runs.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -348,6 +348,11 @@ def invoke_live_e2e_suite(layout: WorkspaceLayout, options: WorkspaceOptions, li
348348
_append_optional_flag(args, live_options.rest_stop_start_after_churn, "--rest-stop-start-after-churn")
349349
if live_options.shared_root:
350350
args.extend(["--shared-root", live_options.shared_root])
351+
_append_optional_flag(args, live_options.admin_volume_fixtures, "--admin-volume-fixtures")
352+
args.extend(["--vhd-size-mb", live_options.vhd_size_mb])
353+
if live_options.mount_root:
354+
args.extend(["--mount-root", live_options.mount_root])
355+
_append_optional_flag(args, live_options.keep_admin_fixtures, "--keep-admin-fixtures")
351356
_append_optional_flag(args, live_options.preference_ui_directories_tree_stress, "--preference-ui-directories-tree-stress")
352357
for scenario_name in live_options.shared_files_ui_scenarios:
353358
args.extend(["--shared-files-ui-scenario", scenario_name])

tests/test_certification.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -280,5 +280,6 @@ def fake_live_e2e(_layout, _options, live_options):
280280
assert captured[0].profile_cpu is True
281281
assert captured[0].profile_cpu_stack is True
282282
assert captured[0].profile_memory is True
283+
assert captured[0].admin_volume_fixtures is True
283284
assert captured[1].profile_cpu is False
284285
assert captured[1].profile_memory is False

tests/test_cli.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,10 @@ def test_test_live_e2e_help_exposes_live_options() -> None:
7878
assert "--profile-cpu-stack" in result.output
7979
assert "--profile-memory" in result.output
8080
assert "--profile-resource-interval-seconds" in result.output
81+
assert "--admin-volume-fixtures" in result.output
82+
assert "--vhd-size-mb" in result.output
83+
assert "--mount-root" in result.output
84+
assert "--keep-admin-fixtures" in result.output
8185
assert "--rest-cold-start-dump-stress-cpu-profile" in result.output
8286
assert "--rest-cold-start-dump-stress-cpu-profile-stack" in result.output
8387

tests/test_live_e2e_options.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,35 @@ def fake_run_native(command, *, label, cwd, env=None, allow_failure=False):
133133
assert option_values(command, "--shared-root") == [r"C:\tmp\large-shared-root"]
134134

135135

136+
def test_live_e2e_forwards_admin_volume_fixture_options(tmp_path: Path, monkeypatch) -> None:
137+
captured: dict[str, object] = {}
138+
139+
def fake_run_native(command, *, label, cwd, env=None, allow_failure=False):
140+
captured["command"] = list(command)
141+
142+
layout = make_layout(tmp_path)
143+
monkeypatch.setattr(test_runs, "run_native", fake_run_native)
144+
145+
test_runs.invoke_live_e2e_suite(
146+
layout,
147+
WorkspaceOptions(workspace_root=tmp_path, platform="x64"),
148+
LiveE2eOptions(
149+
suites=("shared-cache-volume-identity",),
150+
admin_volume_fixtures=True,
151+
vhd_size_mb=384,
152+
mount_root=r"C:\tmp\emulebb-admin-mounts",
153+
keep_admin_fixtures=True,
154+
),
155+
)
156+
157+
command = captured["command"]
158+
assert isinstance(command, list)
159+
assert "--admin-volume-fixtures" in command
160+
assert option_values(command, "--vhd-size-mb") == ["384"]
161+
assert option_values(command, "--mount-root") == [r"C:\tmp\emulebb-admin-mounts"]
162+
assert "--keep-admin-fixtures" in command
163+
164+
136165
def test_live_e2e_forwards_search_ui_live_stress_options(tmp_path: Path, monkeypatch) -> None:
137166
captured: dict[str, object] = {}
138167

0 commit comments

Comments
 (0)