anchor.diff:           will_return_by_value(returned_struct, sizeof(Struct));
            /* `returned_struct` has been copied to an allocated area */
   -----------------------
  +
  +NOTE: In some future version the `size` argument will be removed from `will_return_by_value()` size since the macro can easily calculate that for you.
  +
   
   The mock function will then look like this:
   
  
positive.code: So, how do the *Cgreen* stubs work?
  Each `expect()` describes one call to the stub and a call to `will_return()` is included it will aggregate into a list of return values which are used and returned in order as the expected calls arrive.
  
  The `mock()` macro captures the parameter names and the `__func__` property (the name of the stub function).
  *Cgreen* can then use these to look up entries in the return list, and also to generate more helpful messages.
  
  We can now crank out our tests quite quickly...
  
negative.code: -----------------------
  
  
  === Returning ``struct``s
  
  If the function we are mocking returns structs by value, then our mock function need to do that too.
  To do this we must use specific return macro, `will_return_by_value()`.
  Below is some example code using an imaginary struct typedef'ed as `Struct` and a corresponding function, `retrieve_struct()`, which we want to mock.
  
  The underlying mechanism of this is that in the test we create the struct that we want to return.
  The macro `will_return_by_value()` then copies that to a dynamically allocated area, saving it so that a pointer to that area can be returned by `mock()`.
  
  [source,c]
  -----------------------
  