basic simulator self-update test#663
Merged
dgarske merged 2 commits intowolfSSL:masterfrom Jan 9, 2026
Merged
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This PR adds simulator-based testing for wolfBoot's self-update mechanism, allowing automated verification that the bootloader can update itself correctly. The implementation includes test targets for both internal and external flash configurations, along with a corresponding GitHub Actions workflow.
Key changes:
- Introduces two new test targets (
test-sim-self-updateandtest-sim-self-update-ext) that verify self-update by comparing a dummy payload after the update - Adds simulator-specific code paths in
update_flash.cto useARCH_FLASH_OFFSETinstead of the_start_textlinker symbol - Implements
arch_reboot()for the simulator that exits the process
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| tools/test.mk | Adds two new test targets for self-update testing with internal and external flash configurations |
| src/update_flash.c | Adds ARCH_SIM conditional logic to use ARCH_FLASH_OFFSET instead of _start_text symbol for simulator compatibility |
| hal/sim.c | Implements arch_reboot() function that exits the simulator process |
| config/examples/sim-self-update.config | Configuration file for internal flash self-update test |
| config/examples/sim-self-update-ext.config | Configuration file for external flash self-update test |
| .github/workflows/test-sim-self-update.yml | GitHub Actions workflow to run both self-update tests in CI |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
dgarske
approved these changes
Jan 9, 2026
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.
Adds support for basic sanity-check testing of the self-update mechanism in the simulator. The test verifies that a new self-update payload is copied to the expected flash location.
This change includes a small simulator-only modification to update_flash.c to work around
_start_textnot being a real symbol, and introduces a new test target along with a corresponding GitHub Actions workflow.The new test target:
0xAAbytes, matching the size of a real bootloader.--wolfboot-updateflag.IMG_STATE_UPDATING.arch_reboot()exits the process.Note that we can't really test true "reboot into simulated wolfBoot" without some hackery spawning another process, but figured this would be a good sanity check