Repository navigation
test(suites): port the conformance suites onto testkit and run conformance-integration on the runner - #4774
Draft
matthewgrossman wants to merge 8 commits into
Draft
test(suites): port the conformance suites onto testkit and run conformance-integration on the runner#4774matthewgrossman wants to merge 8 commits into
matthewgrossman wants to merge 8 commits into
Conversation
|
Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually. Contributors can view more details about this message here. |
|
🌿 Preview your docs: https://nvidia-preview-pr-4774.docs.buildwithfern.com/openshell |
matthewgrossman
force-pushed
the
test/3954-first-testkit-lane/matthewgrossman
branch
from
October 21, 2026 04:40
0b87fa4 to
0025ee3
Compare
matthewgrossman
force-pushed
the
test/3954-migrate-suites-to-testkit/matthewgrossman
branch
2 times, most recently
from
October 21, 2026 20:40
6d64703 to
e3d9f01
Compare
matthewgrossman
force-pushed
the
test/3954-first-testkit-lane/matthewgrossman
branch
2 times, most recently
from
October 21, 2026 20:41
e06a0eb to
a23e140
Compare
matthewgrossman
force-pushed
the
test/3954-migrate-suites-to-testkit/matthewgrossman
branch
from
October 21, 2026 20:49
e3d9f01 to
5e2cbc5
Compare
matthewgrossman
force-pushed
the
test/3954-migrate-suites-to-testkit/matthewgrossman
branch
from
October 21, 2026 23:45
5e2cbc5 to
cda205f
Compare
matthewgrossman
force-pushed
the
test/3954-first-testkit-lane/matthewgrossman
branch
from
October 21, 2026 23:45
936e1fd to
be4af48
Compare
matthewgrossman
force-pushed
the
test/3954-migrate-suites-to-testkit/matthewgrossman
branch
from
October 22, 2026 04:51
cda205f to
7c75fbf
Compare
matthewgrossman
force-pushed
the
test/3954-first-testkit-lane/matthewgrossman
branch
from
October 22, 2026 04:51
be4af48 to
63f4141
Compare
5 tasks done
matthewgrossman
force-pushed
the
test/3954-first-testkit-lane/matthewgrossman
branch
from
October 22, 2026 05:03
63f4141 to
df44e02
Compare
matthewgrossman
force-pushed
the
test/3954-migrate-suites-to-testkit/matthewgrossman
branch
from
October 22, 2026 05:29
7c75fbf to
bb39723
Compare
matthewgrossman
force-pushed
the
test/3954-first-testkit-lane/matthewgrossman
branch
from
October 22, 2026 16:01
df44e02 to
4d19336
Compare
matthewgrossman
force-pushed
the
test/3954-migrate-suites-to-testkit/matthewgrossman
branch
from
October 22, 2026 16:01
bb39723 to
1cb1dc8
Compare
matthewgrossman
force-pushed
the
test/3954-migrate-suites-to-testkit/matthewgrossman
branch
from
October 22, 2026 16:37
1cb1dc8 to
fbcd389
Compare
matthewgrossman
force-pushed
the
test/3954-first-testkit-lane/matthewgrossman
branch
from
October 23, 2026 04:46
2b879b0 to
c4f944f
Compare
matthewgrossman
force-pushed
the
test/3954-migrate-suites-to-testkit/matthewgrossman
branch
from
October 23, 2026 04:46
6f5c621 to
b9e6bfe
Compare
matthewgrossman
force-pushed
the
test/3954-first-testkit-lane/matthewgrossman
branch
from
October 23, 2026 05:29
c4f944f to
be103d6
Compare
matthewgrossman
force-pushed
the
test/3954-migrate-suites-to-testkit/matthewgrossman
branch
from
October 23, 2026 05:30
b9e6bfe to
919f767
Compare
matthewgrossman
force-pushed
the
test/3954-first-testkit-lane/matthewgrossman
branch
2 times, most recently
from
October 26, 2026 20:12
f244394 to
6106cd0
Compare
6 tasks done
matthewgrossman
force-pushed
the
test/3954-migrate-suites-to-testkit/matthewgrossman
branch
from
October 26, 2026 21:08
919f767 to
270c660
Compare
matthewgrossman
changed the base branch from
test/3954-first-testkit-lane/matthewgrossman
to
test/3954-keycloak-features-example/matthewgrossman
October 26, 2026 21:09
Member
Author
|
/ok to test 270c660 |
|
Label |
matthewgrossman
force-pushed
the
test/3954-keycloak-features-example/matthewgrossman
branch
from
October 26, 2026 23:48
3e9b04c to
38e728c
Compare
matthewgrossman
force-pushed
the
test/3954-migrate-suites-to-testkit/matthewgrossman
branch
from
October 27, 2026 04:53
270c660 to
ff09b71
Compare
Member
Author
|
/ok to test ff09b71 |
matthewgrossman
force-pushed
the
test/3954-keycloak-features-example/matthewgrossman
branch
from
October 28, 2026 19:29
38e728c to
4c29f9e
Compare
Add cx.track and cx.adopt, so a test that creates a sandbox through the CLI still cleans it up after a failure: track the name before the command, adopt it afterwards for an SDK handle. Signed-off-by: Matthew Grossman <mgrossman@nvidia.com>
…ent-workspace suites to testkit Add the lifecycle, cli, persistent_workspace and file_transfer test files to the sandbox crate. The lifecycle, persistent-workspace and file-transfer tests are adapted from #4629. persistent_workspace_survives_stop_start stays in conformance: every conformant driver keeps the workspace across stop and start, and the one that can't yet (MXC) isn't conformant until it can. The policy-advisor tests are ported in the next commit but one. The OCI image, Keycloak and Podman userns suites are ported separately, in the features and drivers families. The old conformance/cli crate stays until the host lanes move off it. Co-authored-by: Evan Lezar <elezar@nvidia.com> Signed-off-by: Matthew Grossman <mgrossman@nvidia.com>
The file-transfer suite builds a Git repository on the machine that runs the tests, and the old conformance playbook installed Git itself. Signed-off-by: Matthew Grossman <mgrossman@nvidia.com>
The k3s installer now waits until the Agent Sandbox controller reconciles a gated probe Sandbox, so a test that starts right after boot doesn't race it. The check moves out of the old conformance playbook into tests/tmachine/ansible/playbooks/k3s-controller-ready.yaml, which the installer and the old playbook both include. Tests themselves don't wait for the controller. Signed-off-by: Matthew Grossman <mgrossman@nvidia.com>
Port the old suite's policy.local, denied-address and denied-hostname scenarios as the policy-advisor suite, so they survive the deletion of the old CLI suite. Adapted from #4629. Co-authored-by: Evan Lezar <elezar@nvidia.com> Signed-off-by: Matthew Grossman <mgrossman@nvidia.com>
Signed-off-by: Matthew Grossman <mgrossman@nvidia.com>
Add a row for each conformance environment (Docker, Podman rootful and rootless, k3s and HA k3s) next to the Docker and Keycloak rows. Each row names the gateway its installer registers (`openshell`, or `tmachine` for k3s) and the runner passes it with --gateway. A `family` input runs the rows of one family, so a caller can run the conformance rows alone. The disk cache is keyed per environment, and k3s skips it as integration-runner.yml does. Signed-off-by: Matthew Grossman <mgrossman@nvidia.com>
Switch the required conformance-integration job in Branch E2E, Release Dev and Release Qualification from the tmachine conformance testsuite to the E2E Suites workflow, selecting the conformance family. The job ID is unchanged. Delete the tmachine conformance and policy-advisor testsuites, their playbooks and the old conformance test archive: the sandbox package covers the same tests, including the ported policy-advisor ones. The Branch E2E E2E Suites job now runs the features family only, so conformance does not run twice. Point the integration runner defaults and the docs at what remains. Signed-off-by: Matthew Grossman <mgrossman@nvidia.com>
matthewgrossman
force-pushed
the
test/3954-migrate-suites-to-testkit/matthewgrossman
branch
from
October 28, 2026 20:37
ff09b71 to
4e6a9c4
Compare
matthewgrossman
changed the base branch from
test/3954-keycloak-features-example/matthewgrossman
to
main
October 28, 2026 20:40
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Ports the universal conformance suites (CLI, lifecycle, file transfer, persistent workspace, policy advisor) onto testkit and runs them with
openshell-test-runneron Docker, Podman (rootful and rootless) and k3s (single and HA). Then it switches the requiredconformance-integrationjob to the runner and deletes the old tmachineconformanceandpolicy-advisortestsuites.The lifecycle, persistent-workspace, file-transfer and policy-advisor ports start from @elezar's draft #4629.
Context
Builds on the runner merged in #4773. It is independent of #4891 (the Keycloak features example), which adds its own row and job to
e2e-suites.ymland Branch E2E.Later: ship
openshell-conformanceas one program and delete the old CLI suite; migrate thefeaturesanddriverssuites; bring back test plans.Related Issue
Part of #3954
Changes
tests/suites/conformance/sandbox: test fileslifecycle,cli,persistent_workspace,file_transferandpolicy_advisornext tosmoke.persistent_workspace_survives_stop_startstays in conformance: every conformant driver keeps the workspace across stop and start.cx.trackandcx.adoptin testkit, for sandboxes a test creates through the CLI.e2e-suites.yml: a row for each conformance environment (ubuntu-docker-rootful/deb,fedora-podman-rootful/rpm,fedora-podman-rootless/rpm,ubuntu-k3s/k3s,ubuntu-k3s/k3s-ha), each running--family conformance --package sandbox. Agatewayfield passes--gateway(openshell, ortmachinefor k3s). Afamilyinput runs the rows of one family. The disk cache is keyed per environment, and k3s skips it, asintegration-runner.ymldoes; its history doesn't say why, so that is still to find out.conformance-integrationin Branch E2E, Release Dev and Release Qualification now callse2e-suites.ymlwithfamily: conformance. The job ID is unchanged. Branch E2E's separatee2e-suitesjob is removed (its only rows are now inconformance-integration), along with itscore-e2e-resultentry; every caller passesCACHIX_AUTH_TOKEN.conformanceandpolicy-advisortestsuites, their playbooks and the old conformance test archive are deleted. Theintegration-runnerandintegration-testdefaults no longer nameconformance.k3s-controller-ready.yaml, moved out of the old conformance playbook). Tests don't wait for it.test-tools.yaml), for the.gitignorefiltering test.TESTING.mdsays what a conformance test may assert;CI.mdand the watch-github-actions skill point at the runner'se2e-results-*artifacts.Old test to new test
smoke(scenario: status, create, get Ready, list, exec, delete, list empty)cli.rs::cli_create_exec_list_deletesmoke.rs::create_exec_deleteis the SDK variant (in #4773).sandbox_lifecyclestop_start_preserves_workspacepersistent_workspace.rs::persistent_workspace_survives_stop_start(SDK) andcli.rs::cli_stop_start_delete(CLI)lifecycle.rs::restart_stopped_sandbox.sandbox_lifecyclestopped_can_be_deletedlifecycle.rs::stopped_sandbox_can_be_deletedcli_stop_start_delete.file_transfer::round_tripfile_transfer.rs::upload_download_round_tripfile_transfer::git_filteringfile_transfer.rs::upload_respects_gitignoregitwhere the tests run.file_transfer::path_safetyfile_transfer.rs::download_stays_inside_workspacepolicy_localpolicy_advisor.rs::policy_local_accepts_proposalsmechanistic_proposalpolicy_advisor.rs::denied_address_produces_draft_rulenew_hostname_proposalpolicy_advisor.rs::denied_hostname_produces_draft_ruleNew with no old counterpart (from #4629):
lifecycle.rs::long_running_exec_delete,run_to_completion_exit_delete,default_command_sandbox_is_listed_ready.Not in this PR
tests/suites/conformance/cli,crates/openshell-conformance,e2e/support/conformance.sh) stays: the host lanes andmise run e2e:*still use it.featuresanddriverssuites (oci-image, Podman userns,e2e-podman).Testing
-D warnings, runner and tmachine tests, lockfile alignment, license headers, and Nix evaluation of the runner, tmachine config and test archives.270c660f0, green on attempt 2): all five conformance rows in tmachine VMs. This head is rebased ontomainand has not run yet.Checklist