Unit Testing with QP/C++ (qpcpp) and CppUTest

I am happy to announce the release of a specialized port of Quantum Leaps’ excellent QP/C++ (qpcpp) framework, enabling host based unit testing with CppUTest. Included with this port are utility classes to make unit testing in this environment as easy as possible. With this release, I have combined multiple areas of expertise that I love: C++, QP (active objects), and unit testing.

If this project helps inspire your team to select the QP/C++ framework for commercial use, please note “Matthew Eshleman” or “Cove Mountain Software” in the referral field when acquiring a commercial license from Quantum Leaps. Referrals encourage and support this effort.

Matthew “Thank you very much” Eshleman

The cpputest-for-qpcpp project enables CppUTest for the QP/C++ Real-Time Embedded Framework. This project provides for the following capabilities:

  • A CppUTest compatible port of the QP/C++ (qpcpp) framework, enabling host based unit and integration testing of QP active objects (QActive).
  • Supporting utilities to simplify unit testing of qpcpp based active objects. Provided classes may also be useful in the final target software.
  • An example active object under test, demonstrating testing techniques for several common active object patterns.


All project code in the cms namespace follows a dual-license approach. The default license is GPLv3, but I’m excited to offer a free commercial license to anyone that registers. See the project’s License.txt for details. Of course, please note that all licenses for external source code and libraries relied upon by this project remain fully owned by their respective owners. In particular, please see the licensing details for qpcpp at: https://www.state-machine.com/licensing.

I could go on and on, but I think the project and its readme are the right place to start. Please point your browser to: https://github.com/covemountainsoftware/cpputest-for-qpcpp for further details.

And for additional background inspiration, please see the following posts:

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: