Description
The memcached testapp tests are split into ~35 different test binaries. This was primarily done to allow tests to run in parallel (to speed up CV test time).
Because the testapp tests can run in an embedded mode where they run an embedded memcached; each test binary essentially contains the whole of memached. As a result there's two major disadvantages to this approach :-
- We need to link ~35 different executables every time any common code changes
- We need space for ~35 different executables which are 99% the same.
In the case of (2), the binary size of each test can become very large when building with various diagnostics - for example each binary is ~140MB each when building with UndefinedBehaviourSanitizer. That totals close to 5GB for all the testapp binaries.
To reduce these sizes, we should combine the memcached testapp tests into a single binary. Consider looking at https://github.com/google/gtest-parallel to handle running the tests in parallel.