Skip to content

E2E coverage

What the live end-to-end suite exercised in its last recorded full run: every catalog action on each of the three tool surfaces, against real Arcane v2.17.2 instances in the Docker-in-Docker estate. The figures come from test/e2e/coverage-record.json, which make e2e-coverage-record folds from the ledger the suite writes while it runs; make check-e2e-coverage checks the record, this page and the suite’s sources against the catalog without an estate. Testing explains how the suite works.

Date2026-11-02
Commit245296129b6a
Working treeclean
Arcanev2.17.2
Go1.27.3
Duration18 min 13 s
Scenario subtests186: 186 passed, 0 failed, 0 skipped

455 of 461 actions in 52 domains succeeded on all three surfaces. Every action has exactly one status:

StatusActionsMeaning
covered455A call succeeded on the dynamic, meta and individual surfaces, in a test that passed.
partial0Succeeded on some surfaces only.
cleanups only0Succeeded only as an end-of-scenario cleanup, whose result no scenario asserts.
failure paths only0Called, but every call failed.
host-dependent0Failed only with an error declared as the host’s network, not the action (for example a public registry this host cannot reach).
untested6Listed in test/e2e/untested.yaml: the estate cannot exercise it, for the reason given below.
not exercised0No scenario call reached it.

Besides succeeding, 89 actions have a failure path asserted too: a MustFail call that had to fail did (a missing resource, a refused request, a guard).

DomainActionsCoveredPartialCleanups onlyFailure paths onlyHost-dependentUntestedNot exercised
activity44––––––
api_key88––––––
app_image44––––––
auth99––––––
backup1716––––1–
build66––––––
container2323––––––
customize22––––––
dashboard11––––––
diagnostics1212––––––
environment1515––––––
event44––––––
federated_credential66––––––
git_repository99––––––
gitops1313––––––
image1817––––1–
image_update77––––––
job1110––––1–
mobile_push66––––––
network99––––––
notification66––––––
oidc1010––––––
passkey2121––––––
podman66––––––
podman_pod88––––––
podman_quadlet77––––––
podman_secret55––––––
port11––––––
project2626––––––
registry1111––––––
role88––––––
s3_destination1010––––––
server33––––––
settings55––––––
stream11––––––
swarm1313––––––
swarm_config55––––––
swarm_node1212––––––
swarm_secret55––––––
swarm_service99––––––
swarm_stack99––––––
swarm_task11––––––
system118––––3–
template1515––––––
updater55––––––
upload44––––––
user66––––––
variable66––––––
volume1313––––––
volume_backup1414––––––
vulnerability1616––––––
webhook55––––––
Total461455000060

Each action on each surface is one cell, judged from the calls the scenarios made through that surface:

Statedynamicmetaindividual
Succeeded: a call that was not a cleanup succeeded in a test that did not fail455455455
Test failed: such a call succeeded, but only in tests that failed000
Cleanup only: only end-of-scenario cleanups succeeded000
Failure only: every call failed444
Not called: no call222

The reasons are quoted from test/e2e/untested.yaml and from the host-dependent declarations in cmd/audit_e2e_coverage.

ActionStatusSurfacesReason
backup.restoreuntesteddynamic: failure only
meta: failure only
individual: failure only
Arcane finds its own container through its cgroup before restoring. The estate managers do not run in the daemon they manage, and an Arcane run inside the estate’s Docker-in-Docker resolves the outer dind container, which the inner daemon does not know (‘inspect Arcane container: No such container’). TestPlatform_PrivateManager covers everything up to it and calls restore, checking the result if it ever succeeds.
image.patchuntesteddynamic: failure only (expected failure)
meta: failure only (expected failure)
individual: failure only (expected failure)
Needs a daemon on the containerd image store (Copacetic uses BuildKit’s docker exporter); the estate’s docker:dind daemons use overlay2, so Arcane refuses before patching. The core suite asserts that refusal.
job.resolve_rununtesteddynamic: failure only (expected failure)
meta: failure only (expected failure)
individual: failure only (expected failure)
Deprecated mixed-version compatibility route (removed in Arcane v3): only needs_attention runs can be resolved, and Arcane (v2.16.1 to v2.17.2) records every such outcome as failed (pkg/scheduler/runs/actors.go), so it only succeeds for a run of an agent older than v2.16 (verified against a v2.14.0 agent, plan/upstream-bugs/job-resolve-run-unreachable). The estate runs v2.17.1 agents only; the suite asserts the refusal.
system.update_alluntesteddynamic: not called
meta: not called
individual: not called
Same as system.upgrade, for every environment starting with the manager.
system.update_all_statusuntesteddynamic: failure only
meta: failure only
individual: failure only
Answers 404 ‘no update-all job found’ until system.update_all has run, which the estate cannot do (see system.update_all). The core suite accepts the 404.
system.upgradeuntesteddynamic: not called
meta: not called
individual: not called
Upgrades the Arcane server itself by replacing its own container, which it must find on the daemon it manages; the estate managers run outside the daemons they manage, and replacing the server under test would end the run.

None.