I have created a first cut at an automated test framework for the
domain manager with a number of distributed node processes.  This does
the following:

1. Starts the domain manager in a separate process using a predefined
   configuration of contributions, deployed composites, and nodes.
2. Starts one or more test nodes (also in separate processes) that use
   the domain manager for their configuration.
3. Starts an in-process test client node that exercises the test nodes
   using distributed execution.
4. Stops the test client node, the test node processes and the
   domain manager process.

All of the processes started in steps 1 and 2 are monitored for startup
and execution errors using the facilities provided by the java.lang.Process
class.  If any errors occur in any of these processes, the framework code
throws an exception and destroys all the processes.

I have checked this framework into the 1.5.1 branch in revision r797788
as part of a new itest/domainmgr module.  I intend to add a number of
submodules under the domainmgr module to test different domain manager
scenarios (basic, transaction, callback, etc.)

Currently only the "basic" submodule is checked in.  This includes the
framework together with a test to verify the fix for TUSCANY-3169.
I will add additional submodules when I do the checkins for TUSCANY-3170,
TUSCANY-3171 and TUSCANY-3172, to verify the fixes for these problems.
I already have these code fixes but I need to do some more work on the
verification tests.

I would welcome any comments or questions on the framework.  You can
see the framework code by looking in the file
 
itest/domainmgr/basic/runtest/src/test/java/domainmgr/DomainManagerBasicTestCase.java
I have added comments in the code to explain the various steps.

Currently the framework is embedded directly in the test case code.  As
additional tests are created, it would make sense to refactor the framework
as a separate generic piece of code that is used by the test cases.  I will
look at doing this as I add some more tests that use the framework.

  Simon

Reply via email to