In order to write tests that exercise SSL with other components of Mesos, such as the HTTP scheduler library, we need to use the setup/teardown logic found in the SSLTest fixture.
Currently, the test fixtures have separate inheritance structures like this:
where ::testing::Test is a gtest class.
The plan is the following:
- Change SSLTest to inherit from TemporaryDirectoryTest. This will require moving the setup (generation of keys and certs) from SetUpTestCase to SetUp. At the same time, some of the cleanup logic in the SSLTest will not be needed.
- Move the logic of generating keys/certs into helpers, so that individual tests can call them when needed, much like MesosTest.
- Write a child class of SSLTest which has the same functionality as the existing SSLTest, for use by the existing tests that rely on SSLTest or the RegistryClientTest.
- Have MesosTest inherit from SSLTest (which might be renamed during the refactor). If Mesos is not compiled with --enable-ssl, then SSLTest could be #ifdef'd into any empty class.
The resulting structure should be like: