====== Docker ====== We can use Docker to set up a stable and repeatable environment where our firmware is built and unit tested. Furthermore, we can use access the hardware from the container to perform integration testing. A shared directory will allow us to access our code from within the containerized environment. from https://dev.to/djangostars/what-is-docker-and-how-to-use-it-with-python-tutorial-87a: * 1 application = 1 container. * Run the process in the foreground (don't use systemd, upstart or any other similar tools). * Keep data out of containers – use volumes. * Do not use SSH (if you need to step into container, you can use the docker exec command). * Avoid manual configurations (or actions) inside container. https://dev.to/dalimay28/using-docker-for-embedded-systems-development-b16 https://blog.feabhas.com/2017/09/introduction-docker-embedded-developers-part-1-getting-started/ https://ownyourbits.com/2017/06/20/c-build-environment-in-a-docker-container/ # install colorgcc export PATH=/home/docker/bin:$PATH wget https://raw.githubusercontent.com/olibre/colorgcc/master/colorgcc.pl wget https://raw.githubusercontent.com/olibre/colorgcc/master/colorgccrc sudo apt-get install perl-modules-5.26 ln -s colorgcc.pl arm-none-eabi-gcc ln -s colorgcc.pl arm-none-eabi-ld ====== Unit testing ====== [[http://check.sourceforge.net/|Check]] http://embunit.sourceforge.net/ http://programmers.stackexchange.com/questions/104332/best-practice-when-unit-testing-for-embedded-development https://dmitryfrank.com/articles/unit_testing_embedded_c_applications [[http://eradman.com/posts/tdd-in-c.html]] http://www.electronvector.com/ [[https://embeddedartistry.com/blog/2018/10/15/embedded-systems-testing-resources]] https://interrupt.memfault.com/blog/unit-testing-basics framekworks: * seatest * MinUnit * Unity * https://github.com/bvdberg/ctest ====== Continuous integration ====== https://wiki.jenkins.io/display/JENKINS/Test+Results+Analyzer+Plugin https://community.arm.com/developer/tools-software/tools/b/tools-software-ides-blog/posts/implementing-embedded-continuous-integration-with-jenkins-and-docker-part-1 https://github.com/features/actions