tests/update_eve_image: eveimage-remove leftover BaseOsConfig at end#1172
Merged
eriknordmark merged 2 commits intoMay 18, 2026
Merged
Conversation
eriknordmark
added a commit
to eriknordmark/eden
that referenced
this pull request
May 13, 2026
Two follow-ups for the nodeagent suite: 1. Raise outer -test.timeout values in eden.nodeagent.tests.txt so the test-framework wrapper doesn't kill a healthy run before its inner lim.test waits resolve. On the coverage-instrumented EVE build, post-reboot Info republish takes ~12 min, so the prior 15-minute timeouts on reset_on_disconnect_link_down / _blackhole could not accommodate even one of the three sequential lim.test waits each test uses (the test-script -timewait stays at 30m so a healthy device still resolves quickly; the change only relaxes the outer cap). New values: 45m for the disconnect / fallback tests, 20m for restart_counter_monotonic, 40m for maintenance_no_disk_space. 2. Add a get-config assertion after every eveimage-remove call so the test fails loudly if the controller config still references the removed image. The current eden CLI EdgeNodeEVEImageRemove only removes the legacy baseosconfig list entry and leaves the modern single-block baseos field + contentInfo[] populated; this assertion surfaces that bug end-to-end. (The corresponding eden CLI fix lands in PR lf-edge#1172 alongside the update_eve_image cleanup tests.) Signed-off-by: eriknordmark <erik@zededa.com> Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
eriknordmark
added a commit
to eriknordmark/eden
that referenced
this pull request
May 13, 2026
Two follow-ups for the baseosmgr suite: 1. Raise outer -test.timeout values in eden.baseosmgr.tests.txt to match realistic suite runtime on the coverage-instrumented EVE build. retry_update issues four sequential lim.test waits at -timewait 30m each, plus 6 minutes of exec sleep — the 60-minute outer cap killed the suite mid-revert. Bumped to 90m for retry_update and 45m for force_fallback. The test-script -timewait values are unchanged; only the wrapper cap relaxes. 2. Add a get-config assertion after every eveimage-remove call so the test fails loudly if the controller config still references the removed image. The current eden CLI EdgeNodeEVEImageRemove only removes the legacy baseosconfig list entry and leaves the modern single-block baseos field + contentInfo[] populated; this assertion surfaces that bug end-to-end. (The corresponding eden CLI fix lands in PR lf-edge#1172.) Signed-off-by: eriknordmark <erik@zededa.com> Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
update_eve_image_http, update_eve_image_oci, and revert_eve_image_update each push a BaseOsConfig via eden controller edge-node eveimage-update but only `eden eve reset` (clears device config) at the end, not `eveimage-remove`. The pushed BaseOsConfig therefore lingers in adam after the test, which leaks state into subsequent tests / suites that do baseos work. Add a final eveimage-remove of the pushed version (file:// for the http/revert paths, oci:// for the oci path) before the eden eve reset. Signed-off-by: eriknordmark <erik@zededa.com> Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ests
EdgeNodeEVEImageRemove previously only removed the legacy
baseosconfig list entry on the device's controller config. The
modern single-block baseos field (Activate / ContentTreeUUID /
BaseOsVersion / RetryUpdateCounter) and the corresponding
contentInfo[] entry were left in place, so adam continued to ship the
"installed" baseos to the device even after the user explicitly
asked for it to go away. Subsequent eveimage-update calls then
behaved as no-ops because the device already had the same
ContentTreeUUID in its baseos block.
Make the remove path symmetric with EdgeNodeEVEImageUpdate: when the
removed version matches the modern baseos block, clear all four of
its fields and drop the corresponding ContentTree from the cloud's
in-memory list. The on-the-wire EdgeDevConfig now contains
baseos: {} and contentInfo: [] for that image.
Surface the bug at the test level: add `eden controller edge-node
get-config` + `! stdout '<version>'` after every eveimage-remove call
in tests/update_eve_image/testdata/. Without this fix the assertion
fails because the version still appears in the get-config output.
Signed-off-by: eriknordmark <erik@zededa.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
beee963 to
24a6757
Compare
eriknordmark
added a commit
to eriknordmark/eden
that referenced
this pull request
May 15, 2026
Two follow-ups for the baseosmgr suite: 1. Raise outer -test.timeout values in eden.baseosmgr.tests.txt to match realistic suite runtime on the coverage-instrumented EVE build. retry_update issues four sequential lim.test waits at -timewait 30m each, plus 6 minutes of exec sleep — the 60-minute outer cap killed the suite mid-revert. Bumped to 90m for retry_update and 45m for force_fallback. The test-script -timewait values are unchanged; only the wrapper cap relaxes. 2. Add a get-config assertion after every eveimage-remove call so the test fails loudly if the controller config still references the removed image. The current eden CLI EdgeNodeEVEImageRemove only removes the legacy baseosconfig list entry and leaves the modern single-block baseos field + contentInfo[] populated; this assertion surfaces that bug end-to-end. (The corresponding eden CLI fix lands in PR lf-edge#1172.) Signed-off-by: eriknordmark <erik@zededa.com> Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
eriknordmark
added a commit
to eriknordmark/eden
that referenced
this pull request
May 15, 2026
Two follow-ups for the nodeagent suite: 1. Raise outer -test.timeout values in eden.nodeagent.tests.txt so the test-framework wrapper doesn't kill a healthy run before its inner lim.test waits resolve. On the coverage-instrumented EVE build, post-reboot Info republish takes ~12 min, so the prior 15-minute timeouts on reset_on_disconnect_link_down / _blackhole could not accommodate even one of the three sequential lim.test waits each test uses (the test-script -timewait stays at 30m so a healthy device still resolves quickly; the change only relaxes the outer cap). New values: 45m for the disconnect / fallback tests, 20m for restart_counter_monotonic, 40m for maintenance_no_disk_space. 2. Add a get-config assertion after every eveimage-remove call so the test fails loudly if the controller config still references the removed image. The current eden CLI EdgeNodeEVEImageRemove only removes the legacy baseosconfig list entry and leaves the modern single-block baseos field + contentInfo[] populated; this assertion surfaces that bug end-to-end. (The corresponding eden CLI fix lands in PR lf-edge#1172 alongside the update_eve_image cleanup tests.) Signed-off-by: eriknordmark <erik@zededa.com> Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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
The three tests under `tests/update_eve_image/` push a BaseOsConfig via `eden controller edge-node eveimage-update` but only call `eden eve reset` (clears device config) at the end, not `eveimage-remove`. The pushed BaseOsConfig therefore lingers in adam after the test, leaking state into subsequent tests / suites that do baseos work — most visibly in coverage-instrumented G3 sequences where the next baseos test does its own update and adam's residual state changes the expected behaviour.
Add a final `eveimage-remove` of the pushed version before the `eden eve reset` in:
Test plan
🤖 Generated with Claude Code