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
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-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-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-migrate-suites-to-testkit/matthewgrossman
branch
from
October 22, 2026 04:51
cda205f to
7c75fbf
Compare
5 tasks done
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-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-migrate-suites-to-testkit/matthewgrossman
branch
from
October 23, 2026 03:37
33b8dc1 to
db85da9
Compare
matthewgrossman
force-pushed
the
test/3954-migrate-suites-to-testkit/matthewgrossman
branch
from
October 23, 2026 04:00
db85da9 to
6f5c621
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-migrate-suites-to-testkit/matthewgrossman
branch
from
October 23, 2026 05:30
b9e6bfe to
919f767
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 |
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 27, 2026 04:53
270c660 to
ff09b71
Compare
Member
Author
|
/ok to test ff09b71 |
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.
Stack
Each PR targets the one below it.
SessionAPI and a smoke suite running on CI.conformance-integrationon the runner.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. The Branch E2Ee2e-suitesjob runs thefeaturesfamily, so conformance doesn't run twice.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. All fiveconformance-integrationrows passed in tmachine VMs (Docker/deb, Podman rootful and rootless/rpm, k3s, HA k3s), as did the Keycloak row and bothSelect E2E suitesjobs. The one failure was the Kubernetes E2E Rust smoke job (a timeout inopenshell-e2e::credential_gating, unrelated to these changes; it failed on a different test in test(features): run feature tests against environment services, starting with Keycloak #4891's run). That job was re-run on its own and passed, so the run is green on attempt 2.Checklist