Skip to content

Latest commit

 

History

History

sim

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 

MCUboot simulator

This is a small simulator designed to exercise the mcuboot upgrade code, specifically testing untimely reset scenarios to make sure the code is robust.

Prerequisites

The simulator is written in Rust, and you will need to install it to build it. The installation page describes this process. The simulator can be built with the stable release of Rust.

Dependent code

The simulator depends on some external modules. These are stored as submodules within git. To fetch these dependencies the first time:

$ git submodule update --init --recursive

will clone and check out these trees in the appropriate place.

Testing

The tests are written as unit tests in Rust, and can be built and run automatically:

$ cargo test

this should download and compile the necessary dependencies, compile the relevant modules from mcuboot, build the simulator, and run the tests.

There are several different features you can test. For example, testing RSA signatures can be done with:

$ cargo test --features sig-rsa

For a complete list of features, see Cargo.toml.

Debugging

If the simulator indicates a failure, you can turn on additional logging by setting RUST_LOG=warn or RUST_LOG=error in the environment:

$ RUST_LOG=warn ./target/release/bootsim run ...

It is also possible to run specific tests, for example:

$ cargo test -- basic_revert

which will run only the basic_revert test.