Skip to content

Updates all backend tests to 1.0 (or highest supported ver.) - #1360

Merged
Elliot (theelliotm) merged 8 commits into
mainfrom
user/emichlin/update-tests-1.0
Oct 1, 2026
Merged

Elliot (theelliotm) merged 8 commits into
mainfrom
user/emichlin/update-tests-1.0

Conversation

@theelliotm

@theelliotm Elliot (theelliotm) commented Sep 30, 2026 •

Copy link
Copy Markdown
Contributor

📖 Description

This PR updates all configs in ./tests/configs and ./tests/examples to 1.0, or whichever version is the highest supported version for the feature it's testing (e.g. 0.8 for pre-directional networking). In-line and generated configs in ./tests/scripts get updated, too.

🔗 References

🔍 Validation

Validated via CI: https://github.com/microsoft/mxc/actions/runs/36792834280. LXC failures in that CI are an oversight and fixed in latest commit. lxc_e2e should be green on this PR in automated tests below.

✅ Checklist

📋 Issue Type

  • Bug fix
  • Feature
  • Task
Microsoft Reviewers: Open in CodeFlow

Elliot (theelliotm) and others added 3 commits September 30, 2026 15:16
Bump every test config to the highest registered schema version it can
validate against, capped at the current stable 1.0.0. Configs carrying
legacy-only network fields (removed at 0.9) rise to 0.8.0-alpha; the
Windows Sandbox, MicroVM and Hyperlight configs stay at 1.1.0-alpha
because those containment values and the root experimental field exist
only in the development contract.

Add a $schema pointer to post-0.6 configs that lacked one, drop the
now-redundant _09 suffix from environment fixtures and their runner, and
reconcile runner prose that named a schema version the fixture no longer
uses.

Raise the ProcessContainer suite default to 1.0.0 and remove the
enumeratePaths version fallback, pinning the cases that assert a version
gate to the version they are about.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
These fixtures assert shape-based rejections ("unknown field ...") that do
not depend on the schema version, so they can assert against the current
stable contract. The two whose rejection is the version itself stay put:
bwrap_env_08_inherit_rejected.json gates inheritDefaultEnv at 0.8, and
rejected_version_too_old.json is the below-floor case.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The fixture was referenced by no runner, script, or documentation. Schema
floor acceptance is already asserted by the registered-version matrix in
run_processcontainer_lifecycle_test.ps1 and by the contract crate's
per-version tests, so deleting it costs no coverage.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@theelliotm
Elliot (theelliotm) requested a review from a team as a code owner September 30, 2026 22:56
Copilot AI balanced review requested due to automatic review settings September 30, 2026 22:56
@theelliotm
Elliot (theelliotm) marked this pull request as draft September 30, 2026 22:56
@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
There may be pipelines that require an authorized user to comment /azp run to run.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

Five version-specific compatibility fixtures no longer exercise the pre-0.8 behavior required by their test suites.

Review effort: Balanced
Findings: 5 Medium severity

Open (5)
What changed in this PR

Updates backend test configurations to stable schema 1.0, retaining older schemas where feature compatibility requires them.

Changes:

  • Upgrades backend fixtures and examples to their highest supported schema.
  • Updates generated/inline configurations and removes obsolete version suffixes.
  • Preserves selected legacy schema tests, though five Bubblewrap/Seatbelt compatibility fixtures were upgraded incorrectly.
File Description
tests/​configs/​base_container*.json Updates BaseContainer network and UI fixtures.
tests/​configs/​bubblewrap*.json Updates Bubblewrap fixtures; includes four incorrect compatibility-version changes.
tests/​configs/​isolation_session*.json Moves one-shot and state-aware IsolationSession fixtures to 1.0.
tests/​configs/​lxc*.json Updates LXC filesystem, environment, and network fixtures.
tests/​configs/​processcontainer*.json, basic_*.json, filesystem_*.json Updates Windows ProcessContainer fixtures.
tests/​configs/​seatbelt*.json Updates Seatbelt fixtures; one pre-0.8 rejection fixture needs reverting.
tests/​configs/​wslc*.json Updates WSLc one-shot and state-aware fixtures.
tests/​configs/​linux_process*.json Updates Linux process fixtures.
tests/​configs/​hello_world_v060.json Removes the obsolete 0.6 example fixture.
tests/​examples/​*.json Updates user-facing examples and schema references.
tests/​scripts/​*.sh, tests/​scripts/​*.ps1 Updates generated versions, fixture names, and test labels.
tests/​scripts/​lib/​* Changes shared generated-config defaults to 1.0.
tests/​scripts/​README.md Updates ProcessContainer suite documentation.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread tests/configs/bubblewrap_network_directional_pre08_rejected.json Outdated
Comment thread tests/configs/bubblewrap_network_firewall.json Outdated
Comment thread tests/configs/bubblewrap_network_localnet_legacy.json Outdated
Comment thread tests/configs/bubblewrap_network_proxy_legacy.json Outdated
Comment thread tests/configs/seatbelt_reject_directional_pre08.json Outdated
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Copilot AI balanced review requested due to automatic review settings September 30, 2026 23:03

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

