There are several neat things we can do to enable reuse of the test code for different configurations.
The key lies in separating out the tests which test the protocol from those that test server internals
in these tests may fail under different configurations. To some degree this is true for most cases
obviously, not configuring the LDAP server will break all protocol tests. However presuming at a logical
level you have the same relative LDAP configuration just use a different partition implementation or use
a new handler etc then this code should work. And reuse becomes valuable to affirm that this is actually
We tried to separate the protocol testing code to some degree with server-unit verses core unit.
However with more people forgetting the original intent of the separation I think it's gotten out of hand.
Regardless test reuse can be achieved if we can decouple the tests from the configuration: more specifically
how the server is configured and started. Doing so will allow all sorts of possibilities.
(1) plugging in different component implementations to confirm correct operation
(2) using a pool of servers that have already been fired up to speed up and parallelize protocol tests
(3) applying these tests on other servers to see how they behave in various situations
I think there are more possibilities here besides the 3 I listed.