You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Jamie Smith edited this page Nov 6, 2020
·
4 revisions
mbed-cmake supports unit tests with a similar structure to mbed-cli's unit testing setup. You write unit tests using the GTest framework, and mbed-cmake will handle building them into an executable and executing them using CMake's built-in ctest test runner. Mbed OS also includes an incomplete set of stub headers used for unit testing, and mbed-cmake makes these available to your tests.
Unit Testing Mode
Unit testing mode can be enabled using -DMBED_UNITTESTS=TRUEargument to CMake. This argument disables the mbed-cmake toolchain file and lets CMake find the native compilers on the host. Note that because of this, you must use it on a fresh new build directory or it won't take effect properly. In fact, it might be easiest to have two CMake build dirs, one with unit tests enabled and one without.
A couple of other mbed-cmake features are activated in unit test mode:
mbed-cmake will automatically download and build the GTest and GMock libraries. These libraries are not available in most package managers, so this should save some effort setting up tests.
The add_mbed_executable() function becomes a no-op (it creates a dummy target that is not built).
The mbed-os cmake target is still exported, but now it refers to the mbed dummy headers for unit testing. This should allow some libraries that link to mbed-os to still compile.
add_mbed_unit_test() is available as a convenience function. Ths function is simple shorthand for creating and adding a test program: