mcuboot/sim
Fabio Utzig d32fd64e47 Fix mbed-tls' walk_dir in build
Signed-off-by: Fabio Utzig <utzig@apache.org>
2017-12-21 13:32:59 -07:00
..
mcuboot-sys Fix mbed-tls' walk_dir in build 2017-12-21 13:32:59 -07:00
simflash sim: Move `areadesc` into `Images` struct 2017-11-07 09:39:45 -07:00
src Add ecdsa signing support to the simulator 2017-12-13 14:26:08 -07:00
tests sim: Create cargo tests for each testcase 2017-11-07 09:39:45 -07:00
.gitignore sim: Add simulator code 2017-01-09 12:28:10 -07:00
Cargo.lock Update cargo lock 2017-12-13 14:26:08 -07:00
Cargo.toml Update ring+gcc crates and declare sig-ecdsa feature 2017-12-13 14:26:08 -07:00
README.rst sim: Update README for new test organization 2017-11-07 09:39:45 -07:00

README.rst

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.

.. _Rust: https://www.rust-lang.org/

.. _installation: https://www.rust-lang.org/en-US/install.html

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

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.

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.