Skip to content

Unit test framework that runs on limited resource devices like microcontrollers as well as PCs

License

Notifications You must be signed in to change notification settings

kylemanna/nanotest

Repository files navigation

nanotest

Build Status

The goal of this unit test framework is to run on limited resource devices like microcontrollers (Cortex-M0/M0+/M3/M4/M7, Cortex-R4/R5/R7) which have as little as 4KB of RAM and no POSIX OS features like fork(), pipe(), malloc() or signal().

The majority of the development can be done the developer's native machine (i.e. Linux) and then easily cross compiled to the target platform. The high level code must be sufficiently abstracted away from the hardware for this approach to work. The software can be compiled for the development machine's instruction set or for the embedded device and emulated via qemu.

The unit test framework is designed to work on the microcontroller to aid in both development and verification and to enable things like built in self-tests (BISTs) and power on self-tests (POSTs). The integrated self-tests could ship with the product and provides a framework for basic diagnostics.

Continuous integration tools like Travis-CI can (and should!) be employed to automate a series of tests instrumented by this framework.

Demo

tl;dr;

git clone https://github.com/kylemanna/nanotest.git
mkdir nanotest/examples/build
cd nanotest/examples/build
cmake ..
make
make test ARGS=-V

Examples

See the examples folders and associated READMEs.

About

Unit test framework that runs on limited resource devices like microcontrollers as well as PCs

Resources

License

Stars

Watchers

Forks

Packages

No packages published