Five fixtures contain invalid JSON, and several inline/generated state-aware requests remain on schema 0.9.

Review effort: Balanced
Findings: 5 High severity

Open (5)
Resolved since last review (5)
Previously missed (1)

In code that hasn't changed since last review

Medium severity Inline state-aware requests still use outdated contract version

tests/​configs/​wslc_state_aware_exec_basic.json:3

The advertised migration of inline/generated script requests is incomplete. Although the file-backed state-aware fixtures now use 1.0, run_wslc_state_aware_tests.ps1:170 and run_isolation_session_state_aware_tests.ps1:196 still inject 0.9.0-alpha into every inline request without an explicit version, and run_isolation_session_resize_smoke.ps1:212 also remains pinned to 0.9. Update those non-version-gating requests to 1.0 so the backend suites actually exercise the current stable contract consistently.

Comment thread tests/configs/bubblewrap_network_directional_pre08_rejected.json Outdated
Comment thread tests/configs/bubblewrap_network_firewall.json Outdated
Comment thread tests/configs/bubblewrap_network_localnet_legacy.json Outdated
Comment thread tests/configs/bubblewrap_network_proxy_legacy.json Outdated
Comment thread tests/configs/seatbelt_reject_directional_pre08.json Outdated
The version reverts in 0d4e0ab dropped the comma after the version
member, so all five files failed to parse before reaching the version
check.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI balanced review requested due to automatic review settings September 30, 2026 23:20

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🔵 Needs a closer look

Several generated script paths remain on older contracts, and two upgraded examples still report that they execute schema 0.8.

Review effort: Balanced
Findings: None

Resolved since last review (5)
Previously missed (2)

In code that hasn't changed since last review

Medium severity Update IsolationSession generated requests to contract 1.0

tests/​configs/​isolation_session_state_aware_exec_basic.json:3

The IsolationSession fixtures are moved to 1.0, but inline requests still default to 0.9.0-alpha at tests/scripts/run_isolation_session_state_aware_tests.ps1:196, and the generated resize-smoke config still hardcodes 0.9 at run_isolation_session_resize_smoke.ps1:212. Update those generated paths too; otherwise this backend’s suite only partially makes the advertised migration.

Medium severity Update inline WSLc requests to contract 1.0

tests/​configs/​wslc_state_aware_exec_basic.json:3

File-backed WSLc lifecycle requests now use 1.0, but the inline -Request path still injects 0.9.0-alpha in tests/scripts/run_wslc_state_aware_tests.ps1:170. Consequently, generated state-aware requests remain on the older contract. Update that default to 1.0 so both request paths exercise the intended version.

The IsolationSession and WSLc fixtures moved to 1.0 but the inline
-Request path and the resize-smoke generator still emitted 0.9.0-alpha,
so half of each suite stayed on the older contract. No caller overrides
the default, and every affected case asserts a shape-based outcome, so
the legacy-network rejections still hold at 1.0.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI balanced review requested due to automatic review settings September 30, 2026 23:31

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

The ProcessContainer config generator references the removed $hasEnumerate variable, breaking generated test configurations under strict mode.

Review effort: Balanced
Findings: 1 High severity

Open (1)

Comment thread tests/scripts/lib/WinProcessContainer.Common.ps1
Removing the version fallback also dropped the $hasEnumerate assignment
while line 657 still referenced it, so the guard silently evaluated to
$null and no ProcessContainer config emitted filesystem.enumeratePaths.
The predicate is inlined with its original semantics: an empty array
emits nothing.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI balanced review requested due to automatic review settings September 30, 2026 23:42

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🔵 Needs a closer look

Two version-specific 0.8 examples now declare 1.0 while their linked documentation and runtime output still identify them as schema 0.8.

Review effort: Balanced
Findings: None

Resolved since last review (1)

Three LXC runners assert that their fixtures declare the schema version of
"the current contract", pinned by literal to 0.9. Raising the fixtures to the
new 1.0 stable tripped those guards, which is why LXC was the only failing
suite. Point them at 1.0 so the assertion matches its stated intent.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI balanced review requested due to automatic review settings October 1, 2026 00:52
@theelliotm
Elliot (theelliotm) marked this pull request as ready for review October 1, 2026 00:55

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🔵 Needs a closer look

The T3 workload generator still emits the oldest 0.6 contract, leaving the stated generated-config migration incomplete.

Review effort: Balanced
Findings: None

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:shipit:

@theelliotm
Elliot (theelliotm) merged commit 0dd2ed7 into main Oct 1, 2026
31 checks passed
@theelliotm
Elliot (theelliotm) deleted the user/emichlin/update-tests-1.0 branch October 1, 2026 11:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants