Getting ready

For this recipe, we require three files. The first is the implementation that we wish to test (we can call the file leaky_implementation.cpp):

#include "leaky_implementation.hpp"int do_some_work() {  // we allocate an array  double *my_array = new double[1000];  // do some work  // ...  // we forget to deallocate it  // delete[] my_array;  return 0;}

We also need the corresponding header file (leaky_implementation.hpp):

#pragma onceint do_some_work();

And, we need the test file (test.cpp):

#include "leaky_implementation.hpp"int main() {  int return_code = do_some_work();  return return_code;}

We expect the test to pass, since the return_code is hardcoded to 0. However, we also hope to detect a memory leak, since we forgot to de-allocate ...

Get CMake Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.