Rupert Smith wrote:
I see your point, shifting as much stuff into the coordinator as
possible. I had a suspicion I was making the test case interaction
between the test clients too complex.
Don't forget there are *two* points for centralizing test control code.
One is the co-ordinator, the other is the test runners that will
actually be running the tests. The tests themselves should be straight
JUnit/CppUnit tests but the test runners can intervene pre- and post-
each test, they can collect failures, communicate with coordinator etc.
Things that are more appropriate to do in the client address space can
be done in the test runners. I don't have specific items in mind its
just a general observation.
The only thing that has to be done *within* the tests is handling
timeouts based on message traffic, and I think even that should hidden
in the test setup code. It should be trivial to add an extension point
in each qpid client library to run a callback for each message
sent/received. We can use it right now to measure timeouts for tests,
and if done right it will be useful for all sorts of other "frameworky"
things in future - capturing management information, logging, debugging
etc. I feel an interceptor pattern coming on :)
Cheers,
Alan.