labath added a comment.

In https://reviews.llvm.org/D31129#705597, @zturner wrote:

> See what you think about this.  I've created a folder called `Mocks` under 
> `Utility`, and created a new target out of it.  `UtilityTests` links against 
> it, and so does `InterpreterTests`.  To do this I had to add the lldb project 
> root as an include directory, this way you can write `#include 
> "unittests/Utility/Mocks/MockTildeExpressionResolver.h"`.  Another 
> possibility would be to create `lldb/unittests/Mocks/Mocks/Utility`, and then 
> add `lldb/unittests/Mocks` as an include folder.  This way you could write 
> `#include "Mocks/Utility/MockTildeExpressionResolver.h"`.  I don't have a 
> strong preference either way.
>
> I explicitly chose NOT to make one single target for all mocks (although 
> there is only one right now obviously), because then you would have 
> `UtilityTests` bringing in mocks from projects it doesn't depend on, and thus 
> it would link against those projects as well, breaking the library layering.


It's not exactly the pinnacle of elegance, but I think this is better (and I 
don't know how I would improve it). The only thing I am not sure about is the 
`Mocks` folder name. I am thinking that we may run into the situation where we 
have some other test-only code we want to share, but it is not strictly a 
"mock". The only function that comes to mind right now is the 
`CreateConnectedSockets` from SocketTest.cpp -- I could have to reused this in 
gdb-remote tests, although I eventually opted for reimplementing it, as I could 
make it a lot simpler for this special case. (Although in this case it may have 
made sense to add a function like that to the regular codebase). I don't really 
have a good suggestion for a name though, so maybe we can leave this until a 
real case for it comes up.


https://reviews.llvm.org/D31129



_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to