C++ Q&A

As my interest in C++ continues, I have been soliciting questions about C++ for embedded on various social media platforms. I you have a question, please email or tweet and I will do my best to answer it.

Here is a question that came in yesterday:

How testable is C++, specifically for constructs like abstract classes, templates, exceptions?

This is quite a complex question to address, partly because it can be hard to separate “testing” from “debugging”. Taking these example constructs, classes and templates may largely be tested by means of instantiations. For a temple, for example, you need to write a test harness that instantiates the template using a variety of likely data types and verify that the resulting code is valid. Exception handling is a different issue. There are a finite number of exception types to test, so the test harness just needs to include code that throws each one. Then it is a question of ensuring that the right catch block is invoked for each exception [and that the code therein does what is required].

Maybe the questioner has a broader concern, in which case they are invited come back with clarification.

Post Author

Posted May 15th, 2014, by

Post Tags

Post Comments


About The Colin Walls Blog

This blog is a discussion of embedded software matters - news, comment, technical issues and ideas, along with other passing thoughts about anything that happens to be on my mind. The Colin Walls Blog

@colin_walls tweets

Follow colin_walls


2 comments on this post | ↓ Add Your Own

Commented on 20 May 2014 at 18:43
By Muhammad Yasir Khan

Hi Colin,
I attended your online lecture on C++ yesterday and found it really informative. Looking forward to learn more from you. What do you think of using a C++ testing framework like Google Mock and Google Test. Came across an application where unit tests were written using these two ?

Commented on 21 May 2014 at 09:22
By Colin Walls

Glad you are enjoying the class Muhammad. I think that any tool that makes unit testing easy is a good thing. IMHO, C++ for embedded is most successful when doing a bottom up implementation and testing/measuring as you go.

Add Your Comment