You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@river.apache.org by Patricia Shanahan <pa...@acm.org> on 2010/08/20 07:16:12 UTC

ServiceDiscoveryManager test coverage

As indicated in the "TaskManager Progress" thread, I think, based on 
reading the source code, that there is a concurrency bug in 
ServiceDiscoveryManager.LookupCacheImpl's addProxyReg method.

I added logging to see which tests I should run to evaluate a fix. As 
far as I can tell, the automated system contains a single test that 
creates a ServiceDiscoveryManager, LeaseRenewDurRFE, and it does not 
appear to use addProxyReg.

Are there any tests in addition to the QA and JTreg tests that might 
cover this?

Patricia

Re: ServiceDiscoveryManager test coverage

Posted by Patricia Shanahan <pa...@acm.org>.
On 8/29/2010 8:27 AM, Jonathan Costers wrote:
> seems my previous email got truncated :)
> in any case, the list of tests would be the same than if you would run the
> following (all) categories:
...
> If anyone feels adventurous, please go ahead :-)
> I will try and let this run for a while and see what happens.
> I do know that some tests used to hang on me in the past, so im not
> expecting this run to complete normally.
...

Maybe just run it until you have enough failures to keep us busy for a 
while?

I think we may have a lot of test failures in our near future, so maybe 
we should think about a process for managing and resolving them. Here 
are my ideas, but remember my inexperience with River and Apache 
development process, and modify as needed:

1. Every test failure gets a JIRA. A group of similar tests can share a 
single JIRA until they are found to have different causes. E-mails 
discussing a test failure should refer to the JIRA item.

I volunteer to write up the ones that have been discussed recently in 
the mailing list. Once that is done, I suggest whoever finds the test 
failure write it up.

2. Examine each test to see if it needs a resource or configuration that 
is not available to us. If so, edit the .td to skip the test, but keep 
the JIRA open until we get the appropriate configuration, or modify the 
test to not need it, or decide the test is unnecessary and can be 
permanently skipped.

Ideally, we should pick a fixed keyword for each missing resource, and 
use the keywords in .td comments, so that we can easily find all tests 
that are being skipped for a given reason.

3. Find when the test stopped working. The presumption is that every 
test has worked at some time in the past. For recent regressions, narrow 
it down to the SVN revision level. For older regressions, the release 
level may be sufficient.

4. Analyze and fix the problem.

I see that the JIRA records have an "assigned" field. Who can set that 
field? It may be useful to avoid tripping over each other to note who is 
working on a given test failure.

I can file JIRA items, and narrow regressions down by binary search. I 
don't know enough about the resources to determine which tests need ones 
we don't have. At least initially, I'll be slow debugging just because 
I'll be learning my way around River as I go.

Does this make any sense? Improvements?

Patricia


Re: ServiceDiscoveryManager test coverage

Posted by Jonathan Costers <jo...@googlemail.com>.
seems my previous email got truncated :)
in any case, the list of tests would be the same than if you would run the
following (all) categories:

      categories=implservicediscoveryevent fiddlerfiddleradmin
basicinvocationdispatcher allgroups jeri_spec specservicediscovery
renewalservice_spec coreconstraint implservicediscovery javaspace_impl_api
txnmanager_impl id_spec io_spec lookupservice_spec thread config
basicobjectendpoint_spec locatordiscovery_spec javaspace_impl_admin
eventmailbox_spec servicediscovery_spec lookupdiscovery url_spec
eventmailbox_impl jrmp_spec specservicediscoverylookup loader javaspace
basicobjectendpoint policyprovider discoverymanager_spec start
renewalservice specservicediscoverydiscovery txnmanager
javaspace_impl_leasing spec constraint impllocatordiscovery test_set04
basicinvocationdispatcher_spec test_set03 basicinvocationhandler_spec
test_set00 test_set02 test_set01 servicediscovery javaspace_impl_matching
renewalmanager_spec snapshot jeri locatordiscovery_impl
servicediscoverycache lookupservice txnmanager_spec discoveryservice
javaspace_spec joinmanager_impl speclocatordiscovery javaspace_conformance
activation_spec basicinvocationhandler discoveryservicelease
servicediscoverylookup renewalmanager scalability loader_spec reliability
constraint_spec servicediscoveryevent discoveryserviceevent
specservicediscoveryevent servicediscovery_impl fiddleradmin
discoverymanager jrmp impllookupdiscovery eventmailbox renewalservice_impl
lookupservice_impl stress config_spec discoveryproviders_impl javaspace_impl
url coreconstraint_spec joinmanager_spec discoveryservice_impl
proxytrust_spec discoveryservice_spec joinmanager iiop iiop_spec
lookupdiscovery_spec end2end_impl javaspace_impl_javaspace05
lookupdiscovery_impl end2end security_spec security discoverymanager_impl
javaspace05_conformance id servicediscoverydiscovery proxytrust
speclookupdiscovery fiddlerjoinadmin activation export discardproblem
specservicediscoverycache javaspace_impl_transaction start_impl io
export_spec policyprovider_spec javaspace_impl_notify locatordiscovery
thread_impl
-----------------------------------------

If anyone feels adventurous, please go ahead :-)
I will try and let this run for a while and see what happens.
I do know that some tests used to hang on me in the past, so im not
expecting this run to complete normally.

2010/8/29 Jonathan Costers <jo...@googlemail.com>

> 2010/8/27 Peter Firmstone <ji...@zeus.net.au>
>
>> Hi JC,
>>
>>
>> Can we have an ant target for running all the tests?
>>
>>
>>
> I made some changes to the code for the QA harness so that when not
> specifying any test categories, it will load all categories it can find.
>
> Here is what came up:
>
> -----------------------------------------
> SETTING UP THE TEST LIST:
>
>    Adding test:
> com/sun/jini/test/impl/servicediscovery/event/AddListenerEvent.td
>    Adding test:
> com/sun/jini/test/impl/servicediscovery/event/DiscardDownReDiscover.td
>    Adding test:
> com/sun/jini/test/impl/servicediscovery/event/DiscardServiceDown.td
>    Adding test:
> com/sun/jini/test/impl/servicediscovery/event/DiscardServiceUp.td
>    Adding test:
> com/sun/jini/test/impl/servicediscovery/event/LookupDropProxyTaskRace.td
>    Adding test:
> com/sun/jini/test/impl/servicediscovery/event/LookupTaskRace.td
>    Adding test:
> com/sun/jini/test/impl/servicediscovery/event/LookupTaskServiceIdMapRace.td
>    Adding test:
> com/sun/jini/test/impl/servicediscovery/event/NotifyEventDropProxyTaskRace.td
>    Adding test:
> com/sun/jini/test/impl/servicediscovery/event/ReRegisterBadEquals.td
>    Adding test:
> com/sun/jini/test/impl/servicediscovery/event/ReRegisterGoodEquals.td
>    Adding test:
> com/sun/jini/test/impl/servicediscovery/event/ServiceDiscardCacheTerminate.td
>    Adding test:
> com/sun/jini/test/impl/fiddler/fiddleradmin/GetLeaseDurationBound.td
>    Adding test:
> com/sun/jini/test/impl/fiddler/fiddleradmin/GetLogToSnapshotThreshold.td
>    Adding test:
> com/sun/jini/test/impl/fiddler/fiddleradmin/GetSnapshotWeight.td
>    Adding test:
> com/sun/jini/test/impl/fiddler/fiddleradmin/SetLeaseDurationBound.td
>    Adding test:
> com/sun/jini/test/impl/fiddler/fiddleradmin/SetLogToSnapshotThreshold.td
>    Adding test:
> com/sun/jini/test/impl/fiddler/fiddleradmin/SetSnapshotWeight.td
>    Adding test:
> com/sun/jini/test/spec/jeri/basicinvocationdispatcher/CheckPermissionClassTest.td
>    Adding test:
> com/sun/jini/test/spec/jeri/basicinvocationdispatcher/ConstructorAccessorTest.td
>    Adding test:
> com/sun/jini/test/spec/jeri/basicinvocationdispatcher/Dispatch_CheckAccessExceptionTest.td
>    Adding test:
> com/sun/jini/test/spec/jeri/basicinvocationdispatcher/Dispatch_CheckConstraintsBadReturnTest.td
>    Adding test:
> com/sun/jini/test/spec/jeri/basicinvocationdispatcher/Dispatch_CheckConstraintsExceptionTest.td
>    Adding test:
> com/sun/jini/test/spec/jeri/basicinvocationdispatcher/Dispatch_CreateMarshalInputStreamExceptionTest.td
>    Adding test:
> com/sun/jini/test/spec/jeri/basicinvocationdispatcher/Dispatch_CreateMarshalOutputStreamExceptionTest.td
>    Adding test:
> com/sun/jini/test/spec/jeri/basicinvocationdispatcher/Dispatch_FirstRequestByteTest.td
>    Adding test:
> com/sun/jini/test/spec/jeri/basicinvocationdispatcher/Dispatch_InvokeExceptionTest.td
>    Adding test:
> com/sun/jini/test/spec/jeri/basicinvocationdispatcher/Dispatch_MarshalReturnExceptionTest.td
>    Adding test:
> com/sun/jini/test/spec/jeri/basicinvocationdispatcher/Dispatch_MarshalThrowExceptionTest.td
>    Adding test:
> com/sun/jini/test/spec/jeri/basicinvocationdispatcher/Dispatch_NormalReturnTest.td
>    Adding test:
> com/sun/jini/test/spec/jeri/basicinvocationdispatcher/Dispatch_SecondRequestByteTest.td
>    Adding test:
> com/sun/jini/test/spec/jeri/basicinvocationdispatcher/Dispatch_UnmarshalArgumentsExceptionTest.td
>    Adding test:
> com/sun/jini/test/spec/jeri/basicinvocationdispatcher/Dispatch_UnmarshalMethodExceptionTest.td
>    Adding test:
> com/sun/jini/test/spec/jeri/basicinvocationdispatcher/NullArgsTest.td
>    Adding test: com/sun/jini/test/spec/discoverymanager/DiscoveredAll.td
>    Adding test:
> com/sun/jini/test/spec/discoverymanager/GroupsDiscoveredAll.td
>    Adding test:
> com/sun/jini/test/spec/discoverymanager/GroupsMulticastMonitorReplaceAll.td
>    Adding test:
> com/sun/jini/test/spec/discoverymanager/LocsDiscoveredAll.td
>    Adding test:
> com/sun/jini/test/spec/discoverymanager/LocsMulticastMonitorReplaceAll.td
>    Adding test:
> com/sun/jini/test/spec/discoverymanager/MulticastMonitorReplaceAll.td
>    Adding test:
> com/sun/jini/test/spec/discoveryservice/event/DiscoveredAll.td
>    Adding test:
> com/sun/jini/test/spec/lookupdiscovery/ConstructorAllGroups.td
>    Adding test:
> com/sun/jini/test/spec/lookupdiscovery/DiscoveryBeginsOnSetGroupsAllAfterEmpty.td
>    Adding test:
> com/sun/jini/test/spec/lookupdiscovery/MulticastMonitorAllChange.td
>    Adding test:
> com/sun/jini/test/spec/lookupdiscovery/SetGroupsAllGroups.td
>    Adding test:
> com/sun/jini/test/spec/jeri/abstractilfactory/AccessorTest.td
>    Adding test:
> com/sun/jini/test/spec/jeri/basicilfactory/ConstructorAccessorTest.td
>    Adding test:
> com/sun/jini/test/spec/jeri/basicilfactory/CreateInstancesTest.td
>    Adding test:
> com/sun/jini/test/spec/jeri/basicilfactory/CreateInvocationDispatcherTest.td
>    Adding test:
> com/sun/jini/test/spec/jeri/basicilfactory/CreateInvocationHandlerTest.td
>    Adding test:
> com/sun/jini/test/spec/jeri/basicilfactory/GetExtraProxyInterfacesTest.td
>    Adding test:
> com/sun/jini/test/spec/jeri/basicilfactory/ObjectMethodsTest.td
>    Adding test:
> com/sun/jini/test/spec/jeri/basicinvocationhandler/CheckTrustEquivalenceTest.td
>    Adding test:
> com/sun/jini/test/spec/jeri/basicinvocationhandler/ConstructorAccessorTest.td
>    Adding test:
> com/sun/jini/test/spec/jeri/basicinvocationhandler/Invoke_CreateMarshalInputStreamExceptionTest.td
>    Adding test:
> com/sun/jini/test/spec/jeri/basicinvocationhandler/Invoke_CreateMarshalOutputStreamExceptionTest.td
>    Adding test:
> com/sun/jini/test/spec/jeri/basicinvocationhandler/Invoke_ExecuteCallExceptionTest.td
>    Adding test:
> com/sun/jini/test/spec/jeri/basicinvocationhandler/Invoke_ExecuteCallNonNullReturnTest.td
>    Adding test:
> com/sun/jini/test/spec/jeri/basicinvocationhandler/Invoke_FirstResponseByteTest.td
>    Adding test:
> com/sun/jini/test/spec/jeri/basicinvocationhandler/Invoke_GetUnfulfilledConstraintsExceptionTest.td
>    Adding test:
> com/sun/jini/test/spec/jeri/basicinvocationhandler/Invoke_IntegrityTest.td
>    Adding test:
> com/sun/jini/test/spec/jeri/basicinvocationhandler/Invoke_MarshalArgumentsExceptionTest.td
>    Adding test:
> com/sun/jini/test/spec/jeri/basicinvocationhandler/Invoke_MarshalMethodExceptionTest.td
>    Adding test:
> com/sun/jini/test/spec/jeri/basicinvocationhandler/Invoke_NormalReturnTest.td
>    Adding test:
> com/sun/jini/test/spec/jeri/basicinvocationhandler/Invoke_OutboundRequestIteratorExceptionTest.td
>    Adding test:
> com/sun/jini/test/spec/jeri/basicinvocationhandler/Invoke_RemoteMethodControlTest.td
>    Adding test:
> com/sun/jini/test/spec/jeri/basicinvocationhandler/Invoke_UnmarshalReturnExceptionTest.td
>    Adding test:
> com/sun/jini/test/spec/jeri/basicinvocationhandler/Invoke_UnmarshalThrowExceptionTest.td
>    Adding test:
> com/sun/jini/test/spec/jeri/basicinvocationhandler/NullArgsTest.td
>    Adding test:
> com/sun/jini/test/spec/jeri/basicinvocationhandler/ObjectMethodsTest.td
>    Adding test:
> com/sun/jini/test/spec/jeri/basicinvocationhandler/SetClientConstraintsTest.td
>    Adding test:
> com/sun/jini/test/spec/jeri/basicjeriexporter/ConstructorTest.td
>    Adding test:
> com/sun/jini/test/spec/jeri/basicjeriexporter/ExportExceptionTest_NullArgument.td
>    Adding test:
> com/sun/jini/test/spec/jeri/basicjeriexporter/ExportExceptionTest_SameIDSameSE.td
>    Adding test:
> com/sun/jini/test/spec/jeri/basicjeriexporter/ExportTest_CallTwice.td
>    Adding test:
> com/sun/jini/test/spec/jeri/basicjeriexporter/ExportTest_CustomParams.td
>    Adding test:
> com/sun/jini/test/spec/jeri/basicjeriexporter/ExportTest_DefaultParams.td
>    Adding test:
> com/sun/jini/test/spec/jeri/basicjeriexporter/UnexportExceptionTest.td
>    Adding test:
> com/sun/jini/test/spec/jeri/basicjeriexporter/UnexportTest_ForceFalse.td
>    Adding test:
> com/sun/jini/test/spec/jeri/basicjeriexporter/UnexportTest_ForceTrue.td
>    Adding test:
> com/sun/jini/test/spec/jeri/basicjeriexporter/UnexportTest_InProgressForceFalse.td
>    Adding test:
> com/sun/jini/test/spec/jeri/basicjeriexporter/UnexportTest_InProgressForceTrue.td
>    Adding test:
> com/sun/jini/test/spec/jeri/basicjeritrustverifier/IsTrustedObject.td
>    Adding test:
> com/sun/jini/test/spec/jeri/basicobjectendpoint/CheckTrustEquivalenceTest.td
>    Adding test:
> com/sun/jini/test/spec/jeri/basicobjectendpoint/ConstructorAccessorTest.td
>    Adding test:
> com/sun/jini/test/spec/jeri/basicobjectendpoint/ExecuteCall_ExceptionTest.td
>    Adding test:
> com/sun/jini/test/spec/jeri/basicobjectendpoint/ExecuteCall_NormalTest.td
>    Adding test:
> com/sun/jini/test/spec/jeri/basicobjectendpoint/NewCall_ExceptionTest.td
>    Adding test:
> com/sun/jini/test/spec/jeri/basicobjectendpoint/NewCall_NormalTest.td
>    Adding test:
> com/sun/jini/test/spec/jeri/basicobjectendpoint/ObjectMethodsTest.td
>    Adding test: com/sun/jini/test/spec/jeri/connection/ConnectionManager.td
>    Adding test:
> com/sun/jini/test/spec/jeri/connection/ServerConnectionManager.td
>    Adding test: com/sun/jini/test/spec/jeri/http/HttpCheckConstraints.td
>    Adding test:
> com/sun/jini/test/spec/jeri/http/HttpCheckTrustEquivalence.td
>    Adding test: com/sun/jini/test/spec/jeri/http/HttpConstructorAccessor.td
>    Adding test: com/sun/jini/test/spec/jeri/http/HttpEndpointInUse.td
>    Adding test: com/sun/jini/test/spec/jeri/http/HttpEqualityTest.td
>    Adding test:
> com/sun/jini/test/spec/jeri/http/HttpIllegalArgumentException.td
>    Adding test:
> com/sun/jini/test/spec/jeri/http/HttpListenContextException.td
>    Adding test:
> com/sun/jini/test/spec/jeri/http/HttpNewRequestConflictingConstraints.td
>    Adding test:
> com/sun/jini/test/spec/jeri/http/HttpNullPointerException.td
>    Adding test: com/sun/jini/test/spec/jeri/http/HttpRobustnessTest.td
>    Adding test:
> com/sun/jini/test/spec/jeri/http/HttpServerConstructorAccessor.td
>    Adding test: com/sun/jini/test/spec/jeri/http/HttpServerEndpoint.td
>    Adding test: com/sun/jini/test/spec/jeri/https/HttpsCheckConstraints.td
>    Adding test:
> com/sun/jini/test/spec/jeri/https/HttpsCheckTrustEquivalence.td
>    Adding test:
> com/sun/jini/test/spec/jeri/https/HttpsConstructorAccessor.td
>    Adding test: com/sun/jini/test/spec/jeri/https/HttpsEndpointInUse.td
>    Adding test: com/sun/jini/test/spec/jeri/https/HttpsEqualityTest.td
>    Adding test:
> com/sun/jini/test/spec/jeri/https/HttpsIllegalArgumentException.td
>    Adding test:
> com/sun/jini/test/spec/jeri/https/HttpsListenContextException.td
>    Adding test:
> com/sun/jini/test/spec/jeri/https/HttpsNewRequestConflictingConstraints.td
>    Adding test:
> com/sun/jini/test/spec/jeri/https/HttpsNullPointerException.td
>    Adding test: com/sun/jini/test/spec/jeri/https/HttpsRobustnessTest.td
>    Adding test:
> com/sun/jini/test/spec/jeri/https/HttpsServerConstructorAccessor.td
>    Adding test: com/sun/jini/test/spec/jeri/https/HttpsServerEndpoint.td
>    Adding test:
> com/sun/jini/test/spec/jeri/kerberos/KerberosCheckConstraints.td
>    Adding test:
> com/sun/jini/test/spec/jeri/kerberos/KerberosCheckTrustEquivalence.td
>    Adding test:
> com/sun/jini/test/spec/jeri/kerberos/KerberosConstructorAccessor.td
>    Adding test:
> com/sun/jini/test/spec/jeri/kerberos/KerberosEndpointInUse.td
>    Adding test:
> com/sun/jini/test/spec/jeri/kerberos/KerberosEqualityTest.td
>    Adding test:
> com/sun/jini/test/spec/jeri/kerberos/KerberosIllegalArgumentException.td
>    Adding test:
> com/sun/jini/test/spec/jeri/kerberos/KerberosListenContextException.td
>    Adding test:
> com/sun/jini/test/spec/jeri/kerberos/KerberosNewRequestConflictingConstraints.td
>    Adding test:
> com/sun/jini/test/spec/jeri/kerberos/KerberosNullPointerException.td
>    Adding test:
> com/sun/jini/test/spec/jeri/kerberos/KerberosRobustnessTest.td
>    Adding test:
> com/sun/jini/test/spec/jeri/kerberos/KerberosServerConstructorAccessor.td
>    Adding test:
> com/sun/jini/test/spec/jeri/kerberos/KerberosServerEndpoint.td
>    Adding test:
> com/sun/jini/test/spec/jeri/kerberostrustverifier/IsTrustedObject.td
>    Adding test: com/sun/jini/test/spec/jeri/mux/ClientAbortTest.td
>    Adding test: com/sun/jini/test/spec/jeri/mux/ClientFlowControlTest.td
>    Adding test: com/sun/jini/test/spec/jeri/mux/CloseTest.td
>    Adding test: com/sun/jini/test/spec/jeri/mux/MuxClientTest.td
>    Adding test: com/sun/jini/test/spec/jeri/mux/MuxServerTest.td
>    Adding test: com/sun/jini/test/spec/jeri/mux/ServerAbortTest.td
>    Adding test: com/sun/jini/test/spec/jeri/mux/ServerFlowControlTest.td
>    Adding test:
> com/sun/jini/test/spec/jeri/proxytrustilfactory/AccessorTest.td
>    Adding test:
> com/sun/jini/test/spec/jeri/proxytrustilfactory/ConstructorAccessorTest.td
>    Adding test: com/sun/jini/test/spec/jeri/ssl/SslCheckConstraints.td
>    Adding test: com/sun/jini/test/spec/jeri/ssl/SslCheckTrustEquivalence.td
>    Adding test: com/sun/jini/test/spec/jeri/ssl/SslConstructorAccessor.td
>    Adding test: com/sun/jini/test/spec/jeri/ssl/SslEndpointInUse.td
>    Adding test: com/sun/jini/test/spec/jeri/ssl/SslEqualityTest.td
>    Adding test:
> com/sun/jini/test/spec/jeri/ssl/SslIllegalArgumentException.td
>    Adding test:
> com/sun/jini/test/spec/jeri/ssl/SslListenContextException.td
>    Adding test:
> com/sun/jini/test/spec/jeri/ssl/SslNewRequestConflictingConstraints.td
>    Adding test: com/sun/jini/test/spec/jeri/ssl/SslNullPointerException.td
>    Adding test: com/sun/jini/test/spec/jeri/ssl/SslRobustnessTest.td
>    Adding test:
> com/sun/jini/test/spec/jeri/ssl/SslServerConstructorAccessor.td
>    Adding test: com/sun/jini/test/spec/jeri/ssl/SslServerEndpoint.td
>    Adding test:
> com/sun/jini/test/spec/jeri/ssltrustverifier/IsTrustedObject.td
>    Adding test: com/sun/jini/test/spec/jeri/tcp/TcpCheckConstraints.td
>    Adding test: com/sun/jini/test/spec/jeri/tcp/TcpCheckTrustEquivalence.td
>    Adding test: com/sun/jini/test/spec/jeri/tcp/TcpConstructorAccessor.td
>    Adding test: com/sun/jini/test/spec/jeri/tcp/TcpEndpointInUse.td
>    Adding test: com/sun/jini/test/spec/jeri/tcp/TcpEqualityTest.td
>    Adding test:
> com/sun/jini/test/spec/jeri/tcp/TcpIllegalArgumentException.td
>    Adding test:
> com/sun/jini/test/spec/jeri/tcp/TcpListenContextException.td
>    Adding test:
> com/sun/jini/test/spec/jeri/tcp/TcpNewRequestConflictingConstraints.td
>    Adding test: com/sun/jini/test/spec/jeri/tcp/TcpNullPointerException.td
>    Adding test: com/sun/jini/test/spec/jeri/tcp/TcpRobustnessTest.td
>    Adding test:
> com/sun/jini/test/spec/jeri/tcp/TcpServerConstructorAccessor.td
>    Adding test: com/sun/jini/test/spec/jeri/tcp/TcpServerEndpoint.td
>    Adding test:
> com/sun/jini/test/spec/servicediscovery/DefaultDiscoverPublic.td
>    Adding test:
> com/sun/jini/test/spec/servicediscovery/cache/AddListenerNPE.td
>    Adding test:
> com/sun/jini/test/spec/servicediscovery/cache/CacheDiscard.td
>    Adding test:
> com/sun/jini/test/spec/servicediscovery/cache/CacheLookup.td
>    Adding test:
> com/sun/jini/test/spec/servicediscovery/cache/CacheLookupFilterFilter.td
>    Adding test:
> com/sun/jini/test/spec/servicediscovery/cache/CacheLookupFilterNoFilter.td
>    Adding test:
> com/sun/jini/test/spec/servicediscovery/cache/CacheLookupNoFilterFilter.td
>    Adding test:
> com/sun/jini/test/spec/servicediscovery/discovery/Locator.td
>    Adding test:
> com/sun/jini/test/spec/servicediscovery/discovery/MulticastAnnouncement.td
>    Adding test:
> com/sun/jini/test/spec/servicediscovery/discovery/MulticastRequest.td
>    Adding test:
> com/sun/jini/test/spec/servicediscovery/discovery/Permission.td
>    Adding test:
> com/sun/jini/test/spec/servicediscovery/event/AddAttrServiceChanged.td
>    Adding test:
> com/sun/jini/test/spec/servicediscovery/event/ModifyAttrServiceChanged.td
>    Adding test:
> com/sun/jini/test/spec/servicediscovery/event/SetAttrServiceChanged.td
>    Adding test: com/sun/jini/test/spec/servicediscovery/lookup/Lookup.td
>    Adding test:
> com/sun/jini/test/spec/servicediscovery/lookup/LookupFilter.td
>    Adding test: com/sun/jini/test/spec/servicediscovery/lookup/LookupMax.td
>    Adding test:
> com/sun/jini/test/spec/servicediscovery/lookup/LookupMaxFilter.td
>    Adding test:
> com/sun/jini/test/spec/servicediscovery/lookup/LookupMinEqualsMax.td
>    Adding test:
> com/sun/jini/test/spec/servicediscovery/lookup/LookupMinEqualsMaxFilter.td
>    Adding test:
> com/sun/jini/test/spec/servicediscovery/lookup/LookupMinLessMax.td
>    Adding test:
> com/sun/jini/test/spec/servicediscovery/lookup/LookupMinMaxNoBlock.td
>    Adding test:
> com/sun/jini/test/spec/servicediscovery/lookup/LookupMinMaxNoBlockFilter.td
>    Adding test:
> com/sun/jini/test/spec/servicediscovery/lookup/LookupWait.td
>    Adding test:
> com/sun/jini/test/spec/servicediscovery/lookup/LookupWaitFilter.td
>    Adding test:
> com/sun/jini/test/spec/servicediscovery/lookup/LookupWaitNoBlock.td
>    Adding test: com/sun/jini/test/spec/renewalservice/AddRemoveTest.td
>    Adding test:
> com/sun/jini/test/spec/renewalservice/AssocExpWarnSetTest.td
>    Adding test:
> com/sun/jini/test/spec/renewalservice/AssocRenewalFailSetTest.td
>    Adding test:
> com/sun/jini/test/spec/renewalservice/ClearEventRegistrationTest.td
>    Adding test:
> com/sun/jini/test/spec/renewalservice/ClearFailureListenerTest.td
>    Adding test:
> com/sun/jini/test/spec/renewalservice/ClearWarningListenerTest.td
>    Adding test:
> com/sun/jini/test/spec/renewalservice/DurationExpirationTest.td
>    Adding test: com/sun/jini/test/spec/renewalservice/EqualsTest.td
>    Adding test: com/sun/jini/test/spec/renewalservice/EventIDFailTest.td
>    Adding test: com/sun/jini/test/spec/renewalservice/EventIDWarnTest.td
>    Adding test:
> com/sun/jini/test/spec/renewalservice/EventLeaseIndefiniteTest.td
>    Adding test: com/sun/jini/test/spec/renewalservice/EventLeaseTest.td
>    Adding test:
> com/sun/jini/test/spec/renewalservice/EventRegistrationTest.td
>    Adding test:
> com/sun/jini/test/spec/renewalservice/EventSequenceFailTest.td
>    Adding test: com/sun/jini/test/spec/renewalservice/EventSequenceTest.td
>    Adding test:
> com/sun/jini/test/spec/renewalservice/EventSequenceWarnTest.td
>    Adding test:
> com/sun/jini/test/spec/renewalservice/ExpirationListenerTest.td
>    Adding test: com/sun/jini/test/spec/renewalservice/ExpireRemoveTest.td
>    Adding test:
> com/sun/jini/test/spec/renewalservice/ExpireSetCancelTest.td
>    Adding test: com/sun/jini/test/spec/renewalservice/ExpireSetSleepTest.td
>    Adding test: com/sun/jini/test/spec/renewalservice/GetLeaseTest.td
>    Adding test: com/sun/jini/test/spec/renewalservice/GetLeasesTest.td
>    Adding test: com/sun/jini/test/spec/renewalservice/IllegalLeaseTest.td
>    Adding test:
> com/sun/jini/test/spec/renewalservice/IndefiniteRenewalTest.td
>    Adding test: com/sun/jini/test/spec/renewalservice/LeaseDurationTest.td
>    Adding test:
> com/sun/jini/test/spec/renewalservice/LeaseExpirationTest.td
>    Adding test: com/sun/jini/test/spec/renewalservice/LeaseNotInSetTest.td
>    Adding test: com/sun/jini/test/spec/renewalservice/LeaseRenewalTest.td
>    Adding test:
> com/sun/jini/test/spec/renewalservice/LeaseUnmarshalExceptionTest.td
>    Adding test:
> com/sun/jini/test/spec/renewalservice/LeaseUnmarshalNoneTest.td
>    Adding test: com/sun/jini/test/spec/renewalservice/MaxMembershipTest.td
>    Adding test:
> com/sun/jini/test/spec/renewalservice/MembershipDurationTest.td
>    Adding test:
> com/sun/jini/test/spec/renewalservice/NewListenerEventTest.td
>    Adding test:
> com/sun/jini/test/spec/renewalservice/NormalEventReturnTest.td
>    Adding test: com/sun/jini/test/spec/renewalservice/ReAddLeaseTest.td
>    Adding test: com/sun/jini/test/spec/renewalservice/RemovalTest.td
>    Adding test: com/sun/jini/test/spec/renewalservice/RemoveCancelTest.td
>    Adding test:
> com/sun/jini/test/spec/renewalservice/RenewAtIntervalTest.td
>    Adding test:
> com/sun/jini/test/spec/renewalservice/RenewalFailureEventIndefiniteTest.td
>    Adding test:
> com/sun/jini/test/spec/renewalservice/RenewalFailureEventTest.td
>    Adding test:
> com/sun/jini/test/spec/renewalservice/RenewalFailureIndefiniteTest.td
>    Adding test:
> com/sun/jini/test/spec/renewalservice/RenewalFailureListenerTest.td
>    Adding test: com/sun/jini/test/spec/renewalservice/RenewalTimeTest.td
>    Adding test: com/sun/jini/test/spec/renewalservice/SetEqualsTest.td
>    Adding test:
> com/sun/jini/test/spec/renewalservice/ValidLeaseDurationTest.td
>    Adding test:
> com/sun/jini/test/spec/constraint/coreconstraint/ConnectionTimeConstructorsTest.td
>    Adding test:
> com/sun/jini/test/spec/constraint/coreconstraint/DelegationTimeConstructorsTest.td
>    Adding test:
> com/sun/jini/test/spec/constraint/coreconstraint/GetTimeTest.td
>    Adding test:
> com/sun/jini/test/spec/constraint/coreconstraint/MakeAbsoluteRelativeTimeTest.td
>    Adding test:
> com/sun/jini/test/spec/constraint/coreconstraint/PrincipalConstructorsTest.td
>    Adding test:
> com/sun/jini/test/spec/constraint/coreconstraint/PrincipalTypeConstructorsTest.td
>    Adding test:
> com/sun/jini/test/spec/constraint/coreconstraint/constraintalternatives/ConstructorsTest.td
>    Adding test:
> com/sun/jini/test/spec/constraint/coreconstraint/constraintalternatives/CreateTest.td
>    Adding test:
> com/sun/jini/test/spec/constraint/coreconstraint/invocationconstraints/ConflictTest.td
>    Adding test:
> com/sun/jini/test/spec/constraint/coreconstraint/invocationconstraints/ConstructorsTest.td
>    Adding test:
> com/sun/jini/test/spec/constraint/coreconstraint/invocationconstraints/MakeAbsoluteTest.td
>    Adding test:
> com/sun/jini/test/impl/servicediscovery/TerminateSemantics.td
>    Adding test:
> com/sun/jini/test/impl/servicediscovery/cache/CacheTerminateSemantics.td
>    Adding test: com/sun/jini/test/impl/outrigger/api/AbstractEntryTest.td
>    Adding test: com/sun/jini/test/impl/mahalo/AdminIFShutdownTest.td
>    Adding test: com/sun/jini/test/impl/mahalo/AdminIFTest.td
>    Adding test: com/sun/jini/test/impl/mahalo/LeaseExpireCancelTest.td
>    Adding test: com/sun/jini/test/impl/mahalo/LeaseExpireRenewTest.td
>    Adding test: com/sun/jini/test/impl/mahalo/LeaseMapTest.td
>    Adding test: com/sun/jini/test/impl/mahalo/LeaseTest.td
>    Adding test: com/sun/jini/test/impl/mahalo/MahaloCreateShutdownTest.td
>    Adding test: com/sun/jini/test/impl/mahalo/MahaloIFTest.td
>    Adding test: com/sun/jini/test/impl/mahalo/MahaloImplReadyStateTest.td
>    Adding test:
> com/sun/jini/test/impl/mahalo/NestableServerTransactionCreatedToStringTest.td
>    Adding test:
> com/sun/jini/test/impl/mahalo/NestableTransactionCreatedToStringTest.td
>    Adding test:
> com/sun/jini/test/impl/mahalo/PrepareAndCommitExceptionTest.td
>    Adding test:
> com/sun/jini/test/impl/mahalo/PrepareAndCommitExceptionTest2.td
>    Adding test:
> com/sun/jini/test/impl/mahalo/PrepareAndCommitExceptionTest3.td
>    Adding test:
> com/sun/jini/test/impl/mahalo/PrepareAndCommitExceptionTest4.td
>    Adding test:
> com/sun/jini/test/impl/mahalo/PrepareAndCommitExceptionTest5.td
>    Adding test: com/sun/jini/test/impl/mahalo/RandomStressTest.td
>    Adding test:
> com/sun/jini/test/impl/mahalo/ServerTransactionEqualityTest.td
>    Adding test:
> com/sun/jini/test/impl/mahalo/ServerTransactionToStringTest.td
>    Adding test:
> com/sun/jini/test/impl/mahalo/TransactionCreatedToStringTest.td
>    Adding test:
> com/sun/jini/test/impl/mahalo/TransactionManagerCreatedToStringTest.td
>    Adding test:
> com/sun/jini/test/impl/mahalo/TxnMgrImplNullActivationConfigEntries.td
>    Adding test:
> com/sun/jini/test/impl/mahalo/TxnMgrImplNullConfigEntries.td
>    Adding test:
> com/sun/jini/test/impl/mahalo/TxnMgrImplNullRecoveredLocators.td
>    Adding test: com/sun/jini/test/impl/mahalo/TxnMgrProxyEqualityTest.td
>    Adding test:
> com/sun/jini/test/spec/id/referentuuids/CompareMethodTest.td
>    Adding test: com/sun/jini/test/spec/id/uuid/ConstructorAccessorTest.td
>    Adding test: com/sun/jini/test/spec/id/uuid/ObjectMethodsTest.td
>    Adding test: com/sun/jini/test/spec/id/uuid/WriteTest.td
>    Adding test: com/sun/jini/test/spec/id/uuidfactory/CreateGenerateTest.td
>    Adding test: com/sun/jini/test/spec/id/uuidfactory/ReadTest.td
>    Adding test:
> com/sun/jini/test/spec/io/marshalinputstream/ConstructorAccessorTest.td
>    Adding test:
> com/sun/jini/test/spec/io/marshalinputstream/LoadClass_ExceptionTest.td
>    Adding test:
> com/sun/jini/test/spec/io/marshalinputstream/LoadClass_NullArgsTest.td
>    Adding test:
> com/sun/jini/test/spec/io/marshalinputstream/LoadClass_VerifyCodebaseIntegrityTest.td
>    Adding test:
> com/sun/jini/test/spec/io/marshalinputstream/Resolve_LoadClassExceptionTest.td
>    Adding test:
> com/sun/jini/test/spec/io/marshalinputstream/Resolve_LoadClassTest.td
>    Adding test:
> com/sun/jini/test/spec/io/marshalinputstream/Resolve_NullArgsTest.td
>    Adding test:
> com/sun/jini/test/spec/io/marshalinputstream/Resolve_ReadAnnotationExceptionTest.td
>    Adding test:
> com/sun/jini/test/spec/io/marshalinputstream/Resolve_VerifyCodebaseIntegrityTest.td
>    Adding test:
> com/sun/jini/test/spec/io/marshalledinstance/ConstructorTest.td
>    Adding test:
> com/sun/jini/test/spec/io/marshalledinstance/ConvertToMarshalledObjectTest.td
>    Adding test:
> com/sun/jini/test/spec/io/marshalledinstance/Get_ExceptionTest.td
>    Adding test:
> com/sun/jini/test/spec/io/marshalledinstance/Get_NormalTest.td
>    Adding test:
> com/sun/jini/test/spec/io/marshalledinstance/ObjectMethodsTest.td
>    Adding test:
> com/sun/jini/test/spec/io/marshaloutputstream/ConstructorAccessorTest.td
>    Adding test: com/sun/jini/test/spec/lookupservice/ToStringTest.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set00/EvntLeaseExpiration.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set00/LookupByClass.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set00/LookupByIntfc.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set00/LookupBySrvcID.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set00/LookupBySuper.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set00/MultipleEvntLeaseRenewals.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set00/MultipleSrvcLeaseRenewals.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set00/NotifyOnAttrAdd.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set00/NotifyOnAttrDel.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set00/NotifyOnAttrMod.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set00/NotifyOnSrvcLeaseExpiration.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set00/SrvcLeaseExpiration.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set01/EmptyLookup.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set01/GetEntryClassesAttrNull.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set01/GetEntryClassesAttrVals.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set01/GetEntryClassesEmpty.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set01/GetEntryClassesTypeAttr.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set01/GetFieldValuesAttr.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set01/GetFieldValuesAttrNull.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set01/GetServiceTypesAttr.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set01/GetServiceTypesClass.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set01/GetServiceTypesEmpty.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set01/IdempotentNewSrvcReg.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set01/IdempotentOldSrvcReg.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set01/NotifyOnComboAttrAddNonNull.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set01/NotifyOnComboAttrAddNull.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set01/NotifyOnComboAttrDelNonNull.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set01/NotifyOnComboAttrDelNull.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set01/NotifyOnComboAttrModNonNull.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set01/NotifyOnComboAttrModNull.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set01/NotifyOnComboSrvcLeaseExp.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set01/NotifyOnComboSrvcReg.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set01/NotifyOnEntryAttrAddNonNull.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set01/NotifyOnEntryAttrAddNull.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set01/NotifyOnEntrySrvcReg.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set01/ReRegOldSrvcs.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set01/ReturnOnLookupByAttr.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set01/ReturnOnLookupByType.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set01/ReturnOnLookupByTypeAttr.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set02/ExpiredAddAttributes.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set02/ExpiredEventLeaseCancel.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set02/ExpiredEventLeaseRenew.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set02/ExpiredLeaseMapCancel.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set02/ExpiredLeaseMapRenew.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set02/ExpiredModifyAttributes.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set02/ExpiredServiceLeaseCancel.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set02/ExpiredServiceLeaseRenew.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set02/ExpiredSetAttributes.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set02/GetEntryClassesNoMatch.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set02/GetEntryClassesNullTemplate.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set02/GetFieldValuesBadField.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set02/GetFieldValuesBadIndex.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set02/GetFieldValuesNoMatch.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set02/GetFieldValuesNullTemplate.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set02/GetServiceTypesNoMatch.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set02/GetServiceTypesNullTemplate.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set02/LeaseMapCancel.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set02/LeaseMapRenew.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set02/LeaseMapRenewNegDuration.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set02/Lookup2NullTemplate.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set02/LookupNegMatches.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set02/LookupNoMatch.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set02/LookupNullTemplate.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set02/ModifyAttributesBadClass.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set02/ModifyAttributesBadLength.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set02/NotifyBadTransition.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set02/NotifyNegDuration.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set02/NotifyNoTransition.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set02/NotifyNullListener.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set02/NotifyNullTemplate.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set02/NotifyOnAttrSet.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set02/NotifyOnComboAttrSet.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set02/RegisterInvalidServiceID.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set02/RegisterNegDuration.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set02/RegisterNullService.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set02/RegisterNullServiceItem.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set03/SimpleAddLookupAttributes.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set03/SimpleAddLookupGroups.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set03/SimpleAddLookupLocators.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set03/SimpleAddMemberGroups.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set03/SimpleModifyLookupAttributes.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set03/SimpleRemoveLookupGroups.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set03/SimpleRemoveLookupLocators.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set03/SimpleRemoveMemberGroups.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set03/SimpleSetLookupGroups.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set03/SimpleSetLookupLocators.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set03/SimpleSetMemberGroups.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set03/SimpleUnicastPort.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set04/ModifyAttributesOverlap.td
>    Adding test:
> com/sun/jini/test/spec/lookupservice/test_set04/ModifyAttributesSwap.td
>    Adding test:
> com/sun/jini/test/impl/thread/TaskManagerTaskExceptionTest.td
>    Adding test:
> com/sun/jini/test/impl/thread/WakeupManagerTaskExceptionTest.td
>    Adding test:
> com/sun/jini/test/spec/config/abstractconfiguration/Constructor_Test.td
>    Adding test:
> com/sun/jini/test/spec/config/abstractconfiguration/GetEntry_Test.td
>    Adding test:
> com/sun/jini/test/spec/config/abstractconfiguration/ValidIdentifier_Test.td
>    Adding test:
> com/sun/jini/test/spec/config/abstractconfiguration/ValidQualifiedIdentifier_Test.td
>    Adding test:
> com/sun/jini/test/spec/config/abstractconfiguration/primitive/Constructor_Test.td
>    Adding test:
> com/sun/jini/test/spec/config/abstractconfiguration/primitive/Methods_Test.td
>    Adding test:
> com/sun/jini/test/spec/config/configurationexception/Constructor_Test.td
>    Adding test:
> com/sun/jini/test/spec/config/configurationexception/ToString_Test.td
>    Adding test:
> com/sun/jini/test/spec/config/configurationfile/Constructor_Test.td
>    Adding test:
> com/sun/jini/test/spec/config/configurationfile/GetEntryInternal_Test.td
>    Adding test:
> com/sun/jini/test/spec/config/configurationfile/GetEntryNames_Test.td
>    Adding test:
> com/sun/jini/test/spec/config/configurationfile/GetEntryType_Test.td
>    Adding test:
> com/sun/jini/test/spec/config/configurationfile/GetSpecialEntryType_Test.td
>    Adding test:
> com/sun/jini/test/spec/config/configurationfile/GetSpecialEntry_Test.td
>    Adding test:
> com/sun/jini/test/spec/config/configurationfile/Subclass_Test.td
>    Adding test:
> com/sun/jini/test/spec/config/configurationfile/Syntax_Test.td
>    Adding test:
> com/sun/jini/test/spec/config/configurationfile/ToString_Test.td
>    Adding test:
> com/sun/jini/test/spec/config/configurationnotfoundexception/Constructor_Test.td
>    Adding test:
> com/sun/jini/test/spec/config/configurationprovider/GetInstance_ClassLoaderDenyTest.td
>    Adding test:
> com/sun/jini/test/spec/config/configurationprovider/GetInstance_ClassLoaderTest.td
>    Adding test:
> com/sun/jini/test/spec/config/configurationprovider/GetInstance_Test.td
>    Adding test:
> com/sun/jini/test/spec/config/emptyconfiguration/GetEntryInternal_Test.td
>    Adding test:
> com/sun/jini/test/spec/config/nosuchentryexception/Constructor_Test.td
>    Adding test:
> com/sun/jini/test/spec/locatordiscovery/AddDiscoveryListenerNull.td
>    Adding test: com/sun/jini/test/spec/locatordiscovery/AddLocators.td
>    Adding test: com/sun/jini/test/spec/locatordiscovery/AddLocatorsDups.td
>    Adding test: com/sun/jini/test/spec/locatordiscovery/AddLocatorsEmpty.td
>    Adding test: com/sun/jini/test/spec/locatordiscovery/AddLocatorsNull.td
>    Adding test:
> com/sun/jini/test/spec/locatordiscovery/AddLocatorsNullElement.td
>    Adding test:
> com/sun/jini/test/spec/locatordiscovery/AddNewDiscoveryChangeListener.td
>    Adding test:
> com/sun/jini/test/spec/locatordiscovery/AddNewDiscoveryListener.td
>    Adding test: com/sun/jini/test/spec/locatordiscovery/ConstructorDups.td
>    Adding test:
> com/sun/jini/test/spec/locatordiscovery/ConstructorNullElement.td
>    Adding test: com/sun/jini/test/spec/locatordiscovery/DiscardDNE.td
>    Adding test: com/sun/jini/test/spec/locatordiscovery/DiscardNull.td
>    Adding test:
> com/sun/jini/test/spec/locatordiscovery/DiscardUnreachable.td
>    Adding test: com/sun/jini/test/spec/locatordiscovery/Discovered.td
>    Adding test: com/sun/jini/test/spec/locatordiscovery/DiscoveredDelay.td
>    Adding test:
> com/sun/jini/test/spec/locatordiscovery/DiscoveredStagger.td
>    Adding test:
> com/sun/jini/test/spec/locatordiscovery/DiscoveryBeginsOnAddLocsAfterEmpty.td
>    Adding test:
> com/sun/jini/test/spec/locatordiscovery/DiscoveryBeginsOnAddLocsAfterNull.td
>    Adding test:
> com/sun/jini/test/spec/locatordiscovery/DiscoveryBeginsOnSetLocsAfterEmpty.td
>    Adding test:
> com/sun/jini/test/spec/locatordiscovery/DiscoveryBeginsOnSetLocsAfterNull.td
>    Adding test:
> com/sun/jini/test/spec/locatordiscovery/DiscoveryEndsOnTerminate.td
>    Adding test: com/sun/jini/test/spec/locatordiscovery/Equality.td
>    Adding test:
> com/sun/jini/test/spec/locatordiscovery/GetDiscoveredLocators.td
>    Adding test:
> com/sun/jini/test/spec/locatordiscovery/GetDiscoveredLocatorsEmpty.td
>    Adding test:
> com/sun/jini/test/spec/locatordiscovery/GetDiscoveredLocatorsNew.td
>    Adding test: com/sun/jini/test/spec/locatordiscovery/GetLocators.td
>    Adding test: com/sun/jini/test/spec/locatordiscovery/GetLocatorsEmpty.td
>    Adding test: com/sun/jini/test/spec/locatordiscovery/GetLocatorsNew.td
>    Adding test: com/sun/jini/test/spec/locatordiscovery/GetRegistrars.td
>    Adding test: com/sun/jini/test/spec/locatordiscovery/GetRegistrarsNew.td
>    Adding test:
> com/sun/jini/test/spec/locatordiscovery/GetUndiscoveredLocators.td
>    Adding test:
> com/sun/jini/test/spec/locatordiscovery/GetUndiscoveredLocatorsEmpty.td
>    Adding test:
> com/sun/jini/test/spec/locatordiscovery/GetUndiscoveredLocatorsNew.td
>    Adding test:
> com/sun/jini/test/spec/locatordiscovery/RemoveDiscoveryListener.td
>    Adding test:
> com/sun/jini/test/spec/locatordiscovery/RemoveDiscoveryListenerDNE.td
>    Adding test:
> com/sun/jini/test/spec/locatordiscovery/RemoveLocatorsAll.td
>    Adding test:
> com/sun/jini/test/spec/locatordiscovery/RemoveLocatorsDups.td
>    Adding test:
> com/sun/jini/test/spec/locatordiscovery/RemoveLocatorsEmpty.td
>    Adding test:
> com/sun/jini/test/spec/locatordiscovery/RemoveLocatorsNull.td
>    Adding test:
> com/sun/jini/test/spec/locatordiscovery/RemoveLocatorsNullElement.td
>    Adding test:
> com/sun/jini/test/spec/locatordiscovery/RemoveLocatorsSome.td
>    Adding test: com/sun/jini/test/spec/locatordiscovery/SetLocatorsDups.td
>    Adding test: com/sun/jini/test/spec/locatordiscovery/SetLocatorsEmpty.td
>    Adding test: com/sun/jini/test/spec/locatordiscovery/SetLocatorsNull.td
>    Adding test:
> com/sun/jini/test/spec/locatordiscovery/SetLocatorsNullElement.td
>    Adding test:
> com/sun/jini/test/spec/locatordiscovery/SetLocatorsReplaceAll.td
>    Adding test:
> com/sun/jini/test/spec/locatordiscovery/SetLocatorsReplaceSome.td
>    Adding test: com/sun/jini/test/impl/outrigger/admin/DestroyTestMahalo.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/admin/DestroyTestOutrigger.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/admin/IdenticalAdminIteratorTest.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/admin/IdenticalAdminIteratorTestShutdown.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/admin/LookupAttributeAdminTestOutrigger.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/admin/LookupAttributeAdminTestTxnMgr.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/admin/LookupGroupAdminTestOutrigger.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/admin/LookupGroupAdminTestTxnMgr.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/admin/LookupLocatorAdminTestOutrigger.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/admin/LookupLocatorAdminTestTxnMgr.td
>    Adding test: com/sun/jini/test/impl/outrigger/admin/SimpleAdminTest.td
>    Adding test: com/sun/jini/test/spec/eventmailbox/EMSCET.td
>    Adding test: com/sun/jini/test/spec/eventmailbox/EMSCET_PULL.td
>    Adding test: com/sun/jini/test/spec/eventmailbox/EMSCT.td
>    Adding test: com/sun/jini/test/spec/eventmailbox/EMSCT_PULL.td
>    Adding test: com/sun/jini/test/spec/eventmailbox/EMSFT.td
>    Adding test: com/sun/jini/test/spec/eventmailbox/EMSFT_PULL.td
>    Adding test: com/sun/jini/test/spec/eventmailbox/EMSFT_PULL2.td
>    Adding test: com/sun/jini/test/spec/eventmailbox/EMSIFT.td
>    Adding test: com/sun/jini/test/spec/eventmailbox/EMSIFT_PULL.td
>    Adding test: com/sun/jini/test/spec/eventmailbox/EMSIFT_PULL2.td
>    Adding test: com/sun/jini/test/spec/eventmailbox/EMSLCT.td
>    Adding test: com/sun/jini/test/spec/eventmailbox/EMSLCT_PULL.td
>    Adding test: com/sun/jini/test/spec/eventmailbox/EMSLCT_PULL2.td
>    Adding test: com/sun/jini/test/spec/eventmailbox/EMSLET.td
>    Adding test: com/sun/jini/test/spec/eventmailbox/EMSLET_PULL.td
>    Adding test: com/sun/jini/test/spec/eventmailbox/EMSLST.td
>    Adding test: com/sun/jini/test/spec/eventmailbox/EMSLST2.td
>    Adding test: com/sun/jini/test/spec/eventmailbox/EMSLST2_PULL.td
>    Adding test: com/sun/jini/test/spec/eventmailbox/EMSLST3.td
>    Adding test: com/sun/jini/test/spec/eventmailbox/EMSLST3_PULL.td
>    Adding test: com/sun/jini/test/spec/eventmailbox/EMSLST4.td
>    Adding test: com/sun/jini/test/spec/eventmailbox/EMSLST4_PULL.td
>    Adding test: com/sun/jini/test/spec/eventmailbox/EMSLST_PULL.td
>    Adding test: com/sun/jini/test/spec/eventmailbox/EMSNSOT.td
>    Adding test: com/sun/jini/test/spec/eventmailbox/EMSNSOT_PULL.td
>    Adding test: com/sun/jini/test/spec/eventmailbox/EMSRET.td
>    Adding test: com/sun/jini/test/spec/eventmailbox/EMSRET_PULL.td
>    Adding test: com/sun/jini/test/spec/eventmailbox/EMSRIFT.td
>    Adding test: com/sun/jini/test/spec/eventmailbox/EMSRIFT2.td
>    Adding test: com/sun/jini/test/spec/eventmailbox/EMSRIFT2_PULL.td
>    Adding test: com/sun/jini/test/spec/eventmailbox/EMSRIFT_PULL.td
>    Adding test: com/sun/jini/test/spec/eventmailbox/EMSRIFT_PULL2.td
>    Adding test: com/sun/jini/test/spec/eventmailbox/EMSRIFT_PULL3.td
>    Adding test: com/sun/jini/test/spec/eventmailbox/EMSST.td
>    Adding test: com/sun/jini/test/spec/eventmailbox/EMSST2.td
>    Adding test: com/sun/jini/test/spec/eventmailbox/EMSST2_PULL.td
>    Adding test: com/sun/jini/test/spec/eventmailbox/EMSST2_PULL2.td
>    Adding test: com/sun/jini/test/spec/eventmailbox/EMSST3.td
>    Adding test: com/sun/jini/test/spec/eventmailbox/EMSST3_PULL.td
>    Adding test: com/sun/jini/test/spec/eventmailbox/EMSST3_PULL2.td
>    Adding test: com/sun/jini/test/spec/eventmailbox/EMSST_PULL.td
>    Adding test: com/sun/jini/test/spec/eventmailbox/EMSST_PULL2.td
>    Adding test:
> com/sun/jini/test/spec/servicediscovery/lookup/LookupMinLessMaxFilter.td
>    Adding test:
> com/sun/jini/test/impl/lookupdiscovery/AddDiscoveryListenerAfterTerminate.td
>    Adding test:
> com/sun/jini/test/impl/lookupdiscovery/AddGroupsAfterTerminate.td
>    Adding test:
> com/sun/jini/test/impl/lookupdiscovery/DiscardAfterTerminate.td
>    Adding test:
> com/sun/jini/test/impl/lookupdiscovery/GetGroupsAfterTerminate.td
>    Adding test:
> com/sun/jini/test/impl/lookupdiscovery/GetRegistrarsAfterTerminate.td
>    Adding test:
> com/sun/jini/test/impl/lookupdiscovery/MulticastRequestDelay.td
>    Adding test:
> com/sun/jini/test/impl/lookupdiscovery/RemoveDiscoveryListenerAfterTerminate.td
>    Adding test:
> com/sun/jini/test/impl/lookupdiscovery/RemoveGroupsAfterTerminate.td
>    Adding test:
> com/sun/jini/test/impl/lookupdiscovery/RestoreContextForTasks.td
>    Adding test:
> com/sun/jini/test/impl/lookupdiscovery/SetGroupsAfterTerminate.td
>    Adding test: com/sun/jini/test/impl/lookupdiscovery/UnicastDelay.td
>    Adding test: com/sun/jini/test/spec/lookupdiscovery/AddGroups.td
>    Adding test:
> com/sun/jini/test/spec/lookupdiscovery/AddGroupsAllGroups.td
>    Adding test: com/sun/jini/test/spec/lookupdiscovery/AddGroupsDups.td
>    Adding test: com/sun/jini/test/spec/lookupdiscovery/AddGroupsNoGroups.td
>    Adding test:
> com/sun/jini/test/spec/lookupdiscovery/AddGroupsNullElement.td
>    Adding test:
> com/sun/jini/test/spec/lookupdiscovery/AddGroupsUnsupportedOperation.td
>    Adding test:
> com/sun/jini/test/spec/lookupdiscovery/AddNewDiscoveryChangeListener.td
>    Adding test:
> com/sun/jini/test/spec/lookupdiscovery/AddNewDiscoveryListener.td
>    Adding test: com/sun/jini/test/spec/lookupdiscovery/ConstructorDups.td
>    Adding test:
> com/sun/jini/test/spec/lookupdiscovery/ConstructorNullElement.td
>    Adding test:
> com/sun/jini/test/spec/lookupdiscovery/DiscardUnreachable.td
>    Adding test: com/sun/jini/test/spec/lookupdiscovery/Discovered.td
>    Adding test: com/sun/jini/test/spec/lookupdiscovery/DiscoveredDelay.td
>    Adding test: com/sun/jini/test/spec/lookupdiscovery/DiscoveredStagger.td
>    Adding test:
> com/sun/jini/test/spec/lookupdiscovery/DiscoveryBeginsOnAddGroupsAfterEmpty.td
>    Adding test:
> com/sun/jini/test/spec/lookupdiscovery/DiscoveryBeginsOnSetGroupsAfterEmpty.td
>    Adding test:
> com/sun/jini/test/spec/lookupdiscovery/DiscoveryEndsOnTerminate.td
>    Adding test: com/sun/jini/test/spec/lookupdiscovery/Equality.td
>    Adding test: com/sun/jini/test/spec/lookupdiscovery/GetGroups.td
>    Adding test:
> com/sun/jini/test/spec/lookupdiscovery/GetGroupsAllGroups.td
>    Adding test: com/sun/jini/test/spec/lookupdiscovery/GetGroupsNew.td
>    Adding test: com/sun/jini/test/spec/lookupdiscovery/GetGroupsNoGroups.td
>    Adding test: com/sun/jini/test/spec/lookupdiscovery/GetRegistrars.td
>    Adding test: com/sun/jini/test/spec/lookupdiscovery/GetRegistrarsNew.td
>    Adding test:
> com/sun/jini/test/spec/lookupdiscovery/MulticastMonitorChange.td
>    Adding test:
> com/sun/jini/test/spec/lookupdiscovery/MulticastMonitorReplace.td
>    Adding test:
> com/sun/jini/test/spec/lookupdiscovery/MulticastMonitorReplaceNone.td
>    Adding test:
> com/sun/jini/test/spec/lookupdiscovery/MulticastMonitorStop.td
>    Adding test:
> com/sun/jini/test/spec/lookupdiscovery/MulticastMonitorStopReplace.td
>    Adding test:
> com/sun/jini/test/spec/lookupdiscovery/MulticastMonitorTerminate.td
>    Adding test:
> com/sun/jini/test/spec/lookupdiscovery/RemoveDiscoveryListener.td
>    Adding test:
> com/sun/jini/test/spec/lookupdiscovery/RemoveGroupsAllGroups.td
>    Adding test: com/sun/jini/test/spec/lookupdiscovery/RemoveGroupsDups.td
>    Adding test:
> com/sun/jini/test/spec/lookupdiscovery/RemoveGroupsNoGroups.td
>    Adding test:
> com/sun/jini/test/spec/lookupdiscovery/RemoveGroupsNullElement.td
>    Adding test:
> com/sun/jini/test/spec/lookupdiscovery/RemoveGroupsRemoveAll.td
>    Adding test:
> com/sun/jini/test/spec/lookupdiscovery/RemoveGroupsRemoveNone.td
>    Adding test:
> com/sun/jini/test/spec/lookupdiscovery/RemoveGroupsRemoveSome.td
>    Adding test:
> com/sun/jini/test/spec/lookupdiscovery/RemoveGroupsUnsupportedOperation.td
>    Adding test: com/sun/jini/test/spec/lookupdiscovery/SetGroupsDups.td
>    Adding test: com/sun/jini/test/spec/lookupdiscovery/SetGroupsNoGroups.td
>    Adding test:
> com/sun/jini/test/spec/lookupdiscovery/SetGroupsNullElement.td
>    Adding test:
> com/sun/jini/test/spec/lookupdiscovery/SetGroupsReplaceAll.td
>    Adding test:
> com/sun/jini/test/spec/lookupdiscovery/SetGroupsReplaceSome.td
>    Adding test:
> com/sun/jini/test/spec/url/file/integrity/ProvidesIntegrity.td
>    Adding test: com/sun/jini/test/spec/url/httpmd/handler/Equals.td
>    Adding test: com/sun/jini/test/spec/url/httpmd/handler/GetDefaultPort.td
>    Adding test: com/sun/jini/test/spec/url/httpmd/handler/HashCode.td
>    Adding test:
> com/sun/jini/test/spec/url/httpmd/handler/OpenConnectionNonExistFile.td
>    Adding test:
> com/sun/jini/test/spec/url/httpmd/handler/OpenConnectionValidURL.td
>    Adding test: com/sun/jini/test/spec/url/httpmd/handler/ParseURL.td
>    Adding test: com/sun/jini/test/spec/url/httpmd/handler/SameFile.td
>    Adding test:
> com/sun/jini/test/spec/url/httpmd/httpmdutil/ComputeDigest.td
>    Adding test:
> com/sun/jini/test/spec/url/httpmd/httpmdutil/ComputeDigest2Urls.td
>    Adding test:
> com/sun/jini/test/spec/url/httpmd/httpmdutil/ComputeDigestCodebase.td
>    Adding test:
> com/sun/jini/test/spec/url/httpmd/integrity/ProvidesIntegrity.td
>    Adding test: com/sun/jini/test/spec/url/httpmd/wrongmdexc/Constructor.td
>    Adding test:
> com/sun/jini/test/spec/url/httpmd/wrongmdexc/WrongMDException.td
>    Adding test:
> com/sun/jini/test/spec/url/httpmd/wrongmdexc/WrongMDExceptionHandler.td
>    Adding test:
> com/sun/jini/test/spec/url/https/integrity/ProvidesIntegrity.td
>    Adding test: com/sun/jini/test/impl/mercury/AdminIFShutdownTest.td
>    Adding test: com/sun/jini/test/impl/mercury/AdminIFTest.td
>    Adding test: com/sun/jini/test/impl/mercury/BadEventCodebaseTest.td
>    Adding test: com/sun/jini/test/impl/mercury/ExpiredRegRecovery.td
>    Adding test: com/sun/jini/test/impl/mercury/InterOpTest.td
>    Adding test: com/sun/jini/test/impl/mercury/LeaseExpireCancelTest.td
>    Adding test: com/sun/jini/test/impl/mercury/LeaseExpireRenewTest.td
>    Adding test: com/sun/jini/test/impl/mercury/LeaseMapTest.td
>    Adding test: com/sun/jini/test/impl/mercury/LeaseTest.td
>    Adding test: com/sun/jini/test/impl/mercury/ListenerRecoveryTest.td
>    Adding test:
> com/sun/jini/test/impl/mercury/MailboxImplBadUnexportConfigEntries.td
>    Adding test:
> com/sun/jini/test/impl/mercury/MailboxImplNullActivationConfigEntries.td
>    Adding test:
> com/sun/jini/test/impl/mercury/MailboxImplNullConfigEntries.td
>    Adding test: com/sun/jini/test/impl/mercury/MailboxImplReadyStateTest.td
>    Adding test: com/sun/jini/test/impl/mercury/MercuryProxyEqualityTest.td
>    Adding test: com/sun/jini/test/impl/mercury/PullAdminIFShutdownTest.td
>    Adding test: com/sun/jini/test/impl/mercury/PullAdminIFTest.td
>    Adding test: com/sun/jini/test/impl/mercury/PullExpiredRegRecovery.td
>    Adding test: com/sun/jini/test/impl/mercury/PullInterOpTest.td
>    Adding test: com/sun/jini/test/impl/mercury/PullLeaseExpireCancelTest.td
>    Adding test: com/sun/jini/test/impl/mercury/PullLeaseExpireRenewTest.td
>    Adding test: com/sun/jini/test/impl/mercury/PullLeaseMapTest.td
>    Adding test: com/sun/jini/test/impl/mercury/PullLeaseTest.td
>    Adding test: com/sun/jini/test/impl/mercury/PullListenerRecoveryTest.td
>    Adding test:
> com/sun/jini/test/impl/mercury/PullMercuryProxyEqualityTest.td
>    Adding test:
> com/sun/jini/test/impl/mercury/PullRegCancelExpireShutdownTest.td
>    Adding test: com/sun/jini/test/impl/mercury/PullRegCancelShutdownTest.td
>    Adding test: com/sun/jini/test/impl/mercury/PullRegCreateShutdownTest.td
>    Adding test:
> com/sun/jini/test/impl/mercury/PullRegDisableShutdownTest.td
>    Adding test: com/sun/jini/test/impl/mercury/PullRegEnableShutdownTest.td
>    Adding test:
> com/sun/jini/test/impl/mercury/PullRegRenewExpireShutdownTest.td
>    Adding test: com/sun/jini/test/impl/mercury/PullRegRenewShutdownTest.td
>    Adding test: com/sun/jini/test/impl/mercury/PullRegistrationIFTest.td
>    Adding test: com/sun/jini/test/impl/mercury/PullTimeoutTest.td
>    Adding test: com/sun/jini/test/impl/mercury/PullTimeoutTest2.td
>    Adding test: com/sun/jini/test/impl/mercury/PullTimeoutTest3.td
>    Adding test: com/sun/jini/test/impl/mercury/PullTimeoutTest4.td
>    Adding test: com/sun/jini/test/impl/mercury/PullTimeoutTest5.td
>    Adding test: com/sun/jini/test/impl/mercury/PullTimeoutTest6.td
>    Adding test: com/sun/jini/test/impl/mercury/PullTimeoutTest6A.td
>    Adding test: com/sun/jini/test/impl/mercury/PullTimeoutTest6B.td
>    Adding test:
> com/sun/jini/test/impl/mercury/PullUnknownEventRecoveryShutdownTest.td
>    Adding test:
> com/sun/jini/test/impl/mercury/PullUnknownEventRecoveryTest.td
>    Adding test: com/sun/jini/test/impl/mercury/PullUnknownEventsTest.td
>    Adding test: com/sun/jini/test/impl/mercury/PullUnknownEventsTest2.td
>    Adding test:
> com/sun/jini/test/impl/mercury/PushPullListenerRecoveryTest.td
>    Adding test:
> com/sun/jini/test/impl/mercury/RegCancelExpireShutdownTest.td
>    Adding test: com/sun/jini/test/impl/mercury/RegCancelShutdownTest.td
>    Adding test: com/sun/jini/test/impl/mercury/RegCreateShutdownTest.td
>    Adding test: com/sun/jini/test/impl/mercury/RegDisableShutdownTest.td
>    Adding test: com/sun/jini/test/impl/mercury/RegEnableShutdownTest.td
>    Adding test:
> com/sun/jini/test/impl/mercury/RegRenewExpireShutdownTest.td
>    Adding test: com/sun/jini/test/impl/mercury/RegRenewShutdownTest.td
>    Adding test: com/sun/jini/test/impl/mercury/RegistrationIFTest.td
>    Adding test:
> com/sun/jini/test/impl/mercury/UnknownEventRecoveryShutdownTest.td
>    Adding test: com/sun/jini/test/impl/mercury/UnknownEventRecoveryTest.td
>    Adding test:
> com/sun/jini/test/spec/jrmp/jrmpexporter/Constructor_NullPointerExceptionTest.td
>    Adding test:
> com/sun/jini/test/spec/jrmp/jrmpexporter/Constructor_NullPointerExceptionTest1.td
>    Adding test:
> com/sun/jini/test/spec/jrmp/jrmpexporter/Export_ExportExceptionTest.td
>    Adding test:
> com/sun/jini/test/spec/jrmp/jrmpexporter/Export_ExportExceptionTest1.td
>    Adding test:
> com/sun/jini/test/spec/jrmp/jrmpexporter/Export_ExportExceptionTest2.td
>    Adding test:
> com/sun/jini/test/spec/jrmp/jrmpexporter/Export_ExportExceptionTest3.td
>    Adding test:
> com/sun/jini/test/spec/jrmp/jrmpexporter/Export_ExportExceptionTest4.td
>    Adding test:
> com/sun/jini/test/spec/jrmp/jrmpexporter/Export_IllegalStateExceptionTest.td
>    Adding test:
> com/sun/jini/test/spec/jrmp/jrmpexporter/Export_IllegalStateExceptionTest1.td
>    Adding test:
> com/sun/jini/test/spec/jrmp/jrmpexporter/Export_IllegalStateExceptionTest2.td
>    Adding test:
> com/sun/jini/test/spec/jrmp/jrmpexporter/Export_IllegalStateExceptionTest3.td
>    Adding test:
> com/sun/jini/test/spec/jrmp/jrmpexporter/Export_IllegalStateExceptionTest4.td
>    Adding test:
> com/sun/jini/test/spec/jrmp/jrmpexporter/Export_NullPointerExceptionTest.td
>    Adding test:
> com/sun/jini/test/spec/jrmp/jrmpexporter/Export_NullPointerExceptionTest1.td
>    Adding test:
> com/sun/jini/test/spec/jrmp/jrmpexporter/Export_NullPointerExceptionTest2.td
>    Adding test:
> com/sun/jini/test/spec/jrmp/jrmpexporter/Export_NullPointerExceptionTest3.td
>    Adding test:
> com/sun/jini/test/spec/jrmp/jrmpexporter/Export_NullPointerExceptionTest4.td
>    Adding test:
> com/sun/jini/test/spec/jrmp/jrmpexporter/GetActivationID_BehaviorTest.td
>    Adding test:
> com/sun/jini/test/spec/jrmp/jrmpexporter/GetActivationID_BehaviorTest1.td
>    Adding test:
> com/sun/jini/test/spec/jrmp/jrmpexporter/GetActivationID_BehaviorTest2.td
>    Adding test:
> com/sun/jini/test/spec/jrmp/jrmpexporter/GetActivationID_BehaviorTest3.td
>    Adding test:
> com/sun/jini/test/spec/jrmp/jrmpexporter/GetActivationID_BehaviorTest4.td
>    Adding test:
> com/sun/jini/test/spec/jrmp/jrmpexporter/GetClientSocketFactory_BehaviorTest.td
>    Adding test:
> com/sun/jini/test/spec/jrmp/jrmpexporter/GetClientSocketFactory_BehaviorTest1.td
>    Adding test:
> com/sun/jini/test/spec/jrmp/jrmpexporter/GetClientSocketFactory_BehaviorTest2.td
>    Adding test:
> com/sun/jini/test/spec/jrmp/jrmpexporter/GetClientSocketFactory_BehaviorTest3.td
>    Adding test:
> com/sun/jini/test/spec/jrmp/jrmpexporter/GetClientSocketFactory_BehaviorTest4.td
>    Adding test:
> com/sun/jini/test/spec/jrmp/jrmpexporter/GetPort_BehaviorTest.td
>    Adding test:
> com/sun/jini/test/spec/jrmp/jrmpexporter/GetPort_BehaviorTest1.td
>    Adding test:
> com/sun/jini/test/spec/jrmp/jrmpexporter/GetPort_BehaviorTest2.td
>    Adding test:
> com/sun/jini/test/spec/jrmp/jrmpexporter/GetPort_BehaviorTest3.td
>    Adding test:
> com/sun/jini/test/spec/jrmp/jrmpexporter/GetPort_BehaviorTest4.td
>    Adding test:
> com/sun/jini/test/spec/jrmp/jrmpexporter/GetServerSocketFactory_BehaviorTest.td
>    Adding test:
> com/sun/jini/test/spec/jrmp/jrmpexporter/GetServerSocketFactory_BehaviorTest1.td
>    Adding test:
> com/sun/jini/test/spec/jrmp/jrmpexporter/GetServerSocketFactory_BehaviorTest2.td
>    Adding test:
> com/sun/jini/test/spec/jrmp/jrmpexporter/GetServerSocketFactory_BehaviorTest3.td
>    Adding test:
> com/sun/jini/test/spec/jrmp/jrmpexporter/GetServerSocketFactory_BehaviorTest4.td
>    Adding test:
> com/sun/jini/test/spec/jrmp/jrmpexporter/Unexport_BehaviorTest.td
>    Adding test:
> com/sun/jini/test/spec/jrmp/jrmpexporter/Unexport_BehaviorTest1.td
>    Adding test:
> com/sun/jini/test/spec/jrmp/jrmpexporter/Unexport_BehaviorTest2.td
>    Adding test:
> com/sun/jini/test/spec/jrmp/jrmpexporter/Unexport_BehaviorTest3.td
>    Adding test:
> com/sun/jini/test/spec/jrmp/jrmpexporter/Unexport_BehaviorTest4.td
>    Adding test:
> com/sun/jini/test/spec/jrmp/jrmpexporter/Unexport_IllegalStateExceptionTest.td
>    Adding test:
> com/sun/jini/test/spec/jrmp/jrmpexporter/Unexport_IllegalStateExceptionTest1.td
>    Adding test:
> com/sun/jini/test/spec/jrmp/jrmpexporter/Unexport_IllegalStateExceptionTest2.td
>    Adding test:
> com/sun/jini/test/spec/jrmp/jrmpexporter/Unexport_IllegalStateExceptionTest3.td
>    Adding test:
> com/sun/jini/test/spec/jrmp/jrmpexporter/Unexport_IllegalStateExceptionTest4.td
>    Adding test:
> com/sun/jini/test/spec/jrmp/jrmpservercontext/GetServerContext_Test.td
>    Adding test:
> com/sun/jini/test/spec/jrmp/jrmpservercontext/GetServerContext_Test1.td
>    Adding test:
> com/sun/jini/test/spec/jrmp/jrmpservercontext/GetServerContext_Test2.td
>    Adding test:
> com/sun/jini/test/spec/jrmp/jrmpservercontext/GetServerContext_Test3.td
>    Adding test:
> com/sun/jini/test/spec/jrmp/jrmpservercontext/GetServerContext_Test4.td
>    Adding test:
> com/sun/jini/test/spec/loader/downloadPermission/Constructor.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassLoader/Constructor.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassLoader/ConstructorNoDlPerm.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassLoader/GetClassAnnotation.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassLoader/GetClassAnnotationNoDlPerm.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassLoader/GetPermissions.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassLoader/GetPermissionsNoDlPerm.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassLoader/GetPermissionsSecurityException.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassLoader/GetResources.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassLoader/GetResourcesNoDlPerm.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassLoader/IsPreferredClass.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassLoader/IsPreferredClassNoDlPerm.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassLoader/IsPreferredResource.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassLoader/IsPreferredResourceIOException.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassLoader/IsPreferredResourceIOExceptionNoDlPerm.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassLoader/IsPreferredResourceNoDlPerm.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassLoader/LoadClasses.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassLoader/LoadClassesNoDlPerm.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassLoader/NewInstance.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassLoader/NewInstanceNoDlPerm.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassAnnotationFile.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassAnnotationFileCann.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassAnnotationFileDlperm.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassAnnotationFileDlpermCann.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassAnnotationHttp.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassAnnotationHttpCann.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassAnnotationHttpDlperm.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassAnnotationHttpDlpermCann.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassLoaderFile.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassLoaderFileCann.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassLoaderFileDlperm.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassLoaderFileDlpermCann.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassLoaderHttp.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassLoaderHttpCann.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassLoaderHttpDlperm.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassLoaderHttpDlpermCann.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassLoaderMalformedURL.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassLoaderMalformedURLCann.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassLoaderMalformedURLDlperm.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassLoaderMalformedURLDlpermCann.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassLoaderMalformedURLDlpermNullCodebase.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassLoaderMalformedURLNullCodebase.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassLoaderSecurityExceptionFile.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassLoaderSecurityExceptionFileCann.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassLoaderSecurityExceptionFileDlperm.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassLoaderSecurityExceptionFileDlpermCann.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassLoaderSecurityExceptionHttp.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassLoaderSecurityExceptionHttpCann.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassLoaderSecurityExceptionHttpDlperm.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassLoaderSecurityExceptionHttpDlpermCann.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassLoaderSecurityExceptionHttpDlpermNoConnect.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassLoaderSecurityExceptionHttpDlpermNoConnectCann.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassLoaderSecurityExceptionHttpNoConnect.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassLoaderSecurityExceptionHttpNoConnectCann.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadClassesClassNotFoundFile.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadClassesClassNotFoundFileCann.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadClassesClassNotFoundFileDlperm.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadClassesClassNotFoundFileDlpermCann.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadClassesClassNotFoundHttp.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadClassesClassNotFoundHttpCann.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadClassesClassNotFoundHttpDlperm.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadClassesClassNotFoundHttpDlpermCann.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadClassesFile.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadClassesFileCann.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadClassesFileDlperm.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadClassesFileDlpermCann.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadClassesHttp.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadClassesHttpCann.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadClassesHttpDlperm.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadClassesHttpDlpermCann.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadClassesMalformedURL.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadClassesMalformedURLCann.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadClassesMalformedURLDlperm.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadClassesMalformedURLDlpermCann.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadClassesMalformedURLDlpermNullCodebase.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadClassesMalformedURLDlpermSimpleann.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadClassesMalformedURLNullCodebase.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadClassesMalformedURLSimpleann.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadClassesSecurityExceptionFile.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadClassesSecurityExceptionFileCann.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadClassesSecurityExceptionHttp.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadClassesSecurityExceptionHttpCann.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadProxyClassesClassNotFoundFile.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadProxyClassesClassNotFoundFileCann.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadProxyClassesClassNotFoundFileDlperm.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadProxyClassesClassNotFoundFileDlpermCann.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadProxyClassesClassNotFoundHttp.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadProxyClassesClassNotFoundHttpCann.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadProxyClassesClassNotFoundHttpDlperm.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadProxyClassesClassNotFoundHttpDlpermCann.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadProxyClassesFile.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadProxyClassesFileCann.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadProxyClassesFileDlperm.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadProxyClassesFileDlpermCann.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadProxyClassesHttp.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadProxyClassesHttpCann.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadProxyClassesHttpDlperm.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadProxyClassesHttpDlpermCann.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadProxyClassesMalformedURL.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadProxyClassesMalformedURLCann.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadProxyClassesMalformedURLCannNullCodebase.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadProxyClassesMalformedURLDlperm.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadProxyClassesMalformedURLDlpermCann.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadProxyClassesMalformedURLDlpermCannNullCodebase.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadProxyClassesMalformedURLDlpermNullCodebase.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadProxyClassesMalformedURLNullCodebase.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/requireDlPermProvider/LoadClassesFile.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/requireDlPermProvider/LoadClassesHttp.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/requireDlPermProvider/LoadClassesSecurityExceptionFile.td
>    Adding test:
> com/sun/jini/test/spec/loader/pref/requireDlPermProvider/LoadClassesSecurityExceptionHttp.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/javaspace05/MutatingContentsTest.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/javaspace05/StableContentsTest.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/leasing/SpaceLeaseGrantTest.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/leasing/SpaceLeaseGrantTestAny.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/leasing/SpaceLeaseGrantTestForever.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/leasing/SpaceNotifyGrantTest.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/leasing/SpaceNotifyGrantTestAnyLength.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/leasing/SpaceNotifyGrantTestForever.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/leasing/TxnMgrLeaseGrantTest.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/leasing/TxnMgrLeaseGrantTestAnyLength.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/leasing/TxnMgrLeaseGrantTestForever.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/leasing/UseNotifyLeaseTest.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/leasing/UseNotifyLeaseTestCancel.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/leasing/UseNotifyLeaseTestRenew.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/leasing/UseNotifyLeaseTestRenewCancel.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/leasing/UseNotifyLeaseTestRenewShutdown.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/leasing/UseNotifyLeaseTestShutdown.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/leasing/UseTxnMgrLeaseTest.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/leasing/UseTxnMgrLeaseTestCancel.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/leasing/UseTxnMgrLeaseTestRenew.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/leasing/UseTxnMgrLeaseTestRenewCancel.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/leasing/UseTxnMgrSpaceLeaseTest.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/leasing/UseTxnMgrSpaceLeaseTestCancel.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/leasing/UseTxnMgrSpaceLeaseTestRenew.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/leasing/UseTxnMgrSpaceLeaseTestRenewCancel.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/leasing/UserSpaceLeaseTest.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/leasing/UserSpaceLeaseTestCancel.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/leasing/UserSpaceLeaseTestRenew.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/leasing/UserSpaceLeaseTestRenewCancel.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/leasing/UserSpaceLeaseTestRenewShutdown.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/leasing/UserSpaceLeaseTestShutdown.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/matching/AdminIteratorTest.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/matching/AdminIteratorTestShutdown.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/matching/BlockingMaxServerTimeoutTest.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/matching/BlockingMaxServerTimeoutTestRead.td
>    Adding test: com/sun/jini/test/impl/outrigger/matching/BlockingTest.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/matching/BlockingTestRead.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/matching/BlockingTestReadShutdown.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/matching/BlockingTestShutdown.td
>    Adding test: com/sun/jini/test/impl/outrigger/matching/FieldMatchTest.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/matching/FieldMatchTestNBE.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/matching/FieldMatchTestUniqueEntry.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/matching/FieldMatchTestUseIfExists.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/matching/FieldMatchTestUseIfExistsShutdown.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/matching/FieldNotifyTest.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/matching/FieldNotifyTestNBEUniqueEntry.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/matching/FieldNotifyTestUniqueEntry.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/matching/FieldNotifyTestUniqueEntryShutdown.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/matching/MismatchNotifyTest.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/matching/MismatchNotifyTestNBE.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/matching/MismatchNotifyTestWriteInt.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/matching/MismatchNotifyTestWriteIntShutdown.td
>    Adding test: com/sun/jini/test/impl/outrigger/matching/MismatchTest.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/matching/MismatchTestExistsTakes.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/matching/MismatchTestExistsWriteInt.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/matching/MismatchTestNBEComplex.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/matching/MismatchTestTakes.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/matching/MismatchTestUseIfExists.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/matching/MismatchTestUseIfExistsShutdown.td
>    Adding test: com/sun/jini/test/impl/outrigger/matching/StressTest.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/matching/StressTestInterleaved.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/matching/StressTestInterleavedWithShutdown.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/matching/StressTestWithShutdown.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/matching/SupertypeMatching.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/matching/SupertypeNotifyTest.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/matching/SupertypeNotifyTestShutdown.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/matching/SupertypeUseIfExists.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/matching/SupertypeUseIfExistsShutdown.td
>    Adding test: com/sun/jini/test/impl/outrigger/matching/TakeOneTest.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/matching/TakeOneTestIfExists.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/matching/TakeOneTestIfExistsShutdown.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/matching/WildcardsNotifyTest.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/matching/WildcardsNotifyTestShutdown.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/matching/WildcardsNotifyTestWriteInt.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/matching/WildcardsNotifyTestWriteNBEClass.td
>    Adding test: com/sun/jini/test/impl/outrigger/matching/WildcardsTest.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/matching/WildcardsTestExists.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/matching/WildcardsTestWriteIntClass.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/matching/WildcardsTestWriteNBEClass.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/matching/WildcardsTestWriteNBEClassShutdown.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/matching/WriteOneTakeRead.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/matching/WriteOneTakeReadExists.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/matching/WriteOneTakeReadExistsShutdown.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/matching/WriteOneTakeReadWriteIntClass.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/matching/WriteOneTakeReadWriteNBEClass.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/notify/ThrowRuntimeException.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/transaction/AbortToReadTest.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/transaction/BlockingOnDeadTransactionTest.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/transaction/BlockingOnDeadTransactionTestPoll.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/transaction/CommitAbortTest.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/transaction/CommitTerminationTest.td
>    Adding test: com/sun/jini/test/impl/outrigger/transaction/DestroyTest.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/transaction/ExceptionTest1.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/transaction/ExceptionTest2.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/transaction/GetBlockTest.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/transaction/IfExistsDontBlockSelfTest.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/transaction/IfExistsDontBlockSelfTestRead.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/transaction/IfExistsTest.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/transaction/MultipleAccessTest.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/transaction/NotifyLogTest.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/transaction/NotifyTransactionTest.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/transaction/PreparedTransactionTestAbort.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/transaction/PreparedTransactionTestAbortActive.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/transaction/PreparedTransactionTestAbortThrows.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/transaction/PreparedTransactionTestAbortWait.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/transaction/PreparedTransactionTestCommit.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/transaction/PreparedTransactionTestCommitThrows.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/transaction/PreparedTransactionTestCommitWait.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/transaction/ReactivationTest.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/transaction/ReadReadTakeTest.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/transaction/ReadTakeAbortTest.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/transaction/ReadTakeCommitTest.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/transaction/SimpleTransactionTest.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/transaction/SimpleTransactionTest2.td
>    Adding test:
> com/sun/jini/test/impl/outrigger/transaction/TwoSpaceTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/ContentsTest05.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/ExpirationNotifyTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/ExpirationTest.td
>    Adding test: com/sun/jini/test/spec/javaspace/conformance/LeaseTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/MultipleTakeIfExistsNO_WAITTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/MultipleTakeIfExistsTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/MultipleTakeNO_WAITTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/MultipleTakeTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/NotifyLeaseANYTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/NotifyLeaseFOREVERTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/NotifyNegativeLeaseTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/NotifyNonNullTxnParamTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/NotifyNullTxnParamTest.td
>    Adding test: com/sun/jini/test/spec/javaspace/conformance/NotifyTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/ReadIfExistsNO_WAITTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/ReadIfExistsTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/ReadNO_WAITTest.td
>    Adding test: com/sun/jini/test/spec/javaspace/conformance/ReadTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/RegisterForAvailabilityEventTest05.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/TakeIfExistsNO_WAITTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/TakeIfExistsTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/TakeNO_WAITTest.td
>    Adding test: com/sun/jini/test/spec/javaspace/conformance/TakeTest.td
>    Adding test: com/sun/jini/test/spec/javaspace/conformance/TakeTest05.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/TransactionAbortWriteTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/TransactionCommitTakeIfExistsTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/TransactionCommitTakeTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/TransactionCommitWriteTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/TransactionContentsTest05.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/TransactionExpirationTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/TransactionLeaseTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/TransactionMultipleTakeIfExistsNO_WAITTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/TransactionMultipleTakeIfExistsTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/TransactionMultipleTakeNO_WAITTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/TransactionMultipleTakeTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/TransactionNotifyLeaseANYTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/TransactionNotifyLeaseFOREVERTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/TransactionNotifyNegativeLeaseTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/TransactionNotifyTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/TransactionReadIfExistsNO_WAITTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/TransactionReadIfExistsTakeTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/TransactionReadIfExistsTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/TransactionReadIfExistsWaitTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/TransactionReadNO_WAITTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/TransactionReadTakeTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/TransactionReadTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/TransactionReadWaitTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/TransactionRegisterForAvailabilityEventTest05.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/TransactionTakeIfExistsNO_WAITTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/TransactionTakeIfExistsReadTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/TransactionTakeIfExistsTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/TransactionTakeIfExistsWaitTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/TransactionTakeNO_WAITTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/TransactionTakeReadTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/TransactionTakeTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/TransactionTakeTest05.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/TransactionTakeWaitTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/TransactionWriteLeaseANYTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/TransactionWriteLeaseFOREVERTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/TransactionWriteNegativeLeaseTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/TransactionWriteTakeIfExistsNotifyTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/TransactionWriteTakeIfExistsTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/TransactionWriteTakeNotifyTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/TransactionWriteTakeTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/TransactionWriteTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/TransactionWriteTest05.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/WriteLeaseANYTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/WriteLeaseFOREVERTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/WriteNegativeLeaseTest.td
>    Adding test: com/sun/jini/test/spec/javaspace/conformance/WriteTest.td
>    Adding test: com/sun/jini/test/spec/javaspace/conformance/WriteTest05.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotExpirationNotifyTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotExpirationTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotLeaseTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotModifyEntryTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotMultipleTakeIfExistsNO_WAITTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotMultipleTakeIfExistsTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotMultipleTakeNO_WAITTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotMultipleTakeTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotNotifyLeaseANYTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotNotifyLeaseFOREVERTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotNotifyNegativeLeaseTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotNotifyNonNullTxnParamTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotNotifyNullTxnParamTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotNotifyTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotReadIfExistsNO_WAITTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotReadIfExistsTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotReadNO_WAITTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotReadTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTakeIfExistsNO_WAITTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTakeIfExistsTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTakeNO_WAITTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTakeTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionAbortWriteTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionCommitTakeIfExistsTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionCommitTakeTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionCommitWriteTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionExpirationTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionLeaseTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionMultipleTakeIfExistsNO_WAITTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionMultipleTakeIfExistsTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionMultipleTakeNO_WAITTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionMultipleTakeTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionNotifyLeaseANYTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionNotifyLeaseFOREVERTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionNotifyNegativeLeaseTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionNotifyTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionReadIfExistsNO_WAITTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionReadIfExistsTakeTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionReadIfExistsTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionReadIfExistsWaitTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionReadNO_WAITTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionReadTakeTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionReadTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionReadWaitTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionTakeIfExistsNO_WAITTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionTakeIfExistsReadTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionTakeIfExistsTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionTakeIfExistsWaitTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionTakeNO_WAITTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionTakeReadTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionTakeTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionTakeWaitTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionWriteLeaseANYTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionWriteLeaseFOREVERTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionWriteNegativeLeaseTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionWriteTakeIfExistsNotifyTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionWriteTakeIfExistsTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionWriteTakeNotifyTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionWriteTakeTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionWriteTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotWriteLeaseANYTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotWriteLeaseFOREVERTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotWriteNegativeLeaseTest.td
>    Adding test:
> com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotWriteTest.td
>    Adding test:
> com/sun/jini/test/spec/policyprovider/dynamicPolicyProvider/GetGrantsNoPrincipal.td
>    Adding test:
> com/sun/jini/test/spec/policyprovider/dynamicPolicyProvider/GrantNoPrincipalCase01.td
>    Adding test:
> com/sun/jini/test/spec/policyprovider/dynamicPolicyProvider/GrantNoPrincipalCase02.td
>    Adding test:
> com/sun/jini/test/spec/policyprovider/dynamicPolicyProvider/GrantPrincipal.td
>    Adding test:
> com/sun/jini/test/spec/policyprovider/dynamicPolicyProvider/GrantPrincipalSame.td
>    Adding test:
> com/sun/jini/test/spec/policyprovider/dynamicPolicyProvider/NullCases.td
>    Adding test:
> com/sun/jini/test/spec/policyprovider/dynamicPolicyProvider/PolicyInitializationExceptionTest.td
>    Adding test:
> com/sun/jini/test/spec/policyprovider/dynamicPolicyProvider/RefreshNoPrincipal.td
>    Adding test:
> com/sun/jini/test/spec/policyprovider/dynamicPolicyProvider/SecurityExceptionConstructorNoAccessClass.td
>    Adding test:
> com/sun/jini/test/spec/policyprovider/dynamicPolicyProvider/SecurityExceptionConstructorNoGetProperty.td
>    Adding test:
> com/sun/jini/test/spec/policyprovider/grantPermission/GrantPermissionTest.td
>    Adding test:
> com/sun/jini/test/spec/policyprovider/grantPermission/GrantPermissionTestCase01.td
>    Adding test:
> com/sun/jini/test/spec/policyprovider/policyFileProvider/BasicGrants.td
>    Adding test:
> com/sun/jini/test/spec/policyprovider/policyFileProvider/NullCases.td
>    Adding test:
> com/sun/jini/test/spec/policyprovider/policyFileProvider/NullPolicy.td
>    Adding test:
> com/sun/jini/test/spec/policyprovider/policyFileProvider/PolicyInitializationExceptionTest.td
>    Adding test:
> com/sun/jini/test/spec/policyprovider/policyFileProvider/SecurityExceptionConstructorNoAccessClass.td
>    Adding test:
> com/sun/jini/test/spec/policyprovider/policyFileProvider/SecurityExceptionConstructorNoGetProperty.td
>    Adding test:
> com/sun/jini/test/spec/policyprovider/policyFileProvider/UmbrellaGrants.td
>    Adding test:
> com/sun/jini/test/spec/discoverymanager/AddNewDiscoveryChangeListener.td
>    Adding test:
> com/sun/jini/test/spec/discoverymanager/AddNewDiscoveryListener.td
>    Adding test:
> com/sun/jini/test/spec/discoverymanager/DiscardUnreachable.td
>    Adding test: com/sun/jini/test/spec/discoverymanager/Discovered.td
>    Adding test:
> com/sun/jini/test/spec/discoverymanager/GroupsAddNewDiscoveryChangeListener.td
>    Adding test:
> com/sun/jini/test/spec/discoverymanager/GroupsAddNewDiscoveryListener.td
>    Adding test:
> com/sun/jini/test/spec/discoverymanager/GroupsDiscardUnreachable.td
>    Adding test: com/sun/jini/test/spec/discoverymanager/GroupsDiscovered.td
>    Adding test:
> com/sun/jini/test/spec/discoverymanager/GroupsMulticastMonitorChange.td
>    Adding test:
> com/sun/jini/test/spec/discoverymanager/GroupsMulticastMonitorReplace.td
>    Adding test:
> com/sun/jini/test/spec/discoverymanager/GroupsMulticastMonitorReplaceNone.td
>    Adding test:
> com/sun/jini/test/spec/discoverymanager/GroupsMulticastMonitorStop.td
>    Adding test:
> com/sun/jini/test/spec/discoverymanager/GroupsMulticastMonitorTerminate.td
>    Adding test:
> com/sun/jini/test/spec/discoverymanager/GroupsSetGroupsReplaceAll.td
>    Adding test:
> com/sun/jini/test/spec/discoverymanager/LocsAddNewDiscoveryChangeListener.td
>    Adding test:
> com/sun/jini/test/spec/discoverymanager/LocsAddNewDiscoveryListener.td
>    Adding test:
> com/sun/jini/test/spec/discoverymanager/LocsDiscardUnreachable.td
>    Adding test: com/sun/jini/test/spec/discoverymanager/LocsDiscovered.td
>    Adding test:
> com/sun/jini/test/spec/discoverymanager/LocsMulticastMonitorChange.td
>    Adding test:
> com/sun/jini/test/spec/discoverymanager/LocsMulticastMonitorReplace.td
>    Adding test:
> com/sun/jini/test/spec/discoverymanager/LocsMulticastMonitorReplaceNone.td
>    Adding test:
> com/sun/jini/test/spec/discoverymanager/LocsMulticastMonitorStop.td
>    Adding test:
> com/sun/jini/test/spec/discoverymanager/LocsMulticastMonitorTerminate.td
>    Adding test:
> com/sun/jini/test/spec/discoverymanager/LocsSetGroupsReplaceAll.td
>    Adding test:
> com/sun/jini/test/spec/discoverymanager/MulticastMonitorChange.td
>    Adding test:
> com/sun/jini/test/spec/discoverymanager/MulticastMonitorReplace.td
>    Adding test:
> com/sun/jini/test/spec/discoverymanager/MulticastMonitorReplaceNone.td
>    Adding test:
> com/sun/jini/test/spec/discoverymanager/MulticastMonitorStop.td
>    Adding test:
> com/sun/jini/test/spec/discoverymanager/MulticastMonitorTerminate.td
>    Adding test: com/sun/jini/test/spec/discoverymanager/RemoveGroupsAll.td
>    Adding test: com/sun/jini/test/spec/discoverymanager/RemoveGroupsSome.td
>    Adding test:
> com/sun/jini/test/spec/discoverymanager/SetGroupsReplaceAll.td
>    Adding test:
> com/sun/jini/test/spec/discoverymanager/SetGroupsReplaceSome.td
>    Adding test:
> com/sun/jini/test/impl/start/ActivateWrapperActivateDescTest.td
>    Adding test:
> com/sun/jini/test/impl/start/ActivateWrapperActivateDescTest2.td
>    Adding test:
> com/sun/jini/test/impl/start/ActivateWrapperActivateDescTest3.td
>    Adding test:
> com/sun/jini/test/impl/start/ActivateWrapperRegisterBadCodebase.td
>    Adding test:
> com/sun/jini/test/impl/start/ActivateWrapperRegisterBadGroup.td
>    Adding test:
> com/sun/jini/test/impl/start/ActivateWrapperRegisterBadImplClass.td
>    Adding test:
> com/sun/jini/test/impl/start/ActivateWrapperRegisterBadStubClass.td
>    Adding test:
> com/sun/jini/test/impl/start/ActivateWrapperRegisterBadStubCodebase.td
>    Adding test:
> com/sun/jini/test/impl/start/ActivateWrapperRegisterUnsharedImpl.td
>    Adding test: com/sun/jini/test/impl/start/ClassLoaderTest.td
>    Adding test: com/sun/jini/test/impl/start/ClassLoaderUtilTest.td
>    Adding test: com/sun/jini/test/impl/start/ClasspathTest.td
>    Adding test: com/sun/jini/test/impl/start/CodebaseTest.td
>    Adding test:
> com/sun/jini/test/impl/start/DestroySharedGroupCreateBadDesc.td
>    Adding test:
> com/sun/jini/test/impl/start/DestroySharedGroupCreateEmptyTest.td
>    Adding test: com/sun/jini/test/impl/st

Re: ServiceDiscoveryManager test coverage

Posted by Jonathan Costers <jo...@googlemail.com>.
2010/8/27 Peter Firmstone <ji...@zeus.net.au>

> Hi JC,
>
> Can we have an ant target for running all the tests?
>
>
>
I made some changes to the code for the QA harness so that when not
specifying any test categories, it will load all categories it can find.

Here is what came up:

-----------------------------------------
SETTING UP THE TEST LIST:

   Adding test:
com/sun/jini/test/impl/servicediscovery/event/AddListenerEvent.td
   Adding test:
com/sun/jini/test/impl/servicediscovery/event/DiscardDownReDiscover.td
   Adding test:
com/sun/jini/test/impl/servicediscovery/event/DiscardServiceDown.td
   Adding test:
com/sun/jini/test/impl/servicediscovery/event/DiscardServiceUp.td
   Adding test:
com/sun/jini/test/impl/servicediscovery/event/LookupDropProxyTaskRace.td
   Adding test:
com/sun/jini/test/impl/servicediscovery/event/LookupTaskRace.td
   Adding test:
com/sun/jini/test/impl/servicediscovery/event/LookupTaskServiceIdMapRace.td
   Adding test:
com/sun/jini/test/impl/servicediscovery/event/NotifyEventDropProxyTaskRace.td
   Adding test:
com/sun/jini/test/impl/servicediscovery/event/ReRegisterBadEquals.td
   Adding test:
com/sun/jini/test/impl/servicediscovery/event/ReRegisterGoodEquals.td
   Adding test:
com/sun/jini/test/impl/servicediscovery/event/ServiceDiscardCacheTerminate.td
   Adding test:
com/sun/jini/test/impl/fiddler/fiddleradmin/GetLeaseDurationBound.td
   Adding test:
com/sun/jini/test/impl/fiddler/fiddleradmin/GetLogToSnapshotThreshold.td
   Adding test:
com/sun/jini/test/impl/fiddler/fiddleradmin/GetSnapshotWeight.td
   Adding test:
com/sun/jini/test/impl/fiddler/fiddleradmin/SetLeaseDurationBound.td
   Adding test:
com/sun/jini/test/impl/fiddler/fiddleradmin/SetLogToSnapshotThreshold.td
   Adding test:
com/sun/jini/test/impl/fiddler/fiddleradmin/SetSnapshotWeight.td
   Adding test:
com/sun/jini/test/spec/jeri/basicinvocationdispatcher/CheckPermissionClassTest.td
   Adding test:
com/sun/jini/test/spec/jeri/basicinvocationdispatcher/ConstructorAccessorTest.td
   Adding test:
com/sun/jini/test/spec/jeri/basicinvocationdispatcher/Dispatch_CheckAccessExceptionTest.td
   Adding test:
com/sun/jini/test/spec/jeri/basicinvocationdispatcher/Dispatch_CheckConstraintsBadReturnTest.td
   Adding test:
com/sun/jini/test/spec/jeri/basicinvocationdispatcher/Dispatch_CheckConstraintsExceptionTest.td
   Adding test:
com/sun/jini/test/spec/jeri/basicinvocationdispatcher/Dispatch_CreateMarshalInputStreamExceptionTest.td
   Adding test:
com/sun/jini/test/spec/jeri/basicinvocationdispatcher/Dispatch_CreateMarshalOutputStreamExceptionTest.td
   Adding test:
com/sun/jini/test/spec/jeri/basicinvocationdispatcher/Dispatch_FirstRequestByteTest.td
   Adding test:
com/sun/jini/test/spec/jeri/basicinvocationdispatcher/Dispatch_InvokeExceptionTest.td
   Adding test:
com/sun/jini/test/spec/jeri/basicinvocationdispatcher/Dispatch_MarshalReturnExceptionTest.td
   Adding test:
com/sun/jini/test/spec/jeri/basicinvocationdispatcher/Dispatch_MarshalThrowExceptionTest.td
   Adding test:
com/sun/jini/test/spec/jeri/basicinvocationdispatcher/Dispatch_NormalReturnTest.td
   Adding test:
com/sun/jini/test/spec/jeri/basicinvocationdispatcher/Dispatch_SecondRequestByteTest.td
   Adding test:
com/sun/jini/test/spec/jeri/basicinvocationdispatcher/Dispatch_UnmarshalArgumentsExceptionTest.td
   Adding test:
com/sun/jini/test/spec/jeri/basicinvocationdispatcher/Dispatch_UnmarshalMethodExceptionTest.td
   Adding test:
com/sun/jini/test/spec/jeri/basicinvocationdispatcher/NullArgsTest.td
   Adding test: com/sun/jini/test/spec/discoverymanager/DiscoveredAll.td
   Adding test:
com/sun/jini/test/spec/discoverymanager/GroupsDiscoveredAll.td
   Adding test:
com/sun/jini/test/spec/discoverymanager/GroupsMulticastMonitorReplaceAll.td
   Adding test: com/sun/jini/test/spec/discoverymanager/LocsDiscoveredAll.td
   Adding test:
com/sun/jini/test/spec/discoverymanager/LocsMulticastMonitorReplaceAll.td
   Adding test:
com/sun/jini/test/spec/discoverymanager/MulticastMonitorReplaceAll.td
   Adding test:
com/sun/jini/test/spec/discoveryservice/event/DiscoveredAll.td
   Adding test:
com/sun/jini/test/spec/lookupdiscovery/ConstructorAllGroups.td
   Adding test:
com/sun/jini/test/spec/lookupdiscovery/DiscoveryBeginsOnSetGroupsAllAfterEmpty.td
   Adding test:
com/sun/jini/test/spec/lookupdiscovery/MulticastMonitorAllChange.td
   Adding test: com/sun/jini/test/spec/lookupdiscovery/SetGroupsAllGroups.td
   Adding test:
com/sun/jini/test/spec/jeri/abstractilfactory/AccessorTest.td
   Adding test:
com/sun/jini/test/spec/jeri/basicilfactory/ConstructorAccessorTest.td
   Adding test:
com/sun/jini/test/spec/jeri/basicilfactory/CreateInstancesTest.td
   Adding test:
com/sun/jini/test/spec/jeri/basicilfactory/CreateInvocationDispatcherTest.td
   Adding test:
com/sun/jini/test/spec/jeri/basicilfactory/CreateInvocationHandlerTest.td
   Adding test:
com/sun/jini/test/spec/jeri/basicilfactory/GetExtraProxyInterfacesTest.td
   Adding test:
com/sun/jini/test/spec/jeri/basicilfactory/ObjectMethodsTest.td
   Adding test:
com/sun/jini/test/spec/jeri/basicinvocationhandler/CheckTrustEquivalenceTest.td
   Adding test:
com/sun/jini/test/spec/jeri/basicinvocationhandler/ConstructorAccessorTest.td
   Adding test:
com/sun/jini/test/spec/jeri/basicinvocationhandler/Invoke_CreateMarshalInputStreamExceptionTest.td
   Adding test:
com/sun/jini/test/spec/jeri/basicinvocationhandler/Invoke_CreateMarshalOutputStreamExceptionTest.td
   Adding test:
com/sun/jini/test/spec/jeri/basicinvocationhandler/Invoke_ExecuteCallExceptionTest.td
   Adding test:
com/sun/jini/test/spec/jeri/basicinvocationhandler/Invoke_ExecuteCallNonNullReturnTest.td
   Adding test:
com/sun/jini/test/spec/jeri/basicinvocationhandler/Invoke_FirstResponseByteTest.td
   Adding test:
com/sun/jini/test/spec/jeri/basicinvocationhandler/Invoke_GetUnfulfilledConstraintsExceptionTest.td
   Adding test:
com/sun/jini/test/spec/jeri/basicinvocationhandler/Invoke_IntegrityTest.td
   Adding test:
com/sun/jini/test/spec/jeri/basicinvocationhandler/Invoke_MarshalArgumentsExceptionTest.td
   Adding test:
com/sun/jini/test/spec/jeri/basicinvocationhandler/Invoke_MarshalMethodExceptionTest.td
   Adding test:
com/sun/jini/test/spec/jeri/basicinvocationhandler/Invoke_NormalReturnTest.td
   Adding test:
com/sun/jini/test/spec/jeri/basicinvocationhandler/Invoke_OutboundRequestIteratorExceptionTest.td
   Adding test:
com/sun/jini/test/spec/jeri/basicinvocationhandler/Invoke_RemoteMethodControlTest.td
   Adding test:
com/sun/jini/test/spec/jeri/basicinvocationhandler/Invoke_UnmarshalReturnExceptionTest.td
   Adding test:
com/sun/jini/test/spec/jeri/basicinvocationhandler/Invoke_UnmarshalThrowExceptionTest.td
   Adding test:
com/sun/jini/test/spec/jeri/basicinvocationhandler/NullArgsTest.td
   Adding test:
com/sun/jini/test/spec/jeri/basicinvocationhandler/ObjectMethodsTest.td
   Adding test:
com/sun/jini/test/spec/jeri/basicinvocationhandler/SetClientConstraintsTest.td
   Adding test:
com/sun/jini/test/spec/jeri/basicjeriexporter/ConstructorTest.td
   Adding test:
com/sun/jini/test/spec/jeri/basicjeriexporter/ExportExceptionTest_NullArgument.td
   Adding test:
com/sun/jini/test/spec/jeri/basicjeriexporter/ExportExceptionTest_SameIDSameSE.td
   Adding test:
com/sun/jini/test/spec/jeri/basicjeriexporter/ExportTest_CallTwice.td
   Adding test:
com/sun/jini/test/spec/jeri/basicjeriexporter/ExportTest_CustomParams.td
   Adding test:
com/sun/jini/test/spec/jeri/basicjeriexporter/ExportTest_DefaultParams.td
   Adding test:
com/sun/jini/test/spec/jeri/basicjeriexporter/UnexportExceptionTest.td
   Adding test:
com/sun/jini/test/spec/jeri/basicjeriexporter/UnexportTest_ForceFalse.td
   Adding test:
com/sun/jini/test/spec/jeri/basicjeriexporter/UnexportTest_ForceTrue.td
   Adding test:
com/sun/jini/test/spec/jeri/basicjeriexporter/UnexportTest_InProgressForceFalse.td
   Adding test:
com/sun/jini/test/spec/jeri/basicjeriexporter/UnexportTest_InProgressForceTrue.td
   Adding test:
com/sun/jini/test/spec/jeri/basicjeritrustverifier/IsTrustedObject.td
   Adding test:
com/sun/jini/test/spec/jeri/basicobjectendpoint/CheckTrustEquivalenceTest.td
   Adding test:
com/sun/jini/test/spec/jeri/basicobjectendpoint/ConstructorAccessorTest.td
   Adding test:
com/sun/jini/test/spec/jeri/basicobjectendpoint/ExecuteCall_ExceptionTest.td
   Adding test:
com/sun/jini/test/spec/jeri/basicobjectendpoint/ExecuteCall_NormalTest.td
   Adding test:
com/sun/jini/test/spec/jeri/basicobjectendpoint/NewCall_ExceptionTest.td
   Adding test:
com/sun/jini/test/spec/jeri/basicobjectendpoint/NewCall_NormalTest.td
   Adding test:
com/sun/jini/test/spec/jeri/basicobjectendpoint/ObjectMethodsTest.td
   Adding test: com/sun/jini/test/spec/jeri/connection/ConnectionManager.td
   Adding test:
com/sun/jini/test/spec/jeri/connection/ServerConnectionManager.td
   Adding test: com/sun/jini/test/spec/jeri/http/HttpCheckConstraints.td
   Adding test:
com/sun/jini/test/spec/jeri/http/HttpCheckTrustEquivalence.td
   Adding test: com/sun/jini/test/spec/jeri/http/HttpConstructorAccessor.td
   Adding test: com/sun/jini/test/spec/jeri/http/HttpEndpointInUse.td
   Adding test: com/sun/jini/test/spec/jeri/http/HttpEqualityTest.td
   Adding test:
com/sun/jini/test/spec/jeri/http/HttpIllegalArgumentException.td
   Adding test:
com/sun/jini/test/spec/jeri/http/HttpListenContextException.td
   Adding test:
com/sun/jini/test/spec/jeri/http/HttpNewRequestConflictingConstraints.td
   Adding test: com/sun/jini/test/spec/jeri/http/HttpNullPointerException.td
   Adding test: com/sun/jini/test/spec/jeri/http/HttpRobustnessTest.td
   Adding test:
com/sun/jini/test/spec/jeri/http/HttpServerConstructorAccessor.td
   Adding test: com/sun/jini/test/spec/jeri/http/HttpServerEndpoint.td
   Adding test: com/sun/jini/test/spec/jeri/https/HttpsCheckConstraints.td
   Adding test:
com/sun/jini/test/spec/jeri/https/HttpsCheckTrustEquivalence.td
   Adding test:
com/sun/jini/test/spec/jeri/https/HttpsConstructorAccessor.td
   Adding test: com/sun/jini/test/spec/jeri/https/HttpsEndpointInUse.td
   Adding test: com/sun/jini/test/spec/jeri/https/HttpsEqualityTest.td
   Adding test:
com/sun/jini/test/spec/jeri/https/HttpsIllegalArgumentException.td
   Adding test:
com/sun/jini/test/spec/jeri/https/HttpsListenContextException.td
   Adding test:
com/sun/jini/test/spec/jeri/https/HttpsNewRequestConflictingConstraints.td
   Adding test:
com/sun/jini/test/spec/jeri/https/HttpsNullPointerException.td
   Adding test: com/sun/jini/test/spec/jeri/https/HttpsRobustnessTest.td
   Adding test:
com/sun/jini/test/spec/jeri/https/HttpsServerConstructorAccessor.td
   Adding test: com/sun/jini/test/spec/jeri/https/HttpsServerEndpoint.td
   Adding test:
com/sun/jini/test/spec/jeri/kerberos/KerberosCheckConstraints.td
   Adding test:
com/sun/jini/test/spec/jeri/kerberos/KerberosCheckTrustEquivalence.td
   Adding test:
com/sun/jini/test/spec/jeri/kerberos/KerberosConstructorAccessor.td
   Adding test:
com/sun/jini/test/spec/jeri/kerberos/KerberosEndpointInUse.td
   Adding test: com/sun/jini/test/spec/jeri/kerberos/KerberosEqualityTest.td
   Adding test:
com/sun/jini/test/spec/jeri/kerberos/KerberosIllegalArgumentException.td
   Adding test:
com/sun/jini/test/spec/jeri/kerberos/KerberosListenContextException.td
   Adding test:
com/sun/jini/test/spec/jeri/kerberos/KerberosNewRequestConflictingConstraints.td
   Adding test:
com/sun/jini/test/spec/jeri/kerberos/KerberosNullPointerException.td
   Adding test:
com/sun/jini/test/spec/jeri/kerberos/KerberosRobustnessTest.td
   Adding test:
com/sun/jini/test/spec/jeri/kerberos/KerberosServerConstructorAccessor.td
   Adding test:
com/sun/jini/test/spec/jeri/kerberos/KerberosServerEndpoint.td
   Adding test:
com/sun/jini/test/spec/jeri/kerberostrustverifier/IsTrustedObject.td
   Adding test: com/sun/jini/test/spec/jeri/mux/ClientAbortTest.td
   Adding test: com/sun/jini/test/spec/jeri/mux/ClientFlowControlTest.td
   Adding test: com/sun/jini/test/spec/jeri/mux/CloseTest.td
   Adding test: com/sun/jini/test/spec/jeri/mux/MuxClientTest.td
   Adding test: com/sun/jini/test/spec/jeri/mux/MuxServerTest.td
   Adding test: com/sun/jini/test/spec/jeri/mux/ServerAbortTest.td
   Adding test: com/sun/jini/test/spec/jeri/mux/ServerFlowControlTest.td
   Adding test:
com/sun/jini/test/spec/jeri/proxytrustilfactory/AccessorTest.td
   Adding test:
com/sun/jini/test/spec/jeri/proxytrustilfactory/ConstructorAccessorTest.td
   Adding test: com/sun/jini/test/spec/jeri/ssl/SslCheckConstraints.td
   Adding test: com/sun/jini/test/spec/jeri/ssl/SslCheckTrustEquivalence.td
   Adding test: com/sun/jini/test/spec/jeri/ssl/SslConstructorAccessor.td
   Adding test: com/sun/jini/test/spec/jeri/ssl/SslEndpointInUse.td
   Adding test: com/sun/jini/test/spec/jeri/ssl/SslEqualityTest.td
   Adding test:
com/sun/jini/test/spec/jeri/ssl/SslIllegalArgumentException.td
   Adding test: com/sun/jini/test/spec/jeri/ssl/SslListenContextException.td
   Adding test:
com/sun/jini/test/spec/jeri/ssl/SslNewRequestConflictingConstraints.td
   Adding test: com/sun/jini/test/spec/jeri/ssl/SslNullPointerException.td
   Adding test: com/sun/jini/test/spec/jeri/ssl/SslRobustnessTest.td
   Adding test:
com/sun/jini/test/spec/jeri/ssl/SslServerConstructorAccessor.td
   Adding test: com/sun/jini/test/spec/jeri/ssl/SslServerEndpoint.td
   Adding test:
com/sun/jini/test/spec/jeri/ssltrustverifier/IsTrustedObject.td
   Adding test: com/sun/jini/test/spec/jeri/tcp/TcpCheckConstraints.td
   Adding test: com/sun/jini/test/spec/jeri/tcp/TcpCheckTrustEquivalence.td
   Adding test: com/sun/jini/test/spec/jeri/tcp/TcpConstructorAccessor.td
   Adding test: com/sun/jini/test/spec/jeri/tcp/TcpEndpointInUse.td
   Adding test: com/sun/jini/test/spec/jeri/tcp/TcpEqualityTest.td
   Adding test:
com/sun/jini/test/spec/jeri/tcp/TcpIllegalArgumentException.td
   Adding test: com/sun/jini/test/spec/jeri/tcp/TcpListenContextException.td
   Adding test:
com/sun/jini/test/spec/jeri/tcp/TcpNewRequestConflictingConstraints.td
   Adding test: com/sun/jini/test/spec/jeri/tcp/TcpNullPointerException.td
   Adding test: com/sun/jini/test/spec/jeri/tcp/TcpRobustnessTest.td
   Adding test:
com/sun/jini/test/spec/jeri/tcp/TcpServerConstructorAccessor.td
   Adding test: com/sun/jini/test/spec/jeri/tcp/TcpServerEndpoint.td
   Adding test:
com/sun/jini/test/spec/servicediscovery/DefaultDiscoverPublic.td
   Adding test:
com/sun/jini/test/spec/servicediscovery/cache/AddListenerNPE.td
   Adding test:
com/sun/jini/test/spec/servicediscovery/cache/CacheDiscard.td
   Adding test: com/sun/jini/test/spec/servicediscovery/cache/CacheLookup.td
   Adding test:
com/sun/jini/test/spec/servicediscovery/cache/CacheLookupFilterFilter.td
   Adding test:
com/sun/jini/test/spec/servicediscovery/cache/CacheLookupFilterNoFilter.td
   Adding test:
com/sun/jini/test/spec/servicediscovery/cache/CacheLookupNoFilterFilter.td
   Adding test: com/sun/jini/test/spec/servicediscovery/discovery/Locator.td
   Adding test:
com/sun/jini/test/spec/servicediscovery/discovery/MulticastAnnouncement.td
   Adding test:
com/sun/jini/test/spec/servicediscovery/discovery/MulticastRequest.td
   Adding test:
com/sun/jini/test/spec/servicediscovery/discovery/Permission.td
   Adding test:
com/sun/jini/test/spec/servicediscovery/event/AddAttrServiceChanged.td
   Adding test:
com/sun/jini/test/spec/servicediscovery/event/ModifyAttrServiceChanged.td
   Adding test:
com/sun/jini/test/spec/servicediscovery/event/SetAttrServiceChanged.td
   Adding test: com/sun/jini/test/spec/servicediscovery/lookup/Lookup.td
   Adding test:
com/sun/jini/test/spec/servicediscovery/lookup/LookupFilter.td
   Adding test: com/sun/jini/test/spec/servicediscovery/lookup/LookupMax.td
   Adding test:
com/sun/jini/test/spec/servicediscovery/lookup/LookupMaxFilter.td
   Adding test:
com/sun/jini/test/spec/servicediscovery/lookup/LookupMinEqualsMax.td
   Adding test:
com/sun/jini/test/spec/servicediscovery/lookup/LookupMinEqualsMaxFilter.td
   Adding test:
com/sun/jini/test/spec/servicediscovery/lookup/LookupMinLessMax.td
   Adding test:
com/sun/jini/test/spec/servicediscovery/lookup/LookupMinMaxNoBlock.td
   Adding test:
com/sun/jini/test/spec/servicediscovery/lookup/LookupMinMaxNoBlockFilter.td
   Adding test: com/sun/jini/test/spec/servicediscovery/lookup/LookupWait.td
   Adding test:
com/sun/jini/test/spec/servicediscovery/lookup/LookupWaitFilter.td
   Adding test:
com/sun/jini/test/spec/servicediscovery/lookup/LookupWaitNoBlock.td
   Adding test: com/sun/jini/test/spec/renewalservice/AddRemoveTest.td
   Adding test: com/sun/jini/test/spec/renewalservice/AssocExpWarnSetTest.td
   Adding test:
com/sun/jini/test/spec/renewalservice/AssocRenewalFailSetTest.td
   Adding test:
com/sun/jini/test/spec/renewalservice/ClearEventRegistrationTest.td
   Adding test:
com/sun/jini/test/spec/renewalservice/ClearFailureListenerTest.td
   Adding test:
com/sun/jini/test/spec/renewalservice/ClearWarningListenerTest.td
   Adding test:
com/sun/jini/test/spec/renewalservice/DurationExpirationTest.td
   Adding test: com/sun/jini/test/spec/renewalservice/EqualsTest.td
   Adding test: com/sun/jini/test/spec/renewalservice/EventIDFailTest.td
   Adding test: com/sun/jini/test/spec/renewalservice/EventIDWarnTest.td
   Adding test:
com/sun/jini/test/spec/renewalservice/EventLeaseIndefiniteTest.td
   Adding test: com/sun/jini/test/spec/renewalservice/EventLeaseTest.td
   Adding test:
com/sun/jini/test/spec/renewalservice/EventRegistrationTest.td
   Adding test:
com/sun/jini/test/spec/renewalservice/EventSequenceFailTest.td
   Adding test: com/sun/jini/test/spec/renewalservice/EventSequenceTest.td
   Adding test:
com/sun/jini/test/spec/renewalservice/EventSequenceWarnTest.td
   Adding test:
com/sun/jini/test/spec/renewalservice/ExpirationListenerTest.td
   Adding test: com/sun/jini/test/spec/renewalservice/ExpireRemoveTest.td
   Adding test: com/sun/jini/test/spec/renewalservice/ExpireSetCancelTest.td
   Adding test: com/sun/jini/test/spec/renewalservice/ExpireSetSleepTest.td
   Adding test: com/sun/jini/test/spec/renewalservice/GetLeaseTest.td
   Adding test: com/sun/jini/test/spec/renewalservice/GetLeasesTest.td
   Adding test: com/sun/jini/test/spec/renewalservice/IllegalLeaseTest.td
   Adding test:
com/sun/jini/test/spec/renewalservice/IndefiniteRenewalTest.td
   Adding test: com/sun/jini/test/spec/renewalservice/LeaseDurationTest.td
   Adding test: com/sun/jini/test/spec/renewalservice/LeaseExpirationTest.td
   Adding test: com/sun/jini/test/spec/renewalservice/LeaseNotInSetTest.td
   Adding test: com/sun/jini/test/spec/renewalservice/LeaseRenewalTest.td
   Adding test:
com/sun/jini/test/spec/renewalservice/LeaseUnmarshalExceptionTest.td
   Adding test:
com/sun/jini/test/spec/renewalservice/LeaseUnmarshalNoneTest.td
   Adding test: com/sun/jini/test/spec/renewalservice/MaxMembershipTest.td
   Adding test:
com/sun/jini/test/spec/renewalservice/MembershipDurationTest.td
   Adding test:
com/sun/jini/test/spec/renewalservice/NewListenerEventTest.td
   Adding test:
com/sun/jini/test/spec/renewalservice/NormalEventReturnTest.td
   Adding test: com/sun/jini/test/spec/renewalservice/ReAddLeaseTest.td
   Adding test: com/sun/jini/test/spec/renewalservice/RemovalTest.td
   Adding test: com/sun/jini/test/spec/renewalservice/RemoveCancelTest.td
   Adding test: com/sun/jini/test/spec/renewalservice/RenewAtIntervalTest.td
   Adding test:
com/sun/jini/test/spec/renewalservice/RenewalFailureEventIndefiniteTest.td
   Adding test:
com/sun/jini/test/spec/renewalservice/RenewalFailureEventTest.td
   Adding test:
com/sun/jini/test/spec/renewalservice/RenewalFailureIndefiniteTest.td
   Adding test:
com/sun/jini/test/spec/renewalservice/RenewalFailureListenerTest.td
   Adding test: com/sun/jini/test/spec/renewalservice/RenewalTimeTest.td
   Adding test: com/sun/jini/test/spec/renewalservice/SetEqualsTest.td
   Adding test:
com/sun/jini/test/spec/renewalservice/ValidLeaseDurationTest.td
   Adding test:
com/sun/jini/test/spec/constraint/coreconstraint/ConnectionTimeConstructorsTest.td
   Adding test:
com/sun/jini/test/spec/constraint/coreconstraint/DelegationTimeConstructorsTest.td
   Adding test:
com/sun/jini/test/spec/constraint/coreconstraint/GetTimeTest.td
   Adding test:
com/sun/jini/test/spec/constraint/coreconstraint/MakeAbsoluteRelativeTimeTest.td
   Adding test:
com/sun/jini/test/spec/constraint/coreconstraint/PrincipalConstructorsTest.td
   Adding test:
com/sun/jini/test/spec/constraint/coreconstraint/PrincipalTypeConstructorsTest.td
   Adding test:
com/sun/jini/test/spec/constraint/coreconstraint/constraintalternatives/ConstructorsTest.td
   Adding test:
com/sun/jini/test/spec/constraint/coreconstraint/constraintalternatives/CreateTest.td
   Adding test:
com/sun/jini/test/spec/constraint/coreconstraint/invocationconstraints/ConflictTest.td
   Adding test:
com/sun/jini/test/spec/constraint/coreconstraint/invocationconstraints/ConstructorsTest.td
   Adding test:
com/sun/jini/test/spec/constraint/coreconstraint/invocationconstraints/MakeAbsoluteTest.td
   Adding test:
com/sun/jini/test/impl/servicediscovery/TerminateSemantics.td
   Adding test:
com/sun/jini/test/impl/servicediscovery/cache/CacheTerminateSemantics.td
   Adding test: com/sun/jini/test/impl/outrigger/api/AbstractEntryTest.td
   Adding test: com/sun/jini/test/impl/mahalo/AdminIFShutdownTest.td
   Adding test: com/sun/jini/test/impl/mahalo/AdminIFTest.td
   Adding test: com/sun/jini/test/impl/mahalo/LeaseExpireCancelTest.td
   Adding test: com/sun/jini/test/impl/mahalo/LeaseExpireRenewTest.td
   Adding test: com/sun/jini/test/impl/mahalo/LeaseMapTest.td
   Adding test: com/sun/jini/test/impl/mahalo/LeaseTest.td
   Adding test: com/sun/jini/test/impl/mahalo/MahaloCreateShutdownTest.td
   Adding test: com/sun/jini/test/impl/mahalo/MahaloIFTest.td
   Adding test: com/sun/jini/test/impl/mahalo/MahaloImplReadyStateTest.td
   Adding test:
com/sun/jini/test/impl/mahalo/NestableServerTransactionCreatedToStringTest.td
   Adding test:
com/sun/jini/test/impl/mahalo/NestableTransactionCreatedToStringTest.td
   Adding test:
com/sun/jini/test/impl/mahalo/PrepareAndCommitExceptionTest.td
   Adding test:
com/sun/jini/test/impl/mahalo/PrepareAndCommitExceptionTest2.td
   Adding test:
com/sun/jini/test/impl/mahalo/PrepareAndCommitExceptionTest3.td
   Adding test:
com/sun/jini/test/impl/mahalo/PrepareAndCommitExceptionTest4.td
   Adding test:
com/sun/jini/test/impl/mahalo/PrepareAndCommitExceptionTest5.td
   Adding test: com/sun/jini/test/impl/mahalo/RandomStressTest.td
   Adding test:
com/sun/jini/test/impl/mahalo/ServerTransactionEqualityTest.td
   Adding test:
com/sun/jini/test/impl/mahalo/ServerTransactionToStringTest.td
   Adding test:
com/sun/jini/test/impl/mahalo/TransactionCreatedToStringTest.td
   Adding test:
com/sun/jini/test/impl/mahalo/TransactionManagerCreatedToStringTest.td
   Adding test:
com/sun/jini/test/impl/mahalo/TxnMgrImplNullActivationConfigEntries.td
   Adding test: com/sun/jini/test/impl/mahalo/TxnMgrImplNullConfigEntries.td
   Adding test:
com/sun/jini/test/impl/mahalo/TxnMgrImplNullRecoveredLocators.td
   Adding test: com/sun/jini/test/impl/mahalo/TxnMgrProxyEqualityTest.td
   Adding test: com/sun/jini/test/spec/id/referentuuids/CompareMethodTest.td
   Adding test: com/sun/jini/test/spec/id/uuid/ConstructorAccessorTest.td
   Adding test: com/sun/jini/test/spec/id/uuid/ObjectMethodsTest.td
   Adding test: com/sun/jini/test/spec/id/uuid/WriteTest.td
   Adding test: com/sun/jini/test/spec/id/uuidfactory/CreateGenerateTest.td
   Adding test: com/sun/jini/test/spec/id/uuidfactory/ReadTest.td
   Adding test:
com/sun/jini/test/spec/io/marshalinputstream/ConstructorAccessorTest.td
   Adding test:
com/sun/jini/test/spec/io/marshalinputstream/LoadClass_ExceptionTest.td
   Adding test:
com/sun/jini/test/spec/io/marshalinputstream/LoadClass_NullArgsTest.td
   Adding test:
com/sun/jini/test/spec/io/marshalinputstream/LoadClass_VerifyCodebaseIntegrityTest.td
   Adding test:
com/sun/jini/test/spec/io/marshalinputstream/Resolve_LoadClassExceptionTest.td
   Adding test:
com/sun/jini/test/spec/io/marshalinputstream/Resolve_LoadClassTest.td
   Adding test:
com/sun/jini/test/spec/io/marshalinputstream/Resolve_NullArgsTest.td
   Adding test:
com/sun/jini/test/spec/io/marshalinputstream/Resolve_ReadAnnotationExceptionTest.td
   Adding test:
com/sun/jini/test/spec/io/marshalinputstream/Resolve_VerifyCodebaseIntegrityTest.td
   Adding test:
com/sun/jini/test/spec/io/marshalledinstance/ConstructorTest.td
   Adding test:
com/sun/jini/test/spec/io/marshalledinstance/ConvertToMarshalledObjectTest.td
   Adding test:
com/sun/jini/test/spec/io/marshalledinstance/Get_ExceptionTest.td
   Adding test:
com/sun/jini/test/spec/io/marshalledinstance/Get_NormalTest.td
   Adding test:
com/sun/jini/test/spec/io/marshalledinstance/ObjectMethodsTest.td
   Adding test:
com/sun/jini/test/spec/io/marshaloutputstream/ConstructorAccessorTest.td
   Adding test: com/sun/jini/test/spec/lookupservice/ToStringTest.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set00/EvntLeaseExpiration.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set00/LookupByClass.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set00/LookupByIntfc.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set00/LookupBySrvcID.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set00/LookupBySuper.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set00/MultipleEvntLeaseRenewals.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set00/MultipleSrvcLeaseRenewals.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set00/NotifyOnAttrAdd.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set00/NotifyOnAttrDel.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set00/NotifyOnAttrMod.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set00/NotifyOnSrvcLeaseExpiration.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set00/SrvcLeaseExpiration.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set01/EmptyLookup.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set01/GetEntryClassesAttrNull.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set01/GetEntryClassesAttrVals.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set01/GetEntryClassesEmpty.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set01/GetEntryClassesTypeAttr.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set01/GetFieldValuesAttr.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set01/GetFieldValuesAttrNull.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set01/GetServiceTypesAttr.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set01/GetServiceTypesClass.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set01/GetServiceTypesEmpty.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set01/IdempotentNewSrvcReg.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set01/IdempotentOldSrvcReg.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set01/NotifyOnComboAttrAddNonNull.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set01/NotifyOnComboAttrAddNull.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set01/NotifyOnComboAttrDelNonNull.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set01/NotifyOnComboAttrDelNull.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set01/NotifyOnComboAttrModNonNull.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set01/NotifyOnComboAttrModNull.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set01/NotifyOnComboSrvcLeaseExp.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set01/NotifyOnComboSrvcReg.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set01/NotifyOnEntryAttrAddNonNull.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set01/NotifyOnEntryAttrAddNull.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set01/NotifyOnEntrySrvcReg.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set01/ReRegOldSrvcs.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set01/ReturnOnLookupByAttr.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set01/ReturnOnLookupByType.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set01/ReturnOnLookupByTypeAttr.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set02/ExpiredAddAttributes.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set02/ExpiredEventLeaseCancel.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set02/ExpiredEventLeaseRenew.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set02/ExpiredLeaseMapCancel.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set02/ExpiredLeaseMapRenew.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set02/ExpiredModifyAttributes.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set02/ExpiredServiceLeaseCancel.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set02/ExpiredServiceLeaseRenew.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set02/ExpiredSetAttributes.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set02/GetEntryClassesNoMatch.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set02/GetEntryClassesNullTemplate.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set02/GetFieldValuesBadField.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set02/GetFieldValuesBadIndex.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set02/GetFieldValuesNoMatch.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set02/GetFieldValuesNullTemplate.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set02/GetServiceTypesNoMatch.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set02/GetServiceTypesNullTemplate.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set02/LeaseMapCancel.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set02/LeaseMapRenew.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set02/LeaseMapRenewNegDuration.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set02/Lookup2NullTemplate.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set02/LookupNegMatches.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set02/LookupNoMatch.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set02/LookupNullTemplate.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set02/ModifyAttributesBadClass.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set02/ModifyAttributesBadLength.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set02/NotifyBadTransition.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set02/NotifyNegDuration.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set02/NotifyNoTransition.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set02/NotifyNullListener.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set02/NotifyNullTemplate.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set02/NotifyOnAttrSet.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set02/NotifyOnComboAttrSet.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set02/RegisterInvalidServiceID.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set02/RegisterNegDuration.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set02/RegisterNullService.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set02/RegisterNullServiceItem.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set03/SimpleAddLookupAttributes.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set03/SimpleAddLookupGroups.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set03/SimpleAddLookupLocators.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set03/SimpleAddMemberGroups.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set03/SimpleModifyLookupAttributes.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set03/SimpleRemoveLookupGroups.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set03/SimpleRemoveLookupLocators.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set03/SimpleRemoveMemberGroups.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set03/SimpleSetLookupGroups.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set03/SimpleSetLookupLocators.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set03/SimpleSetMemberGroups.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set03/SimpleUnicastPort.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set04/ModifyAttributesOverlap.td
   Adding test:
com/sun/jini/test/spec/lookupservice/test_set04/ModifyAttributesSwap.td
   Adding test:
com/sun/jini/test/impl/thread/TaskManagerTaskExceptionTest.td
   Adding test:
com/sun/jini/test/impl/thread/WakeupManagerTaskExceptionTest.td
   Adding test:
com/sun/jini/test/spec/config/abstractconfiguration/Constructor_Test.td
   Adding test:
com/sun/jini/test/spec/config/abstractconfiguration/GetEntry_Test.td
   Adding test:
com/sun/jini/test/spec/config/abstractconfiguration/ValidIdentifier_Test.td
   Adding test:
com/sun/jini/test/spec/config/abstractconfiguration/ValidQualifiedIdentifier_Test.td
   Adding test:
com/sun/jini/test/spec/config/abstractconfiguration/primitive/Constructor_Test.td
   Adding test:
com/sun/jini/test/spec/config/abstractconfiguration/primitive/Methods_Test.td
   Adding test:
com/sun/jini/test/spec/config/configurationexception/Constructor_Test.td
   Adding test:
com/sun/jini/test/spec/config/configurationexception/ToString_Test.td
   Adding test:
com/sun/jini/test/spec/config/configurationfile/Constructor_Test.td
   Adding test:
com/sun/jini/test/spec/config/configurationfile/GetEntryInternal_Test.td
   Adding test:
com/sun/jini/test/spec/config/configurationfile/GetEntryNames_Test.td
   Adding test:
com/sun/jini/test/spec/config/configurationfile/GetEntryType_Test.td
   Adding test:
com/sun/jini/test/spec/config/configurationfile/GetSpecialEntryType_Test.td
   Adding test:
com/sun/jini/test/spec/config/configurationfile/GetSpecialEntry_Test.td
   Adding test:
com/sun/jini/test/spec/config/configurationfile/Subclass_Test.td
   Adding test:
com/sun/jini/test/spec/config/configurationfile/Syntax_Test.td
   Adding test:
com/sun/jini/test/spec/config/configurationfile/ToString_Test.td
   Adding test:
com/sun/jini/test/spec/config/configurationnotfoundexception/Constructor_Test.td
   Adding test:
com/sun/jini/test/spec/config/configurationprovider/GetInstance_ClassLoaderDenyTest.td
   Adding test:
com/sun/jini/test/spec/config/configurationprovider/GetInstance_ClassLoaderTest.td
   Adding test:
com/sun/jini/test/spec/config/configurationprovider/GetInstance_Test.td
   Adding test:
com/sun/jini/test/spec/config/emptyconfiguration/GetEntryInternal_Test.td
   Adding test:
com/sun/jini/test/spec/config/nosuchentryexception/Constructor_Test.td
   Adding test:
com/sun/jini/test/spec/locatordiscovery/AddDiscoveryListenerNull.td
   Adding test: com/sun/jini/test/spec/locatordiscovery/AddLocators.td
   Adding test: com/sun/jini/test/spec/locatordiscovery/AddLocatorsDups.td
   Adding test: com/sun/jini/test/spec/locatordiscovery/AddLocatorsEmpty.td
   Adding test: com/sun/jini/test/spec/locatordiscovery/AddLocatorsNull.td
   Adding test:
com/sun/jini/test/spec/locatordiscovery/AddLocatorsNullElement.td
   Adding test:
com/sun/jini/test/spec/locatordiscovery/AddNewDiscoveryChangeListener.td
   Adding test:
com/sun/jini/test/spec/locatordiscovery/AddNewDiscoveryListener.td
   Adding test: com/sun/jini/test/spec/locatordiscovery/ConstructorDups.td
   Adding test:
com/sun/jini/test/spec/locatordiscovery/ConstructorNullElement.td
   Adding test: com/sun/jini/test/spec/locatordiscovery/DiscardDNE.td
   Adding test: com/sun/jini/test/spec/locatordiscovery/DiscardNull.td
   Adding test:
com/sun/jini/test/spec/locatordiscovery/DiscardUnreachable.td
   Adding test: com/sun/jini/test/spec/locatordiscovery/Discovered.td
   Adding test: com/sun/jini/test/spec/locatordiscovery/DiscoveredDelay.td
   Adding test: com/sun/jini/test/spec/locatordiscovery/DiscoveredStagger.td
   Adding test:
com/sun/jini/test/spec/locatordiscovery/DiscoveryBeginsOnAddLocsAfterEmpty.td
   Adding test:
com/sun/jini/test/spec/locatordiscovery/DiscoveryBeginsOnAddLocsAfterNull.td
   Adding test:
com/sun/jini/test/spec/locatordiscovery/DiscoveryBeginsOnSetLocsAfterEmpty.td
   Adding test:
com/sun/jini/test/spec/locatordiscovery/DiscoveryBeginsOnSetLocsAfterNull.td
   Adding test:
com/sun/jini/test/spec/locatordiscovery/DiscoveryEndsOnTerminate.td
   Adding test: com/sun/jini/test/spec/locatordiscovery/Equality.td
   Adding test:
com/sun/jini/test/spec/locatordiscovery/GetDiscoveredLocators.td
   Adding test:
com/sun/jini/test/spec/locatordiscovery/GetDiscoveredLocatorsEmpty.td
   Adding test:
com/sun/jini/test/spec/locatordiscovery/GetDiscoveredLocatorsNew.td
   Adding test: com/sun/jini/test/spec/locatordiscovery/GetLocators.td
   Adding test: com/sun/jini/test/spec/locatordiscovery/GetLocatorsEmpty.td
   Adding test: com/sun/jini/test/spec/locatordiscovery/GetLocatorsNew.td
   Adding test: com/sun/jini/test/spec/locatordiscovery/GetRegistrars.td
   Adding test: com/sun/jini/test/spec/locatordiscovery/GetRegistrarsNew.td
   Adding test:
com/sun/jini/test/spec/locatordiscovery/GetUndiscoveredLocators.td
   Adding test:
com/sun/jini/test/spec/locatordiscovery/GetUndiscoveredLocatorsEmpty.td
   Adding test:
com/sun/jini/test/spec/locatordiscovery/GetUndiscoveredLocatorsNew.td
   Adding test:
com/sun/jini/test/spec/locatordiscovery/RemoveDiscoveryListener.td
   Adding test:
com/sun/jini/test/spec/locatordiscovery/RemoveDiscoveryListenerDNE.td
   Adding test: com/sun/jini/test/spec/locatordiscovery/RemoveLocatorsAll.td
   Adding test:
com/sun/jini/test/spec/locatordiscovery/RemoveLocatorsDups.td
   Adding test:
com/sun/jini/test/spec/locatordiscovery/RemoveLocatorsEmpty.td
   Adding test:
com/sun/jini/test/spec/locatordiscovery/RemoveLocatorsNull.td
   Adding test:
com/sun/jini/test/spec/locatordiscovery/RemoveLocatorsNullElement.td
   Adding test:
com/sun/jini/test/spec/locatordiscovery/RemoveLocatorsSome.td
   Adding test: com/sun/jini/test/spec/locatordiscovery/SetLocatorsDups.td
   Adding test: com/sun/jini/test/spec/locatordiscovery/SetLocatorsEmpty.td
   Adding test: com/sun/jini/test/spec/locatordiscovery/SetLocatorsNull.td
   Adding test:
com/sun/jini/test/spec/locatordiscovery/SetLocatorsNullElement.td
   Adding test:
com/sun/jini/test/spec/locatordiscovery/SetLocatorsReplaceAll.td
   Adding test:
com/sun/jini/test/spec/locatordiscovery/SetLocatorsReplaceSome.td
   Adding test: com/sun/jini/test/impl/outrigger/admin/DestroyTestMahalo.td
   Adding test:
com/sun/jini/test/impl/outrigger/admin/DestroyTestOutrigger.td
   Adding test:
com/sun/jini/test/impl/outrigger/admin/IdenticalAdminIteratorTest.td
   Adding test:
com/sun/jini/test/impl/outrigger/admin/IdenticalAdminIteratorTestShutdown.td
   Adding test:
com/sun/jini/test/impl/outrigger/admin/LookupAttributeAdminTestOutrigger.td
   Adding test:
com/sun/jini/test/impl/outrigger/admin/LookupAttributeAdminTestTxnMgr.td
   Adding test:
com/sun/jini/test/impl/outrigger/admin/LookupGroupAdminTestOutrigger.td
   Adding test:
com/sun/jini/test/impl/outrigger/admin/LookupGroupAdminTestTxnMgr.td
   Adding test:
com/sun/jini/test/impl/outrigger/admin/LookupLocatorAdminTestOutrigger.td
   Adding test:
com/sun/jini/test/impl/outrigger/admin/LookupLocatorAdminTestTxnMgr.td
   Adding test: com/sun/jini/test/impl/outrigger/admin/SimpleAdminTest.td
   Adding test: com/sun/jini/test/spec/eventmailbox/EMSCET.td
   Adding test: com/sun/jini/test/spec/eventmailbox/EMSCET_PULL.td
   Adding test: com/sun/jini/test/spec/eventmailbox/EMSCT.td
   Adding test: com/sun/jini/test/spec/eventmailbox/EMSCT_PULL.td
   Adding test: com/sun/jini/test/spec/eventmailbox/EMSFT.td
   Adding test: com/sun/jini/test/spec/eventmailbox/EMSFT_PULL.td
   Adding test: com/sun/jini/test/spec/eventmailbox/EMSFT_PULL2.td
   Adding test: com/sun/jini/test/spec/eventmailbox/EMSIFT.td
   Adding test: com/sun/jini/test/spec/eventmailbox/EMSIFT_PULL.td
   Adding test: com/sun/jini/test/spec/eventmailbox/EMSIFT_PULL2.td
   Adding test: com/sun/jini/test/spec/eventmailbox/EMSLCT.td
   Adding test: com/sun/jini/test/spec/eventmailbox/EMSLCT_PULL.td
   Adding test: com/sun/jini/test/spec/eventmailbox/EMSLCT_PULL2.td
   Adding test: com/sun/jini/test/spec/eventmailbox/EMSLET.td
   Adding test: com/sun/jini/test/spec/eventmailbox/EMSLET_PULL.td
   Adding test: com/sun/jini/test/spec/eventmailbox/EMSLST.td
   Adding test: com/sun/jini/test/spec/eventmailbox/EMSLST2.td
   Adding test: com/sun/jini/test/spec/eventmailbox/EMSLST2_PULL.td
   Adding test: com/sun/jini/test/spec/eventmailbox/EMSLST3.td
   Adding test: com/sun/jini/test/spec/eventmailbox/EMSLST3_PULL.td
   Adding test: com/sun/jini/test/spec/eventmailbox/EMSLST4.td
   Adding test: com/sun/jini/test/spec/eventmailbox/EMSLST4_PULL.td
   Adding test: com/sun/jini/test/spec/eventmailbox/EMSLST_PULL.td
   Adding test: com/sun/jini/test/spec/eventmailbox/EMSNSOT.td
   Adding test: com/sun/jini/test/spec/eventmailbox/EMSNSOT_PULL.td
   Adding test: com/sun/jini/test/spec/eventmailbox/EMSRET.td
   Adding test: com/sun/jini/test/spec/eventmailbox/EMSRET_PULL.td
   Adding test: com/sun/jini/test/spec/eventmailbox/EMSRIFT.td
   Adding test: com/sun/jini/test/spec/eventmailbox/EMSRIFT2.td
   Adding test: com/sun/jini/test/spec/eventmailbox/EMSRIFT2_PULL.td
   Adding test: com/sun/jini/test/spec/eventmailbox/EMSRIFT_PULL.td
   Adding test: com/sun/jini/test/spec/eventmailbox/EMSRIFT_PULL2.td
   Adding test: com/sun/jini/test/spec/eventmailbox/EMSRIFT_PULL3.td
   Adding test: com/sun/jini/test/spec/eventmailbox/EMSST.td
   Adding test: com/sun/jini/test/spec/eventmailbox/EMSST2.td
   Adding test: com/sun/jini/test/spec/eventmailbox/EMSST2_PULL.td
   Adding test: com/sun/jini/test/spec/eventmailbox/EMSST2_PULL2.td
   Adding test: com/sun/jini/test/spec/eventmailbox/EMSST3.td
   Adding test: com/sun/jini/test/spec/eventmailbox/EMSST3_PULL.td
   Adding test: com/sun/jini/test/spec/eventmailbox/EMSST3_PULL2.td
   Adding test: com/sun/jini/test/spec/eventmailbox/EMSST_PULL.td
   Adding test: com/sun/jini/test/spec/eventmailbox/EMSST_PULL2.td
   Adding test:
com/sun/jini/test/spec/servicediscovery/lookup/LookupMinLessMaxFilter.td
   Adding test:
com/sun/jini/test/impl/lookupdiscovery/AddDiscoveryListenerAfterTerminate.td
   Adding test:
com/sun/jini/test/impl/lookupdiscovery/AddGroupsAfterTerminate.td
   Adding test:
com/sun/jini/test/impl/lookupdiscovery/DiscardAfterTerminate.td
   Adding test:
com/sun/jini/test/impl/lookupdiscovery/GetGroupsAfterTerminate.td
   Adding test:
com/sun/jini/test/impl/lookupdiscovery/GetRegistrarsAfterTerminate.td
   Adding test:
com/sun/jini/test/impl/lookupdiscovery/MulticastRequestDelay.td
   Adding test:
com/sun/jini/test/impl/lookupdiscovery/RemoveDiscoveryListenerAfterTerminate.td
   Adding test:
com/sun/jini/test/impl/lookupdiscovery/RemoveGroupsAfterTerminate.td
   Adding test:
com/sun/jini/test/impl/lookupdiscovery/RestoreContextForTasks.td
   Adding test:
com/sun/jini/test/impl/lookupdiscovery/SetGroupsAfterTerminate.td
   Adding test: com/sun/jini/test/impl/lookupdiscovery/UnicastDelay.td
   Adding test: com/sun/jini/test/spec/lookupdiscovery/AddGroups.td
   Adding test: com/sun/jini/test/spec/lookupdiscovery/AddGroupsAllGroups.td
   Adding test: com/sun/jini/test/spec/lookupdiscovery/AddGroupsDups.td
   Adding test: com/sun/jini/test/spec/lookupdiscovery/AddGroupsNoGroups.td
   Adding test:
com/sun/jini/test/spec/lookupdiscovery/AddGroupsNullElement.td
   Adding test:
com/sun/jini/test/spec/lookupdiscovery/AddGroupsUnsupportedOperation.td
   Adding test:
com/sun/jini/test/spec/lookupdiscovery/AddNewDiscoveryChangeListener.td
   Adding test:
com/sun/jini/test/spec/lookupdiscovery/AddNewDiscoveryListener.td
   Adding test: com/sun/jini/test/spec/lookupdiscovery/ConstructorDups.td
   Adding test:
com/sun/jini/test/spec/lookupdiscovery/ConstructorNullElement.td
   Adding test: com/sun/jini/test/spec/lookupdiscovery/DiscardUnreachable.td
   Adding test: com/sun/jini/test/spec/lookupdiscovery/Discovered.td
   Adding test: com/sun/jini/test/spec/lookupdiscovery/DiscoveredDelay.td
   Adding test: com/sun/jini/test/spec/lookupdiscovery/DiscoveredStagger.td
   Adding test:
com/sun/jini/test/spec/lookupdiscovery/DiscoveryBeginsOnAddGroupsAfterEmpty.td
   Adding test:
com/sun/jini/test/spec/lookupdiscovery/DiscoveryBeginsOnSetGroupsAfterEmpty.td
   Adding test:
com/sun/jini/test/spec/lookupdiscovery/DiscoveryEndsOnTerminate.td
   Adding test: com/sun/jini/test/spec/lookupdiscovery/Equality.td
   Adding test: com/sun/jini/test/spec/lookupdiscovery/GetGroups.td
   Adding test: com/sun/jini/test/spec/lookupdiscovery/GetGroupsAllGroups.td
   Adding test: com/sun/jini/test/spec/lookupdiscovery/GetGroupsNew.td
   Adding test: com/sun/jini/test/spec/lookupdiscovery/GetGroupsNoGroups.td
   Adding test: com/sun/jini/test/spec/lookupdiscovery/GetRegistrars.td
   Adding test: com/sun/jini/test/spec/lookupdiscovery/GetRegistrarsNew.td
   Adding test:
com/sun/jini/test/spec/lookupdiscovery/MulticastMonitorChange.td
   Adding test:
com/sun/jini/test/spec/lookupdiscovery/MulticastMonitorReplace.td
   Adding test:
com/sun/jini/test/spec/lookupdiscovery/MulticastMonitorReplaceNone.td
   Adding test:
com/sun/jini/test/spec/lookupdiscovery/MulticastMonitorStop.td
   Adding test:
com/sun/jini/test/spec/lookupdiscovery/MulticastMonitorStopReplace.td
   Adding test:
com/sun/jini/test/spec/lookupdiscovery/MulticastMonitorTerminate.td
   Adding test:
com/sun/jini/test/spec/lookupdiscovery/RemoveDiscoveryListener.td
   Adding test:
com/sun/jini/test/spec/lookupdiscovery/RemoveGroupsAllGroups.td
   Adding test: com/sun/jini/test/spec/lookupdiscovery/RemoveGroupsDups.td
   Adding test:
com/sun/jini/test/spec/lookupdiscovery/RemoveGroupsNoGroups.td
   Adding test:
com/sun/jini/test/spec/lookupdiscovery/RemoveGroupsNullElement.td
   Adding test:
com/sun/jini/test/spec/lookupdiscovery/RemoveGroupsRemoveAll.td
   Adding test:
com/sun/jini/test/spec/lookupdiscovery/RemoveGroupsRemoveNone.td
   Adding test:
com/sun/jini/test/spec/lookupdiscovery/RemoveGroupsRemoveSome.td
   Adding test:
com/sun/jini/test/spec/lookupdiscovery/RemoveGroupsUnsupportedOperation.td
   Adding test: com/sun/jini/test/spec/lookupdiscovery/SetGroupsDups.td
   Adding test: com/sun/jini/test/spec/lookupdiscovery/SetGroupsNoGroups.td
   Adding test:
com/sun/jini/test/spec/lookupdiscovery/SetGroupsNullElement.td
   Adding test:
com/sun/jini/test/spec/lookupdiscovery/SetGroupsReplaceAll.td
   Adding test:
com/sun/jini/test/spec/lookupdiscovery/SetGroupsReplaceSome.td
   Adding test:
com/sun/jini/test/spec/url/file/integrity/ProvidesIntegrity.td
   Adding test: com/sun/jini/test/spec/url/httpmd/handler/Equals.td
   Adding test: com/sun/jini/test/spec/url/httpmd/handler/GetDefaultPort.td
   Adding test: com/sun/jini/test/spec/url/httpmd/handler/HashCode.td
   Adding test:
com/sun/jini/test/spec/url/httpmd/handler/OpenConnectionNonExistFile.td
   Adding test:
com/sun/jini/test/spec/url/httpmd/handler/OpenConnectionValidURL.td
   Adding test: com/sun/jini/test/spec/url/httpmd/handler/ParseURL.td
   Adding test: com/sun/jini/test/spec/url/httpmd/handler/SameFile.td
   Adding test:
com/sun/jini/test/spec/url/httpmd/httpmdutil/ComputeDigest.td
   Adding test:
com/sun/jini/test/spec/url/httpmd/httpmdutil/ComputeDigest2Urls.td
   Adding test:
com/sun/jini/test/spec/url/httpmd/httpmdutil/ComputeDigestCodebase.td
   Adding test:
com/sun/jini/test/spec/url/httpmd/integrity/ProvidesIntegrity.td
   Adding test: com/sun/jini/test/spec/url/httpmd/wrongmdexc/Constructor.td
   Adding test:
com/sun/jini/test/spec/url/httpmd/wrongmdexc/WrongMDException.td
   Adding test:
com/sun/jini/test/spec/url/httpmd/wrongmdexc/WrongMDExceptionHandler.td
   Adding test:
com/sun/jini/test/spec/url/https/integrity/ProvidesIntegrity.td
   Adding test: com/sun/jini/test/impl/mercury/AdminIFShutdownTest.td
   Adding test: com/sun/jini/test/impl/mercury/AdminIFTest.td
   Adding test: com/sun/jini/test/impl/mercury/BadEventCodebaseTest.td
   Adding test: com/sun/jini/test/impl/mercury/ExpiredRegRecovery.td
   Adding test: com/sun/jini/test/impl/mercury/InterOpTest.td
   Adding test: com/sun/jini/test/impl/mercury/LeaseExpireCancelTest.td
   Adding test: com/sun/jini/test/impl/mercury/LeaseExpireRenewTest.td
   Adding test: com/sun/jini/test/impl/mercury/LeaseMapTest.td
   Adding test: com/sun/jini/test/impl/mercury/LeaseTest.td
   Adding test: com/sun/jini/test/impl/mercury/ListenerRecoveryTest.td
   Adding test:
com/sun/jini/test/impl/mercury/MailboxImplBadUnexportConfigEntries.td
   Adding test:
com/sun/jini/test/impl/mercury/MailboxImplNullActivationConfigEntries.td
   Adding test:
com/sun/jini/test/impl/mercury/MailboxImplNullConfigEntries.td
   Adding test: com/sun/jini/test/impl/mercury/MailboxImplReadyStateTest.td
   Adding test: com/sun/jini/test/impl/mercury/MercuryProxyEqualityTest.td
   Adding test: com/sun/jini/test/impl/mercury/PullAdminIFShutdownTest.td
   Adding test: com/sun/jini/test/impl/mercury/PullAdminIFTest.td
   Adding test: com/sun/jini/test/impl/mercury/PullExpiredRegRecovery.td
   Adding test: com/sun/jini/test/impl/mercury/PullInterOpTest.td
   Adding test: com/sun/jini/test/impl/mercury/PullLeaseExpireCancelTest.td
   Adding test: com/sun/jini/test/impl/mercury/PullLeaseExpireRenewTest.td
   Adding test: com/sun/jini/test/impl/mercury/PullLeaseMapTest.td
   Adding test: com/sun/jini/test/impl/mercury/PullLeaseTest.td
   Adding test: com/sun/jini/test/impl/mercury/PullListenerRecoveryTest.td
   Adding test:
com/sun/jini/test/impl/mercury/PullMercuryProxyEqualityTest.td
   Adding test:
com/sun/jini/test/impl/mercury/PullRegCancelExpireShutdownTest.td
   Adding test: com/sun/jini/test/impl/mercury/PullRegCancelShutdownTest.td
   Adding test: com/sun/jini/test/impl/mercury/PullRegCreateShutdownTest.td
   Adding test: com/sun/jini/test/impl/mercury/PullRegDisableShutdownTest.td
   Adding test: com/sun/jini/test/impl/mercury/PullRegEnableShutdownTest.td
   Adding test:
com/sun/jini/test/impl/mercury/PullRegRenewExpireShutdownTest.td
   Adding test: com/sun/jini/test/impl/mercury/PullRegRenewShutdownTest.td
   Adding test: com/sun/jini/test/impl/mercury/PullRegistrationIFTest.td
   Adding test: com/sun/jini/test/impl/mercury/PullTimeoutTest.td
   Adding test: com/sun/jini/test/impl/mercury/PullTimeoutTest2.td
   Adding test: com/sun/jini/test/impl/mercury/PullTimeoutTest3.td
   Adding test: com/sun/jini/test/impl/mercury/PullTimeoutTest4.td
   Adding test: com/sun/jini/test/impl/mercury/PullTimeoutTest5.td
   Adding test: com/sun/jini/test/impl/mercury/PullTimeoutTest6.td
   Adding test: com/sun/jini/test/impl/mercury/PullTimeoutTest6A.td
   Adding test: com/sun/jini/test/impl/mercury/PullTimeoutTest6B.td
   Adding test:
com/sun/jini/test/impl/mercury/PullUnknownEventRecoveryShutdownTest.td
   Adding test:
com/sun/jini/test/impl/mercury/PullUnknownEventRecoveryTest.td
   Adding test: com/sun/jini/test/impl/mercury/PullUnknownEventsTest.td
   Adding test: com/sun/jini/test/impl/mercury/PullUnknownEventsTest2.td
   Adding test:
com/sun/jini/test/impl/mercury/PushPullListenerRecoveryTest.td
   Adding test:
com/sun/jini/test/impl/mercury/RegCancelExpireShutdownTest.td
   Adding test: com/sun/jini/test/impl/mercury/RegCancelShutdownTest.td
   Adding test: com/sun/jini/test/impl/mercury/RegCreateShutdownTest.td
   Adding test: com/sun/jini/test/impl/mercury/RegDisableShutdownTest.td
   Adding test: com/sun/jini/test/impl/mercury/RegEnableShutdownTest.td
   Adding test: com/sun/jini/test/impl/mercury/RegRenewExpireShutdownTest.td
   Adding test: com/sun/jini/test/impl/mercury/RegRenewShutdownTest.td
   Adding test: com/sun/jini/test/impl/mercury/RegistrationIFTest.td
   Adding test:
com/sun/jini/test/impl/mercury/UnknownEventRecoveryShutdownTest.td
   Adding test: com/sun/jini/test/impl/mercury/UnknownEventRecoveryTest.td
   Adding test:
com/sun/jini/test/spec/jrmp/jrmpexporter/Constructor_NullPointerExceptionTest.td
   Adding test:
com/sun/jini/test/spec/jrmp/jrmpexporter/Constructor_NullPointerExceptionTest1.td
   Adding test:
com/sun/jini/test/spec/jrmp/jrmpexporter/Export_ExportExceptionTest.td
   Adding test:
com/sun/jini/test/spec/jrmp/jrmpexporter/Export_ExportExceptionTest1.td
   Adding test:
com/sun/jini/test/spec/jrmp/jrmpexporter/Export_ExportExceptionTest2.td
   Adding test:
com/sun/jini/test/spec/jrmp/jrmpexporter/Export_ExportExceptionTest3.td
   Adding test:
com/sun/jini/test/spec/jrmp/jrmpexporter/Export_ExportExceptionTest4.td
   Adding test:
com/sun/jini/test/spec/jrmp/jrmpexporter/Export_IllegalStateExceptionTest.td
   Adding test:
com/sun/jini/test/spec/jrmp/jrmpexporter/Export_IllegalStateExceptionTest1.td
   Adding test:
com/sun/jini/test/spec/jrmp/jrmpexporter/Export_IllegalStateExceptionTest2.td
   Adding test:
com/sun/jini/test/spec/jrmp/jrmpexporter/Export_IllegalStateExceptionTest3.td
   Adding test:
com/sun/jini/test/spec/jrmp/jrmpexporter/Export_IllegalStateExceptionTest4.td
   Adding test:
com/sun/jini/test/spec/jrmp/jrmpexporter/Export_NullPointerExceptionTest.td
   Adding test:
com/sun/jini/test/spec/jrmp/jrmpexporter/Export_NullPointerExceptionTest1.td
   Adding test:
com/sun/jini/test/spec/jrmp/jrmpexporter/Export_NullPointerExceptionTest2.td
   Adding test:
com/sun/jini/test/spec/jrmp/jrmpexporter/Export_NullPointerExceptionTest3.td
   Adding test:
com/sun/jini/test/spec/jrmp/jrmpexporter/Export_NullPointerExceptionTest4.td
   Adding test:
com/sun/jini/test/spec/jrmp/jrmpexporter/GetActivationID_BehaviorTest.td
   Adding test:
com/sun/jini/test/spec/jrmp/jrmpexporter/GetActivationID_BehaviorTest1.td
   Adding test:
com/sun/jini/test/spec/jrmp/jrmpexporter/GetActivationID_BehaviorTest2.td
   Adding test:
com/sun/jini/test/spec/jrmp/jrmpexporter/GetActivationID_BehaviorTest3.td
   Adding test:
com/sun/jini/test/spec/jrmp/jrmpexporter/GetActivationID_BehaviorTest4.td
   Adding test:
com/sun/jini/test/spec/jrmp/jrmpexporter/GetClientSocketFactory_BehaviorTest.td
   Adding test:
com/sun/jini/test/spec/jrmp/jrmpexporter/GetClientSocketFactory_BehaviorTest1.td
   Adding test:
com/sun/jini/test/spec/jrmp/jrmpexporter/GetClientSocketFactory_BehaviorTest2.td
   Adding test:
com/sun/jini/test/spec/jrmp/jrmpexporter/GetClientSocketFactory_BehaviorTest3.td
   Adding test:
com/sun/jini/test/spec/jrmp/jrmpexporter/GetClientSocketFactory_BehaviorTest4.td
   Adding test:
com/sun/jini/test/spec/jrmp/jrmpexporter/GetPort_BehaviorTest.td
   Adding test:
com/sun/jini/test/spec/jrmp/jrmpexporter/GetPort_BehaviorTest1.td
   Adding test:
com/sun/jini/test/spec/jrmp/jrmpexporter/GetPort_BehaviorTest2.td
   Adding test:
com/sun/jini/test/spec/jrmp/jrmpexporter/GetPort_BehaviorTest3.td
   Adding test:
com/sun/jini/test/spec/jrmp/jrmpexporter/GetPort_BehaviorTest4.td
   Adding test:
com/sun/jini/test/spec/jrmp/jrmpexporter/GetServerSocketFactory_BehaviorTest.td
   Adding test:
com/sun/jini/test/spec/jrmp/jrmpexporter/GetServerSocketFactory_BehaviorTest1.td
   Adding test:
com/sun/jini/test/spec/jrmp/jrmpexporter/GetServerSocketFactory_BehaviorTest2.td
   Adding test:
com/sun/jini/test/spec/jrmp/jrmpexporter/GetServerSocketFactory_BehaviorTest3.td
   Adding test:
com/sun/jini/test/spec/jrmp/jrmpexporter/GetServerSocketFactory_BehaviorTest4.td
   Adding test:
com/sun/jini/test/spec/jrmp/jrmpexporter/Unexport_BehaviorTest.td
   Adding test:
com/sun/jini/test/spec/jrmp/jrmpexporter/Unexport_BehaviorTest1.td
   Adding test:
com/sun/jini/test/spec/jrmp/jrmpexporter/Unexport_BehaviorTest2.td
   Adding test:
com/sun/jini/test/spec/jrmp/jrmpexporter/Unexport_BehaviorTest3.td
   Adding test:
com/sun/jini/test/spec/jrmp/jrmpexporter/Unexport_BehaviorTest4.td
   Adding test:
com/sun/jini/test/spec/jrmp/jrmpexporter/Unexport_IllegalStateExceptionTest.td
   Adding test:
com/sun/jini/test/spec/jrmp/jrmpexporter/Unexport_IllegalStateExceptionTest1.td
   Adding test:
com/sun/jini/test/spec/jrmp/jrmpexporter/Unexport_IllegalStateExceptionTest2.td
   Adding test:
com/sun/jini/test/spec/jrmp/jrmpexporter/Unexport_IllegalStateExceptionTest3.td
   Adding test:
com/sun/jini/test/spec/jrmp/jrmpexporter/Unexport_IllegalStateExceptionTest4.td
   Adding test:
com/sun/jini/test/spec/jrmp/jrmpservercontext/GetServerContext_Test.td
   Adding test:
com/sun/jini/test/spec/jrmp/jrmpservercontext/GetServerContext_Test1.td
   Adding test:
com/sun/jini/test/spec/jrmp/jrmpservercontext/GetServerContext_Test2.td
   Adding test:
com/sun/jini/test/spec/jrmp/jrmpservercontext/GetServerContext_Test3.td
   Adding test:
com/sun/jini/test/spec/jrmp/jrmpservercontext/GetServerContext_Test4.td
   Adding test:
com/sun/jini/test/spec/loader/downloadPermission/Constructor.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassLoader/Constructor.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassLoader/ConstructorNoDlPerm.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassLoader/GetClassAnnotation.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassLoader/GetClassAnnotationNoDlPerm.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassLoader/GetPermissions.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassLoader/GetPermissionsNoDlPerm.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassLoader/GetPermissionsSecurityException.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassLoader/GetResources.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassLoader/GetResourcesNoDlPerm.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassLoader/IsPreferredClass.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassLoader/IsPreferredClassNoDlPerm.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassLoader/IsPreferredResource.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassLoader/IsPreferredResourceIOException.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassLoader/IsPreferredResourceIOExceptionNoDlPerm.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassLoader/IsPreferredResourceNoDlPerm.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassLoader/LoadClasses.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassLoader/LoadClassesNoDlPerm.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassLoader/NewInstance.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassLoader/NewInstanceNoDlPerm.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassAnnotationFile.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassAnnotationFileCann.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassAnnotationFileDlperm.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassAnnotationFileDlpermCann.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassAnnotationHttp.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassAnnotationHttpCann.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassAnnotationHttpDlperm.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassAnnotationHttpDlpermCann.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassLoaderFile.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassLoaderFileCann.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassLoaderFileDlperm.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassLoaderFileDlpermCann.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassLoaderHttp.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassLoaderHttpCann.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassLoaderHttpDlperm.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassLoaderHttpDlpermCann.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassLoaderMalformedURL.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassLoaderMalformedURLCann.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassLoaderMalformedURLDlperm.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassLoaderMalformedURLDlpermCann.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassLoaderMalformedURLDlpermNullCodebase.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassLoaderMalformedURLNullCodebase.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassLoaderSecurityExceptionFile.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassLoaderSecurityExceptionFileCann.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassLoaderSecurityExceptionFileDlperm.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassLoaderSecurityExceptionFileDlpermCann.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassLoaderSecurityExceptionHttp.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassLoaderSecurityExceptionHttpCann.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassLoaderSecurityExceptionHttpDlperm.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassLoaderSecurityExceptionHttpDlpermCann.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassLoaderSecurityExceptionHttpDlpermNoConnect.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassLoaderSecurityExceptionHttpDlpermNoConnectCann.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassLoaderSecurityExceptionHttpNoConnect.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/GetClassLoaderSecurityExceptionHttpNoConnectCann.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadClassesClassNotFoundFile.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadClassesClassNotFoundFileCann.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadClassesClassNotFoundFileDlperm.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadClassesClassNotFoundFileDlpermCann.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadClassesClassNotFoundHttp.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadClassesClassNotFoundHttpCann.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadClassesClassNotFoundHttpDlperm.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadClassesClassNotFoundHttpDlpermCann.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadClassesFile.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadClassesFileCann.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadClassesFileDlperm.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadClassesFileDlpermCann.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadClassesHttp.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadClassesHttpCann.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadClassesHttpDlperm.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadClassesHttpDlpermCann.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadClassesMalformedURL.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadClassesMalformedURLCann.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadClassesMalformedURLDlperm.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadClassesMalformedURLDlpermCann.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadClassesMalformedURLDlpermNullCodebase.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadClassesMalformedURLDlpermSimpleann.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadClassesMalformedURLNullCodebase.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadClassesMalformedURLSimpleann.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadClassesSecurityExceptionFile.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadClassesSecurityExceptionFileCann.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadClassesSecurityExceptionHttp.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadClassesSecurityExceptionHttpCann.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadProxyClassesClassNotFoundFile.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadProxyClassesClassNotFoundFileCann.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadProxyClassesClassNotFoundFileDlperm.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadProxyClassesClassNotFoundFileDlpermCann.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadProxyClassesClassNotFoundHttp.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadProxyClassesClassNotFoundHttpCann.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadProxyClassesClassNotFoundHttpDlperm.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadProxyClassesClassNotFoundHttpDlpermCann.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadProxyClassesFile.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadProxyClassesFileCann.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadProxyClassesFileDlperm.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadProxyClassesFileDlpermCann.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadProxyClassesHttp.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadProxyClassesHttpCann.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadProxyClassesHttpDlperm.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadProxyClassesHttpDlpermCann.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadProxyClassesMalformedURL.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadProxyClassesMalformedURLCann.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadProxyClassesMalformedURLCannNullCodebase.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadProxyClassesMalformedURLDlperm.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadProxyClassesMalformedURLDlpermCann.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadProxyClassesMalformedURLDlpermCannNullCodebase.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadProxyClassesMalformedURLDlpermNullCodebase.td
   Adding test:
com/sun/jini/test/spec/loader/pref/preferredClassProvider/LoadProxyClassesMalformedURLNullCodebase.td
   Adding test:
com/sun/jini/test/spec/loader/pref/requireDlPermProvider/LoadClassesFile.td
   Adding test:
com/sun/jini/test/spec/loader/pref/requireDlPermProvider/LoadClassesHttp.td
   Adding test:
com/sun/jini/test/spec/loader/pref/requireDlPermProvider/LoadClassesSecurityExceptionFile.td
   Adding test:
com/sun/jini/test/spec/loader/pref/requireDlPermProvider/LoadClassesSecurityExceptionHttp.td
   Adding test:
com/sun/jini/test/impl/outrigger/javaspace05/MutatingContentsTest.td
   Adding test:
com/sun/jini/test/impl/outrigger/javaspace05/StableContentsTest.td
   Adding test:
com/sun/jini/test/impl/outrigger/leasing/SpaceLeaseGrantTest.td
   Adding test:
com/sun/jini/test/impl/outrigger/leasing/SpaceLeaseGrantTestAny.td
   Adding test:
com/sun/jini/test/impl/outrigger/leasing/SpaceLeaseGrantTestForever.td
   Adding test:
com/sun/jini/test/impl/outrigger/leasing/SpaceNotifyGrantTest.td
   Adding test:
com/sun/jini/test/impl/outrigger/leasing/SpaceNotifyGrantTestAnyLength.td
   Adding test:
com/sun/jini/test/impl/outrigger/leasing/SpaceNotifyGrantTestForever.td
   Adding test:
com/sun/jini/test/impl/outrigger/leasing/TxnMgrLeaseGrantTest.td
   Adding test:
com/sun/jini/test/impl/outrigger/leasing/TxnMgrLeaseGrantTestAnyLength.td
   Adding test:
com/sun/jini/test/impl/outrigger/leasing/TxnMgrLeaseGrantTestForever.td
   Adding test:
com/sun/jini/test/impl/outrigger/leasing/UseNotifyLeaseTest.td
   Adding test:
com/sun/jini/test/impl/outrigger/leasing/UseNotifyLeaseTestCancel.td
   Adding test:
com/sun/jini/test/impl/outrigger/leasing/UseNotifyLeaseTestRenew.td
   Adding test:
com/sun/jini/test/impl/outrigger/leasing/UseNotifyLeaseTestRenewCancel.td
   Adding test:
com/sun/jini/test/impl/outrigger/leasing/UseNotifyLeaseTestRenewShutdown.td
   Adding test:
com/sun/jini/test/impl/outrigger/leasing/UseNotifyLeaseTestShutdown.td
   Adding test:
com/sun/jini/test/impl/outrigger/leasing/UseTxnMgrLeaseTest.td
   Adding test:
com/sun/jini/test/impl/outrigger/leasing/UseTxnMgrLeaseTestCancel.td
   Adding test:
com/sun/jini/test/impl/outrigger/leasing/UseTxnMgrLeaseTestRenew.td
   Adding test:
com/sun/jini/test/impl/outrigger/leasing/UseTxnMgrLeaseTestRenewCancel.td
   Adding test:
com/sun/jini/test/impl/outrigger/leasing/UseTxnMgrSpaceLeaseTest.td
   Adding test:
com/sun/jini/test/impl/outrigger/leasing/UseTxnMgrSpaceLeaseTestCancel.td
   Adding test:
com/sun/jini/test/impl/outrigger/leasing/UseTxnMgrSpaceLeaseTestRenew.td
   Adding test:
com/sun/jini/test/impl/outrigger/leasing/UseTxnMgrSpaceLeaseTestRenewCancel.td
   Adding test:
com/sun/jini/test/impl/outrigger/leasing/UserSpaceLeaseTest.td
   Adding test:
com/sun/jini/test/impl/outrigger/leasing/UserSpaceLeaseTestCancel.td
   Adding test:
com/sun/jini/test/impl/outrigger/leasing/UserSpaceLeaseTestRenew.td
   Adding test:
com/sun/jini/test/impl/outrigger/leasing/UserSpaceLeaseTestRenewCancel.td
   Adding test:
com/sun/jini/test/impl/outrigger/leasing/UserSpaceLeaseTestRenewShutdown.td
   Adding test:
com/sun/jini/test/impl/outrigger/leasing/UserSpaceLeaseTestShutdown.td
   Adding test:
com/sun/jini/test/impl/outrigger/matching/AdminIteratorTest.td
   Adding test:
com/sun/jini/test/impl/outrigger/matching/AdminIteratorTestShutdown.td
   Adding test:
com/sun/jini/test/impl/outrigger/matching/BlockingMaxServerTimeoutTest.td
   Adding test:
com/sun/jini/test/impl/outrigger/matching/BlockingMaxServerTimeoutTestRead.td
   Adding test: com/sun/jini/test/impl/outrigger/matching/BlockingTest.td
   Adding test:
com/sun/jini/test/impl/outrigger/matching/BlockingTestRead.td
   Adding test:
com/sun/jini/test/impl/outrigger/matching/BlockingTestReadShutdown.td
   Adding test:
com/sun/jini/test/impl/outrigger/matching/BlockingTestShutdown.td
   Adding test: com/sun/jini/test/impl/outrigger/matching/FieldMatchTest.td
   Adding test:
com/sun/jini/test/impl/outrigger/matching/FieldMatchTestNBE.td
   Adding test:
com/sun/jini/test/impl/outrigger/matching/FieldMatchTestUniqueEntry.td
   Adding test:
com/sun/jini/test/impl/outrigger/matching/FieldMatchTestUseIfExists.td
   Adding test:
com/sun/jini/test/impl/outrigger/matching/FieldMatchTestUseIfExistsShutdown.td
   Adding test: com/sun/jini/test/impl/outrigger/matching/FieldNotifyTest.td
   Adding test:
com/sun/jini/test/impl/outrigger/matching/FieldNotifyTestNBEUniqueEntry.td
   Adding test:
com/sun/jini/test/impl/outrigger/matching/FieldNotifyTestUniqueEntry.td
   Adding test:
com/sun/jini/test/impl/outrigger/matching/FieldNotifyTestUniqueEntryShutdown.td
   Adding test:
com/sun/jini/test/impl/outrigger/matching/MismatchNotifyTest.td
   Adding test:
com/sun/jini/test/impl/outrigger/matching/MismatchNotifyTestNBE.td
   Adding test:
com/sun/jini/test/impl/outrigger/matching/MismatchNotifyTestWriteInt.td
   Adding test:
com/sun/jini/test/impl/outrigger/matching/MismatchNotifyTestWriteIntShutdown.td
   Adding test: com/sun/jini/test/impl/outrigger/matching/MismatchTest.td
   Adding test:
com/sun/jini/test/impl/outrigger/matching/MismatchTestExistsTakes.td
   Adding test:
com/sun/jini/test/impl/outrigger/matching/MismatchTestExistsWriteInt.td
   Adding test:
com/sun/jini/test/impl/outrigger/matching/MismatchTestNBEComplex.td
   Adding test:
com/sun/jini/test/impl/outrigger/matching/MismatchTestTakes.td
   Adding test:
com/sun/jini/test/impl/outrigger/matching/MismatchTestUseIfExists.td
   Adding test:
com/sun/jini/test/impl/outrigger/matching/MismatchTestUseIfExistsShutdown.td
   Adding test: com/sun/jini/test/impl/outrigger/matching/StressTest.td
   Adding test:
com/sun/jini/test/impl/outrigger/matching/StressTestInterleaved.td
   Adding test:
com/sun/jini/test/impl/outrigger/matching/StressTestInterleavedWithShutdown.td
   Adding test:
com/sun/jini/test/impl/outrigger/matching/StressTestWithShutdown.td
   Adding test:
com/sun/jini/test/impl/outrigger/matching/SupertypeMatching.td
   Adding test:
com/sun/jini/test/impl/outrigger/matching/SupertypeNotifyTest.td
   Adding test:
com/sun/jini/test/impl/outrigger/matching/SupertypeNotifyTestShutdown.td
   Adding test:
com/sun/jini/test/impl/outrigger/matching/SupertypeUseIfExists.td
   Adding test:
com/sun/jini/test/impl/outrigger/matching/SupertypeUseIfExistsShutdown.td
   Adding test: com/sun/jini/test/impl/outrigger/matching/TakeOneTest.td
   Adding test:
com/sun/jini/test/impl/outrigger/matching/TakeOneTestIfExists.td
   Adding test:
com/sun/jini/test/impl/outrigger/matching/TakeOneTestIfExistsShutdown.td
   Adding test:
com/sun/jini/test/impl/outrigger/matching/WildcardsNotifyTest.td
   Adding test:
com/sun/jini/test/impl/outrigger/matching/WildcardsNotifyTestShutdown.td
   Adding test:
com/sun/jini/test/impl/outrigger/matching/WildcardsNotifyTestWriteInt.td
   Adding test:
com/sun/jini/test/impl/outrigger/matching/WildcardsNotifyTestWriteNBEClass.td
   Adding test: com/sun/jini/test/impl/outrigger/matching/WildcardsTest.td
   Adding test:
com/sun/jini/test/impl/outrigger/matching/WildcardsTestExists.td
   Adding test:
com/sun/jini/test/impl/outrigger/matching/WildcardsTestWriteIntClass.td
   Adding test:
com/sun/jini/test/impl/outrigger/matching/WildcardsTestWriteNBEClass.td
   Adding test:
com/sun/jini/test/impl/outrigger/matching/WildcardsTestWriteNBEClassShutdown.td
   Adding test:
com/sun/jini/test/impl/outrigger/matching/WriteOneTakeRead.td
   Adding test:
com/sun/jini/test/impl/outrigger/matching/WriteOneTakeReadExists.td
   Adding test:
com/sun/jini/test/impl/outrigger/matching/WriteOneTakeReadExistsShutdown.td
   Adding test:
com/sun/jini/test/impl/outrigger/matching/WriteOneTakeReadWriteIntClass.td
   Adding test:
com/sun/jini/test/impl/outrigger/matching/WriteOneTakeReadWriteNBEClass.td
   Adding test:
com/sun/jini/test/impl/outrigger/notify/ThrowRuntimeException.td
   Adding test:
com/sun/jini/test/impl/outrigger/transaction/AbortToReadTest.td
   Adding test:
com/sun/jini/test/impl/outrigger/transaction/BlockingOnDeadTransactionTest.td
   Adding test:
com/sun/jini/test/impl/outrigger/transaction/BlockingOnDeadTransactionTestPoll.td
   Adding test:
com/sun/jini/test/impl/outrigger/transaction/CommitAbortTest.td
   Adding test:
com/sun/jini/test/impl/outrigger/transaction/CommitTerminationTest.td
   Adding test: com/sun/jini/test/impl/outrigger/transaction/DestroyTest.td
   Adding test:
com/sun/jini/test/impl/outrigger/transaction/ExceptionTest1.td
   Adding test:
com/sun/jini/test/impl/outrigger/transaction/ExceptionTest2.td
   Adding test: com/sun/jini/test/impl/outrigger/transaction/GetBlockTest.td
   Adding test:
com/sun/jini/test/impl/outrigger/transaction/IfExistsDontBlockSelfTest.td
   Adding test:
com/sun/jini/test/impl/outrigger/transaction/IfExistsDontBlockSelfTestRead.td
   Adding test: com/sun/jini/test/impl/outrigger/transaction/IfExistsTest.td
   Adding test:
com/sun/jini/test/impl/outrigger/transaction/MultipleAccessTest.td
   Adding test:
com/sun/jini/test/impl/outrigger/transaction/NotifyLogTest.td
   Adding test:
com/sun/jini/test/impl/outrigger/transaction/NotifyTransactionTest.td
   Adding test:
com/sun/jini/test/impl/outrigger/transaction/PreparedTransactionTestAbort.td
   Adding test:
com/sun/jini/test/impl/outrigger/transaction/PreparedTransactionTestAbortActive.td
   Adding test:
com/sun/jini/test/impl/outrigger/transaction/PreparedTransactionTestAbortThrows.td
   Adding test:
com/sun/jini/test/impl/outrigger/transaction/PreparedTransactionTestAbortWait.td
   Adding test:
com/sun/jini/test/impl/outrigger/transaction/PreparedTransactionTestCommit.td
   Adding test:
com/sun/jini/test/impl/outrigger/transaction/PreparedTransactionTestCommitThrows.td
   Adding test:
com/sun/jini/test/impl/outrigger/transaction/PreparedTransactionTestCommitWait.td
   Adding test:
com/sun/jini/test/impl/outrigger/transaction/ReactivationTest.td
   Adding test:
com/sun/jini/test/impl/outrigger/transaction/ReadReadTakeTest.td
   Adding test:
com/sun/jini/test/impl/outrigger/transaction/ReadTakeAbortTest.td
   Adding test:
com/sun/jini/test/impl/outrigger/transaction/ReadTakeCommitTest.td
   Adding test:
com/sun/jini/test/impl/outrigger/transaction/SimpleTransactionTest.td
   Adding test:
com/sun/jini/test/impl/outrigger/transaction/SimpleTransactionTest2.td
   Adding test: com/sun/jini/test/impl/outrigger/transaction/TwoSpaceTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/ContentsTest05.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/ExpirationNotifyTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/ExpirationTest.td
   Adding test: com/sun/jini/test/spec/javaspace/conformance/LeaseTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/MultipleTakeIfExistsNO_WAITTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/MultipleTakeIfExistsTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/MultipleTakeNO_WAITTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/MultipleTakeTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/NotifyLeaseANYTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/NotifyLeaseFOREVERTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/NotifyNegativeLeaseTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/NotifyNonNullTxnParamTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/NotifyNullTxnParamTest.td
   Adding test: com/sun/jini/test/spec/javaspace/conformance/NotifyTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/ReadIfExistsNO_WAITTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/ReadIfExistsTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/ReadNO_WAITTest.td
   Adding test: com/sun/jini/test/spec/javaspace/conformance/ReadTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/RegisterForAvailabilityEventTest05.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/TakeIfExistsNO_WAITTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/TakeIfExistsTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/TakeNO_WAITTest.td
   Adding test: com/sun/jini/test/spec/javaspace/conformance/TakeTest.td
   Adding test: com/sun/jini/test/spec/javaspace/conformance/TakeTest05.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/TransactionAbortWriteTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/TransactionCommitTakeIfExistsTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/TransactionCommitTakeTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/TransactionCommitWriteTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/TransactionContentsTest05.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/TransactionExpirationTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/TransactionLeaseTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/TransactionMultipleTakeIfExistsNO_WAITTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/TransactionMultipleTakeIfExistsTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/TransactionMultipleTakeNO_WAITTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/TransactionMultipleTakeTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/TransactionNotifyLeaseANYTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/TransactionNotifyLeaseFOREVERTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/TransactionNotifyNegativeLeaseTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/TransactionNotifyTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/TransactionReadIfExistsNO_WAITTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/TransactionReadIfExistsTakeTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/TransactionReadIfExistsTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/TransactionReadIfExistsWaitTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/TransactionReadNO_WAITTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/TransactionReadTakeTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/TransactionReadTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/TransactionReadWaitTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/TransactionRegisterForAvailabilityEventTest05.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/TransactionTakeIfExistsNO_WAITTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/TransactionTakeIfExistsReadTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/TransactionTakeIfExistsTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/TransactionTakeIfExistsWaitTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/TransactionTakeNO_WAITTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/TransactionTakeReadTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/TransactionTakeTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/TransactionTakeTest05.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/TransactionTakeWaitTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/TransactionWriteLeaseANYTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/TransactionWriteLeaseFOREVERTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/TransactionWriteNegativeLeaseTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/TransactionWriteTakeIfExistsNotifyTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/TransactionWriteTakeIfExistsTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/TransactionWriteTakeNotifyTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/TransactionWriteTakeTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/TransactionWriteTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/TransactionWriteTest05.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/WriteLeaseANYTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/WriteLeaseFOREVERTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/WriteNegativeLeaseTest.td
   Adding test: com/sun/jini/test/spec/javaspace/conformance/WriteTest.td
   Adding test: com/sun/jini/test/spec/javaspace/conformance/WriteTest05.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotExpirationNotifyTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotExpirationTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotLeaseTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotModifyEntryTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotMultipleTakeIfExistsNO_WAITTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotMultipleTakeIfExistsTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotMultipleTakeNO_WAITTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotMultipleTakeTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotNotifyLeaseANYTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotNotifyLeaseFOREVERTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotNotifyNegativeLeaseTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotNotifyNonNullTxnParamTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotNotifyNullTxnParamTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotNotifyTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotReadIfExistsNO_WAITTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotReadIfExistsTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotReadNO_WAITTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotReadTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTakeIfExistsNO_WAITTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTakeIfExistsTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTakeNO_WAITTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTakeTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionAbortWriteTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionCommitTakeIfExistsTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionCommitTakeTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionCommitWriteTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionExpirationTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionLeaseTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionMultipleTakeIfExistsNO_WAITTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionMultipleTakeIfExistsTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionMultipleTakeNO_WAITTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionMultipleTakeTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionNotifyLeaseANYTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionNotifyLeaseFOREVERTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionNotifyNegativeLeaseTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionNotifyTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionReadIfExistsNO_WAITTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionReadIfExistsTakeTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionReadIfExistsTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionReadIfExistsWaitTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionReadNO_WAITTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionReadTakeTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionReadTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionReadWaitTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionTakeIfExistsNO_WAITTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionTakeIfExistsReadTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionTakeIfExistsTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionTakeIfExistsWaitTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionTakeNO_WAITTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionTakeReadTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionTakeTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionTakeWaitTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionWriteLeaseANYTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionWriteLeaseFOREVERTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionWriteNegativeLeaseTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionWriteTakeIfExistsNotifyTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionWriteTakeIfExistsTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionWriteTakeNotifyTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionWriteTakeTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotTransactionWriteTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotWriteLeaseANYTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotWriteLeaseFOREVERTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotWriteNegativeLeaseTest.td
   Adding test:
com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotWriteTest.td
   Adding test:
com/sun/jini/test/spec/policyprovider/dynamicPolicyProvider/GetGrantsNoPrincipal.td
   Adding test:
com/sun/jini/test/spec/policyprovider/dynamicPolicyProvider/GrantNoPrincipalCase01.td
   Adding test:
com/sun/jini/test/spec/policyprovider/dynamicPolicyProvider/GrantNoPrincipalCase02.td
   Adding test:
com/sun/jini/test/spec/policyprovider/dynamicPolicyProvider/GrantPrincipal.td
   Adding test:
com/sun/jini/test/spec/policyprovider/dynamicPolicyProvider/GrantPrincipalSame.td
   Adding test:
com/sun/jini/test/spec/policyprovider/dynamicPolicyProvider/NullCases.td
   Adding test:
com/sun/jini/test/spec/policyprovider/dynamicPolicyProvider/PolicyInitializationExceptionTest.td
   Adding test:
com/sun/jini/test/spec/policyprovider/dynamicPolicyProvider/RefreshNoPrincipal.td
   Adding test:
com/sun/jini/test/spec/policyprovider/dynamicPolicyProvider/SecurityExceptionConstructorNoAccessClass.td
   Adding test:
com/sun/jini/test/spec/policyprovider/dynamicPolicyProvider/SecurityExceptionConstructorNoGetProperty.td
   Adding test:
com/sun/jini/test/spec/policyprovider/grantPermission/GrantPermissionTest.td
   Adding test:
com/sun/jini/test/spec/policyprovider/grantPermission/GrantPermissionTestCase01.td
   Adding test:
com/sun/jini/test/spec/policyprovider/policyFileProvider/BasicGrants.td
   Adding test:
com/sun/jini/test/spec/policyprovider/policyFileProvider/NullCases.td
   Adding test:
com/sun/jini/test/spec/policyprovider/policyFileProvider/NullPolicy.td
   Adding test:
com/sun/jini/test/spec/policyprovider/policyFileProvider/PolicyInitializationExceptionTest.td
   Adding test:
com/sun/jini/test/spec/policyprovider/policyFileProvider/SecurityExceptionConstructorNoAccessClass.td
   Adding test:
com/sun/jini/test/spec/policyprovider/policyFileProvider/SecurityExceptionConstructorNoGetProperty.td
   Adding test:
com/sun/jini/test/spec/policyprovider/policyFileProvider/UmbrellaGrants.td
   Adding test:
com/sun/jini/test/spec/discoverymanager/AddNewDiscoveryChangeListener.td
   Adding test:
com/sun/jini/test/spec/discoverymanager/AddNewDiscoveryListener.td
   Adding test:
com/sun/jini/test/spec/discoverymanager/DiscardUnreachable.td
   Adding test: com/sun/jini/test/spec/discoverymanager/Discovered.td
   Adding test:
com/sun/jini/test/spec/discoverymanager/GroupsAddNewDiscoveryChangeListener.td
   Adding test:
com/sun/jini/test/spec/discoverymanager/GroupsAddNewDiscoveryListener.td
   Adding test:
com/sun/jini/test/spec/discoverymanager/GroupsDiscardUnreachable.td
   Adding test: com/sun/jini/test/spec/discoverymanager/GroupsDiscovered.td
   Adding test:
com/sun/jini/test/spec/discoverymanager/GroupsMulticastMonitorChange.td
   Adding test:
com/sun/jini/test/spec/discoverymanager/GroupsMulticastMonitorReplace.td
   Adding test:
com/sun/jini/test/spec/discoverymanager/GroupsMulticastMonitorReplaceNone.td
   Adding test:
com/sun/jini/test/spec/discoverymanager/GroupsMulticastMonitorStop.td
   Adding test:
com/sun/jini/test/spec/discoverymanager/GroupsMulticastMonitorTerminate.td
   Adding test:
com/sun/jini/test/spec/discoverymanager/GroupsSetGroupsReplaceAll.td
   Adding test:
com/sun/jini/test/spec/discoverymanager/LocsAddNewDiscoveryChangeListener.td
   Adding test:
com/sun/jini/test/spec/discoverymanager/LocsAddNewDiscoveryListener.td
   Adding test:
com/sun/jini/test/spec/discoverymanager/LocsDiscardUnreachable.td
   Adding test: com/sun/jini/test/spec/discoverymanager/LocsDiscovered.td
   Adding test:
com/sun/jini/test/spec/discoverymanager/LocsMulticastMonitorChange.td
   Adding test:
com/sun/jini/test/spec/discoverymanager/LocsMulticastMonitorReplace.td
   Adding test:
com/sun/jini/test/spec/discoverymanager/LocsMulticastMonitorReplaceNone.td
   Adding test:
com/sun/jini/test/spec/discoverymanager/LocsMulticastMonitorStop.td
   Adding test:
com/sun/jini/test/spec/discoverymanager/LocsMulticastMonitorTerminate.td
   Adding test:
com/sun/jini/test/spec/discoverymanager/LocsSetGroupsReplaceAll.td
   Adding test:
com/sun/jini/test/spec/discoverymanager/MulticastMonitorChange.td
   Adding test:
com/sun/jini/test/spec/discoverymanager/MulticastMonitorReplace.td
   Adding test:
com/sun/jini/test/spec/discoverymanager/MulticastMonitorReplaceNone.td
   Adding test:
com/sun/jini/test/spec/discoverymanager/MulticastMonitorStop.td
   Adding test:
com/sun/jini/test/spec/discoverymanager/MulticastMonitorTerminate.td
   Adding test: com/sun/jini/test/spec/discoverymanager/RemoveGroupsAll.td
   Adding test: com/sun/jini/test/spec/discoverymanager/RemoveGroupsSome.td
   Adding test:
com/sun/jini/test/spec/discoverymanager/SetGroupsReplaceAll.td
   Adding test:
com/sun/jini/test/spec/discoverymanager/SetGroupsReplaceSome.td
   Adding test:
com/sun/jini/test/impl/start/ActivateWrapperActivateDescTest.td
   Adding test:
com/sun/jini/test/impl/start/ActivateWrapperActivateDescTest2.td
   Adding test:
com/sun/jini/test/impl/start/ActivateWrapperActivateDescTest3.td
   Adding test:
com/sun/jini/test/impl/start/ActivateWrapperRegisterBadCodebase.td
   Adding test:
com/sun/jini/test/impl/start/ActivateWrapperRegisterBadGroup.td
   Adding test:
com/sun/jini/test/impl/start/ActivateWrapperRegisterBadImplClass.td
   Adding test:
com/sun/jini/test/impl/start/ActivateWrapperRegisterBadStubClass.td
   Adding test:
com/sun/jini/test/impl/start/ActivateWrapperRegisterBadStubCodebase.td
   Adding test:
com/sun/jini/test/impl/start/ActivateWrapperRegisterUnsharedImpl.td
   Adding test: com/sun/jini/test/impl/start/ClassLoaderTest.td
   Adding test: com/sun/jini/test/impl/start/ClassLoaderUtilTest.td
   Adding test: com/sun/jini/test/impl/start/ClasspathTest.td
   Adding test: com/sun/jini/test/impl/start/CodebaseTest.td
   Adding test:
com/sun/jini/test/impl/start/DestroySharedGroupCreateBadDesc.td
   Adding test:
com/sun/jini/test/impl/start/DestroySharedGroupCreateEmptyTest.td
   Adding test:
com/sun/jini/test/impl/start/DestroySharedGroupMainEmptyArgs.td
   Adding test:
com/sun/jini/test/impl/start/DestroySharedGroupMainEmptyConfig.td
   Adding test:
com/sun/jini/test/impl/start/DestroySharedGroupMainMissingConfig.td
   Adding test: com/sun/jini/test/impl/start/ExportClassLoaderTest.td
   Adding test: com/sun/jini/test/impl/start/MemberGroupsProblem.td
   Adding test:
com/sun/jini/test/impl/start/MultipleClasspathComponentTest.td
   Adding test:
com/sun/jini/test/impl/start/NonActivatableServiceDescriptorTest.td
   Adding test:
com/sun/jini/test/impl/start/NonActivatableServiceDescriptorTest2.td
   Adding test: com/sun/jini/test/impl/start/SecurityTest.td
   Adding test: com/sun/jini/test/impl/start/SecurityTestNonActivatable.td
   Adding test: com/sun/jini/test/impl/start/SerializedServiceDescriptors.td
   Adding test:
com/sun/jini/test/impl/start/ServiceDescriptorProxyPreparationTest.td
   Adding test:
com/sun/jini/test/impl/start/ServiceStarterCreateActivatableNoConsServiceTest.td
   Adding test: com/sun/jini/test/impl/start/ServiceStarterCreateBadDesc.td
   Adding test:
com/sun/jini/test/impl/start/ServiceStarterCreateBadDescWithLogin.td
   Adding test:
com/sun/jini/test/impl/start/ServiceStarterCreateBadServiceProxyAccessorTest.td
   Adding test:
com/sun/jini/test/impl/start/ServiceStarterCreateBadTransientServiceTest.td
   Adding test:
com/sun/jini/test/impl/start/ServiceStarterCreateEmptyTest.td
   Adding test:
com/sun/jini/test/impl/start/ServiceStarterCreateSharedBadActServiceTest.td
   Adding test:
com/sun/jini/test/impl/start/ServiceStarterCreateSharedGroupTest.td
   Adding test:
com/sun/jini/test/impl/start/ServiceStarterCreateTransientNoConsServiceTest.td
   Adding test:
com/sun/jini/test/impl/start/ServiceStarterCreateTransientServiceTest.td
   Adding test: com/sun/jini/test/impl/start/ServiceStarterMainEmptyArgs.td
   Adding test:
com/sun/jini/test/impl/start/ServiceStarterMainEmptyConfig.td
   Adding test:
com/sun/jini/test/impl/start/ServiceStarterMainMissingConfig.td
   Adding test:
com/sun/jini/test/impl/start/SharedActivatableServiceDescriptorTest.td
   Adding test:
com/sun/jini/test/impl/start/SharedActivatableServiceDescriptorTest2.td
   Adding test:
com/sun/jini/test/impl/start/SharedActivatableServiceDescriptorTest3.td
   Adding test:
com/sun/jini/test/impl/start/SharedActivationGroupDescriptorTest.td
   Adding test:
com/sun/jini/test/impl/start/SharedActivationPolicyPermissionActionsTest.td
   Adding test:
com/sun/jini/test/impl/start/SharedActivationPolicyPermissionCollectionTest.td
   Adding test:
com/sun/jini/test/impl/start/SharedActivationPolicyPermissionEqualsTest.td
   Adding test:
com/sun/jini/test/impl/start/SharedActivationPolicyPermissionHTTPEqualsTest.td
   Adding test:
com/sun/jini/test/impl/start/SharedActivationPolicyPermissionHTTPImpliesTest.td
   Adding test:
com/sun/jini/test/impl/start/SharedActivationPolicyPermissionImpliesTest.td
   Adding test: com/sun/jini/test/impl/start/SharedGroupNullConfigEntries.td
   Adding test: com/sun/jini/test/impl/start/SharedGroupProxyEqualityTest.td
   Adding test: com/sun/jini/test/impl/start/StartAllServicesTest.td
   Adding test:
com/sun/jini/test/impl/start/aggregatepolicyprovider/GetContextTest.td
   Adding test:
com/sun/jini/test/impl/start/aggregatepolicyprovider/MainPolicyNotFoundTest.td
   Adding test:
com/sun/jini/test/impl/start/aggregatepolicyprovider/NullCasesTest.td
   Adding test:
com/sun/jini/test/impl/start/aggregatepolicyprovider/SubPoliciesTest.td
   Adding test:
com/sun/jini/test/impl/start/aggregatepolicyprovider/UntrustedGetContextClassLoader.td
   Adding test:
com/sun/jini/test/impl/start/loadersplitpolicyprovider/LoaderSplitPolicyProviderTest.td
   Adding test: com/sun/jini/test/impl/norm/AddRenewRemoveTest.td
   Adding test: com/sun/jini/test/impl/norm/AddRenewRemoveTestShutdown.td
   Adding test: com/sun/jini/test/impl/norm/BatchRenewTest.td
   Adding test: com/sun/jini/test/impl/norm/BatchRenewTestShutdown.td
   Adding test: com/sun/jini/test/impl/norm/ExpiredLeaseTest.td
   Adding test: com/sun/jini/test/impl/norm/GetLeasesTest.td
   Adding test: com/sun/jini/test/impl/norm/GetLeasesTestShutdown.td
   Adding test: com/sun/jini/test/impl/norm/LeaseExpirationTest.td
   Adding test: com/sun/jini/test/impl/norm/LeaseExpirationTestShutdown.td
   Adding test:
com/sun/jini/test/impl/norm/LeaseExpirationTest_w_warning_reg.td
   Adding test:
com/sun/jini/test/impl/norm/LeaseExpirationTest_w_warning_regShutdown.td
   Adding test:
com/sun/jini/test/impl/norm/LeaseExpirationTest_w_warning_reg_2_set_renewals.td
   Adding test:
com/sun/jini/test/impl/norm/LeaseExpirationTest_w_warning_reg_2_set_renewalsShutdown.td
   Adding test: com/sun/jini/test/impl/norm/NormDestroyTest.td
   Adding test: com/sun/jini/test/impl/norm/NormLookupAttributeAdminTest.td
   Adding test: com/sun/jini/test/impl/norm/NormLookupGroupAdminTest.td
   Adding test: com/sun/jini/test/impl/norm/NormLookupLocatorAdminTest.td
   Adding test: com/sun/jini/test/impl/norm/OneExpireOneNotTest.td
   Adding test: com/sun/jini/test/impl/norm/RemoveExactlyOneTest.td
   Adding test:
com/sun/jini/test/impl/norm/RemoveExactlyOneTestFailureFails.td
   Adding test:
com/sun/jini/test/impl/norm/RemoveExactlyOneTestFailureFailsFirst.td
   Adding test: com/sun/jini/test/impl/norm/RenewAtTest.td
   Adding test: com/sun/jini/test/impl/norm/RenewAtTestShutdown.td
   Adding test: com/sun/jini/test/impl/norm/RenewalFailureTest.td
   Adding test: com/sun/jini/test/impl/norm/RenewalFailureTest_renewtwice.td
   Adding test:
com/sun/jini/test/impl/norm/RenewalFailureTest_renewtwiceShutdown.td
   Adding test:
com/sun/jini/test/impl/norm/UseRenewalServiceLeaseRemoveTest_renew2_cancel.td
   Adding test:
com/sun/jini/test/impl/norm/UseRenewalServiceLeaseRemoveTest_renew2_shutdown.td
   Adding test:
com/sun/jini/test/impl/norm/UseRenewalServiceLeaseTest_Renew2_Cancel.td
   Adding test:
com/sun/jini/test/impl/norm/UseRenewalServiceLeaseTest_renew2.td
   Adding test:
com/sun/jini/test/impl/norm/UseRenewalServiceLeaseTest_renew2_shutdown.td
   Adding test: com/sun/jini/test/spec/txnmanager/AsynchAbortOnCommitTest.td
   Adding test:
com/sun/jini/test/spec/txnmanager/AsynchAbortOnPrepareTest.td
   Adding test: com/sun/jini/test/spec/txnmanager/CommitExpiredTest.td
   Adding test: com/sun/jini/test/spec/txnmanager/CommitTimeoutTest.td
   Adding test: com/sun/jini/test/spec/txnmanager/GetStateTest.td
   Adding test: com/sun/jini/test/spec/txnmanager/JoinIdempotentTest.td
   Adding test: com/sun/jini/test/spec/txnmanager/JoinWhileActiveTest.td
   Adding test: com/sun/jini/test/spec/txnmanager/ManyParticipantsTest.td
   Adding test: com/sun/jini/test/spec/txnmanager/PrepareTimeoutTest.td
   Adding test: com/sun/jini/test/spec/txnmanager/RollBackErrorTest.td
   Adding test: com/sun/jini/test/spec/txnmanager/RollForwardErrorTest.td
   Adding test: com/sun/jini/test/spec/txnmanager/TwoPhaseTest.td
   Adding test:
com/sun/jini/test/spec/constraint/coreconstraint/EqualsTest.td
   Adding test:
com/sun/jini/test/spec/constraint/coreconstraint/HashCodeTest.td
   Adding test:
com/sun/jini/test/spec/constraint/coreconstraint/PrincipalElementsTest.td
   Adding test:
com/sun/jini/test/spec/constraint/coreconstraint/SerializationAdvancedTest.td
   Adding test:
com/sun/jini/test/spec/constraint/coreconstraint/SerializationTest.td
   Adding test:
com/sun/jini/test/spec/constraint/coreconstraint/ToStringTest.td
   Adding test:
com/sun/jini/test/spec/constraint/coreconstraint/constraintalternatives/ElementsTest.td
   Adding test:
com/sun/jini/test/spec/constraint/coreconstraint/invocationconstraints/CombineTest.td
   Adding test:
com/sun/jini/test/spec/constraint/coreconstraint/invocationconstraints/IsEmptyTest.td
   Adding test:
com/sun/jini/test/spec/constraint/coreconstraint/invocationconstraints/PreferencesRequirementsTest.td
   Adding test:
com/sun/jini/test/spec/export/exportpermission/BasicPermission_Collection.td
   Adding test:
com/sun/jini/test/spec/export/exportpermission/BasicPermission_equals.td
   Adding test:
com/sun/jini/test/spec/export/exportpermission/BasicPermission_getActions.td
   Adding test:
com/sun/jini/test/spec/export/exportpermission/BasicPermission_hashCode.td
   Adding test:
com/sun/jini/test/spec/export/exportpermission/BasicPermission_implies.td
   Adding test:
com/sun/jini/test/spec/export/exportpermission/Constructors.td
   Adding test:
com/sun/jini/test/spec/export/exportpermission/Permission_getName.td
   Adding test:
com/sun/jini/test/spec/export/servercontext/DoWithServerContext.td
   Adding test:
com/sun/jini/test/spec/export/servercontext/DoWithServerContext_IllegalStateException.td
   Adding test:
com/sun/jini/test/spec/export/servercontext/DoWithServerContext_UnsetContext.td
   Adding test:
com/sun/jini/test/spec/export/servercontext/GetServerContext.td
   Adding test:
com/sun/jini/test/spec/export/servercontext/GetServerContextElement.td
   Adding test:
com/sun/jini/test/spec/export/servercontext/GetServerContextElement_NoContext.td
   Adding test:
com/sun/jini/test/spec/export/servercontext/GetServerContext_NoContext.td
   Adding test:
com/sun/jini/test/spec/export/servercontext/GetServerContext_ProvidersParsing.td
   Adding test:
com/sun/jini/test/spec/export/servercontext/GetServerContext_Providers_NonNull.td
   Adding test:
com/sun/jini/test/spec/constraint/basicmethodconstraints/Constructor_Test.td
   Adding test:
com/sun/jini/test/spec/constraint/basicmethodconstraints/Equals_Test.td
   Adding test:
com/sun/jini/test/spec/constraint/basicmethodconstraints/GetConstraints_Test.td
   Adding test:
com/sun/jini/test/spec/constraint/basicmethodconstraints/GetMethodDescs_Test.td
   Adding test:
com/sun/jini/test/spec/constraint/basicmethodconstraints/HashCode_Test.td
   Adding test:
com/sun/jini/test/spec/constraint/basicmethodconstraints/PossibleConstraints_Test.td
   Adding test:
com/sun/jini/test/spec/constraint/basicmethodconstraints/ToString_Test.td
   Adding test:
com/sun/jini/test/spec/constraint/basicmethodconstraints/methoddesc/Constructor_Test.td
   Adding test:
com/sun/jini/test/spec/constraint/basicmethodconstraints/methoddesc/Equals_Test.td
   Adding test:
com/sun/jini/test/spec/constraint/basicmethodconstraints/methoddesc/GetConstraints_Test.td
   Adding test:
com/sun/jini/test/spec/constraint/basicmethodconstraints/methoddesc/GetName_Test.td
   Adding test:
com/sun/jini/test/spec/constraint/basicmethodconstraints/methoddesc/GetParameterTypes_Test.td
   Adding test:
com/sun/jini/test/spec/constraint/basicmethodconstraints/methoddesc/HashCode_Test.td
   Adding test:
com/sun/jini/test/spec/constraint/basicmethodconstraints/methoddesc/ToString_Test.td
   Adding test:
com/sun/jini/test/spec/constraint/constrainttrustverifier/VerifyObjectTrustTest.td
   Adding test:
com/sun/jini/test/impl/locatordiscovery/AddDiscoveryListenerAfterTerminate.td
   Adding test:
com/sun/jini/test/impl/locatordiscovery/AddLocatorsAfterTerminate.td
   Adding test:
com/sun/jini/test/impl/locatordiscovery/DelayDiscoveryAfterDiscard.td
   Adding test:
com/sun/jini/test/impl/locatordiscovery/DiscardAfterTerminate.td
   Adding test:
com/sun/jini/test/impl/locatordiscovery/GetDiscoveredLocatorsAfterTerminate.td
   Adding test:
com/sun/jini/test/impl/locatordiscovery/GetLocatorsAfterTerminate.td
   Adding test:
com/sun/jini/test/impl/locatordiscovery/GetRegistrarsAfterTerminate.td
   Adding test:
com/sun/jini/test/impl/locatordiscovery/GetUndiscoveredLocatorsAfterTerminate.td
   Adding test:
com/sun/jini/test/impl/locatordiscovery/RemoveDiscoveryListenerAfterTerminate.td
   Adding test:
com/sun/jini/test/impl/locatordiscovery/RemoveLocatorsAfterTerminate.td
   Adding test:
com/sun/jini/test/impl/locatordiscovery/SetLocatorsAfterTerminate.td
   Adding test: com/sun/jini/test/impl/locatordiscovery/UnicastDelay.td
   Adding test: com/sun/jini/test/spec/renewalmanager/EventTest.td
   Adding test: com/sun/jini/test/impl/reggie/MultihomedClientTest.td
   Adding test: com/sun/jini/test/impl/reggie/NullMemberGroups.td
   Adding test: com/sun/jini/test/impl/fiddler/ProxyToString.td
   Adding test: com/sun/jini/test/impl/fiddler/event/NPEOnNullHandback.td
   Adding test:
com/sun/jini/test/impl/fiddler/joinadmin/AddLookupAttributes.td
   Adding test:
com/sun/jini/test/impl/fiddler/joinadmin/AddLookupAttributesNull.td
   Adding test:
com/sun/jini/test/impl/fiddler/joinadmin/AddLookupAttributesSC.td
   Adding test: com/sun/jini/test/impl/fiddler/joinadmin/AddLookupGroups.td
   Adding test:
com/sun/jini/test/impl/fiddler/joinadmin/AddLookupGroupsAllToAll.td
   Adding test:
com/sun/jini/test/impl/fiddler/joinadmin/AddLookupGroupsAllToFinite.td
   Adding test:
com/sun/jini/test/impl/fiddler/joinadmin/AddLookupGroupsDups.td
   Adding test:
com/sun/jini/test/impl/fiddler/joinadmin/AddLookupGroupsFiniteToAll.td
   Adding test:
com/sun/jini/test/impl/fiddler/joinadmin/AddLookupGroupsFiniteToNone.td
   Adding test:
com/sun/jini/test/impl/fiddler/joinadmin/AddLookupGroupsNoneToFinite.td
   Adding test:
com/sun/jini/test/impl/fiddler/joinadmin/AddLookupLocators.td
   Adding test:
com/sun/jini/test/impl/fiddler/joinadmin/AddLookupLocatorsDups.td
   Adding test:
com/sun/jini/test/impl/fiddler/joinadmin/AddLookupLocatorsEmptyToFinite.td
   Adding test:
com/sun/jini/test/impl/fiddler/joinadmin/AddLookupLocatorsFiniteToEmpty.td
   Adding test:
com/sun/jini/test/impl/fiddler/joinadmin/AddLookupLocatorsNullToFinite.td
   Adding test:
com/sun/jini/test/impl/fiddler/joinadmin/GetLookupAttributes.td
   Adding test: com/sun/jini/test/impl/fiddler/joinadmin/GetLookupGroups.td
   Adding test:
com/sun/jini/test/impl/fiddler/joinadmin/GetLookupGroupsAll.td
   Adding test:
com/sun/jini/test/impl/fiddler/joinadmin/GetLookupGroupsAllFinite.td
   Adding test:
com/sun/jini/test/impl/fiddler/joinadmin/GetLookupGroupsDups.td
   Adding test:
com/sun/jini/test/impl/fiddler/joinadmin/GetLookupGroupsNone.td
   Adding test:
com/sun/jini/test/impl/fiddler/joinadmin/GetLookupGroupsNoneFinite.td
   Adding test:
com/sun/jini/test/impl/fiddler/joinadmin/GetLookupGroupsPublic.td
   Adding test:
com/sun/jini/test/impl/fiddler/joinadmin/GetLookupLocators.td
   Adding test:
com/sun/jini/test/impl/fiddler/joinadmin/GetLookupLocatorsDups.td
   Adding test:
com/sun/jini/test/impl/fiddler/joinadmin/ModifyLookupAttributes.td
   Adding test:
com/sun/jini/test/impl/fiddler/joinadmin/ModifyLookupAttributesDeleteAll.td
   Adding test:
com/sun/jini/test/impl/fiddler/joinadmin/ModifyLookupAttributesDeleteOne.td
   Adding test:
com/sun/jini/test/impl/fiddler/joinadmin/ModifyLookupAttributesNullInput.td
   Adding test:
com/sun/jini/test/impl/fiddler/joinadmin/ModifyLookupAttributesNullTmpl.td
   Adding test:
com/sun/jini/test/impl/fiddler/joinadmin/ModifyLookupAttributesSC.td
   Adding test:
com/sun/jini/test/impl/fiddler/joinadmin/RemoveLookupGroups.td
   Adding test:
com/sun/jini/test/impl/fiddler/joinadmin/RemoveLookupGroupsAllFromAll.td
   Adding test:
com/sun/jini/test/impl/fiddler/joinadmin/RemoveLookupGroupsAllFromFinite.td
   Adding test:
com/sun/jini/test/impl/fiddler/joinadmin/RemoveLookupGroupsDups.td
   Adding test:
com/sun/jini/test/impl/fiddler/joinadmin/RemoveLookupGroupsFiniteFromAll.td
   Adding test:
com/sun/jini/test/impl/fiddler/joinadmin/RemoveLookupGroupsFiniteFromNone.td
   Adding test:
com/sun/jini/test/impl/fiddler/joinadmin/RemoveLookupGroupsNoneFromFinite.td
   Adding test:
com/sun/jini/test/impl/fiddler/joinadmin/RemoveLookupLocators.td
   Adding test:
com/sun/jini/test/impl/fiddler/joinadmin/RemoveLookupLocatorsDups.td
   Adding test:
com/sun/jini/test/impl/fiddler/joinadmin/RemoveLookupLocatorsEmptyFromFinite.td
   Adding test:
com/sun/jini/test/impl/fiddler/joinadmin/RemoveLookupLocatorsFiniteFromEmpty.td
   Adding test:
com/sun/jini/test/impl/fiddler/joinadmin/RemoveLookupLocatorsNullFromFinite.td
   Adding test: com/sun/jini/test/impl/fiddler/joinadmin/SetLookupGroups.td
   Adding test:
com/sun/jini/test/impl/fiddler/joinadmin/SetLookupGroupsAllToFinite.td
   Adding test:
com/sun/jini/test/impl/fiddler/joinadmin/SetLookupGroupsDups.td
   Adding test:
com/sun/jini/test/impl/fiddler/joinadmin/SetLookupGroupsFiniteToAll.td
   Adding test:
com/sun/jini/test/impl/fiddler/joinadmin/SetLookupGroupsFiniteToNone.td
   Adding test:
com/sun/jini/test/impl/fiddler/joinadmin/SetLookupGroupsNoneToFinite.td
   Adding test:
com/sun/jini/test/impl/fiddler/joinadmin/SetLookupLocators.td
   Adding test:
com/sun/jini/test/impl/fiddler/joinadmin/SetLookupLocatorsDups.td
   Adding test:
com/sun/jini/test/impl/fiddler/joinadmin/SetLookupLocatorsEmptyToFinite.td
   Adding test:
com/sun/jini/test/impl/fiddler/joinadmin/SetLookupLocatorsFiniteToEmpty.td
   Adding test:
com/sun/jini/test/impl/fiddler/joinadmin/SetLookupLocatorsFiniteToNull.td
   Adding test:
com/sun/jini/test/spec/discoveryservice/event/AddLocatorsFullyQualified.td
   Adding test:
com/sun/jini/test/spec/discoveryservice/event/DiscardUnreachable.td
   Adding test: com/sun/jini/test/spec/discoveryservice/event/Discovered.td
   Adding test:
com/sun/jini/test/spec/discoveryservice/event/LateRegsNotifiedGroups.td
   Adding test:
com/sun/jini/test/spec/discoveryservice/event/LateRegsNotifiedLocs.td
   Adding test:
com/sun/jini/test/spec/discoveryservice/event/LateRegsNotifiedOn2SetGroups.td
   Adding test:
com/sun/jini/test/spec/discoveryservice/event/LateRegsNotifiedOn2SetLocs.td
   Adding test:
com/sun/jini/test/spec/discoveryservice/event/LateRegsNotifiedOnAddGroups.td
   Adding test:
com/sun/jini/test/spec/discoveryservice/event/LateRegsNotifiedOnAddLocs.td
   Adding test:
com/sun/jini/test/spec/discoveryservice/event/LateRegsNotifiedOnSetGroups.td
   Adding test:
com/sun/jini/test/spec/discoveryservice/event/LateRegsNotifiedOnSetLocs.td
   Adding test:
com/sun/jini/test/spec/discoveryservice/event/MulticastMonitorStop.td
   Adding test:
com/sun/jini/test/spec/discoveryservice/event/MulticastMonitorTerminate.td
   Adding test:
com/sun/jini/test/spec/discoveryservice/event/RegsNotifiedOnRemoveGroups.td
   Adding test:
com/sun/jini/test/spec/discoveryservice/event/RegsNotifiedOnRemoveLocs.td
   Adding test:
com/sun/jini/test/spec/discoveryservice/event/RemoveGroupsAll.td
   Adding test:
com/sun/jini/test/spec/discoveryservice/event/RemoveGroupsSome.td
   Adding test:
com/sun/jini/test/spec/discoveryservice/event/RemoveLocatorsAll.td
   Adding test:
com/sun/jini/test/spec/discoveryservice/event/RemoveLocatorsFullyQualified.td
   Adding test:
com/sun/jini/test/spec/discoveryservice/event/RemoveLocatorsSome.td
   Adding test:
com/sun/jini/test/spec/discoveryservice/event/SetGroupsReplaceAll.td
   Adding test:
com/sun/jini/test/spec/discoveryservice/event/SetGroupsReplaceSome.td
   Adding test:
com/sun/jini/test/spec/discoveryservice/event/SetLocatorsFullyQualified.td
   Adding test:
com/sun/jini/test/spec/discoveryservice/event/SetLocatorsReplaceAll.td
   Adding test:
com/sun/jini/test/spec/discoveryservice/event/SetLocatorsReplaceSome.td
   Adding test:
com/sun/jini/test/spec/discoveryservice/event/SetLocatorsToNone.td
   Adding test: com/sun/jini/test/spec/discoveryservice/lease/CancelLease.td
   Adding test:
com/sun/jini/test/spec/discoveryservice/lease/CancelLeaseMap.td
   Adding test:
com/sun/jini/test/spec/discoveryservice/lease/LeaseExpiration.td
   Adding test: com/sun/jini/test/spec/discoveryservice/lease/RenewLease.td
   Adding test:
com/sun/jini/test/spec/discoveryservice/lease/RenewLeaseMap.td
   Adding test: com/sun/jini/test/impl/joinmanager/AddAttributesRace.td
   Adding test: com/sun/jini/test/impl/joinmanager/LeaseRenewDurRFE.td
   Adding test:
com/sun/jini/test/impl/joinmanager/RaceAttrsVsTerminateISE.td
   Adding test:
com/sun/jini/test/impl/joinmanager/RaceAttrsVsTerminateULE.td
   Adding test: com/sun/jini/test/impl/joinmanager/SetAddAttributesOrder.td
   Adding test: com/sun/jini/test/impl/joinmanager/TerminateSemantics.td
   Adding test: com/sun/jini/test/impl/joinmanager/ZRegisterStorm.td
   Adding test:
com/sun/jini/test/spec/activation/activatableinvocationhandler/CheckTrustEquivalence_Test.td
   Adding test:
com/sun/jini/test/spec/activation/activatableinvocationhandler/CheckTrustEquivalence_UntrustedAIDTest.td
   Adding test:
com/sun/jini/test/spec/activation/activatableinvocationhandler/Constructor_AccessorTest.td
   Adding test:
com/sun/jini/test/spec/activation/activatableinvocationhandler/GetActivationID_CallTest.td
   Adding test:
com/sun/jini/test/spec/activation/activatableinvocationhandler/GetCurrentProxy_CallTest.td
   Adding test:
com/sun/jini/test/spec/activation/activatableinvocationhandler/Invoke_MethodsNoActivationTest.td
   Adding test:
com/sun/jini/test/spec/activation/activatableinvocationhandler/Invoke_MethodsWithActivationTest.td
   Adding test:
com/sun/jini/test/spec/activation/activatableinvocationhandler/Invoke_ObjectMethodsTest.td
   Adding test:
com/sun/jini/test/spec/activation/activatableinvocationhandler/Invoke_WithExceptionNoActivationTest.td
   Adding test:
com/sun/jini/test/spec/activation/activatableinvocationhandler/Invoke_WithExceptionWithActivationTest.td
   Adding test:
com/sun/jini/test/spec/activation/activationexporter/Constructor_AccessorTest.td
   Adding test:
com/sun/jini/test/spec/activation/activationexporter/Export_CallTest.td
   Adding test:
com/sun/jini/test/spec/activation/activationexporter/Export_ExceptionTest.td
   Adding test:
com/sun/jini/test/spec/activation/activationexporter/Unexport_CallTest.td
   Adding test:
com/sun/jini/test/spec/activation/activationexporter/Unexport_ExceptionTest.td
   Adding test:
com/sun/jini/test/spec/activation/activationgroup/Constructor_AccessorTest.td
   Adding test:
com/sun/jini/test/spec/activation/activationgroup/CreateGroup_ExceptionTest.td
   Adding test:
com/sun/jini/test/spec/activation/activationgroup/CreateGroup_Test.td
   Adding test:
com/sun/jini/test/spec/activation/activationgroup/Inactivate_Test.td
   Adding test: com/sun/jini/test/impl/scalability/DemoScalabilityTest.td
   Adding test: com/sun/jini/test/impl/scalability/ServiceLauncher.td
   Adding test: com/sun/jini/test/impl/reliability/TransportReliability.td
   Adding test:
com/sun/jini/test/impl/discoverymanager/RemoveGroupsLocsDiscard.td
   Adding test:
com/sun/jini/test/impl/discoveryproviders/DiscoveryV2CachingTest.td
   Adding test: com/sun/jini/test/spec/joinmanager/AddAttributes.td
   Adding test: com/sun/jini/test/spec/joinmanager/AddAttributesDup.td
   Adding test:
com/sun/jini/test/spec/joinmanager/AddAttributesNullElement.td
   Adding test: com/sun/jini/test/spec/joinmanager/AddAttributesNullSet.td
   Adding test: com/sun/jini/test/spec/joinmanager/AddAttributesProp.td
   Adding test: com/sun/jini/test/spec/joinmanager/AddAttributesPropNew.td
   Adding test:
com/sun/jini/test/spec/joinmanager/AddAttributesServiceControlled.td
   Adding test: com/sun/jini/test/spec/joinmanager/Equality.td
   Adding test: com/sun/jini/test/spec/joinmanager/GetAttributes.td
   Adding test: com/sun/jini/test/spec/joinmanager/GetAttributesNew.td
   Adding test: com/sun/jini/test/spec/joinmanager/GetDiscoveryManager.td
   Adding test: com/sun/jini/test/spec/joinmanager/GetJoinSetCallback.td
   Adding test: com/sun/jini/test/spec/joinmanager/GetJoinSetCallbackNew.td
   Adding test: com/sun/jini/test/spec/joinmanager/GetJoinSetServiceID.td
   Adding test: com/sun/jini/test/spec/joinmanager/GetJoinSetServiceIDNew.td
   Adding test: com/sun/jini/test/spec/joinmanager/GetLeaseRenewalManager.td
   Adding test: com/sun/jini/test/spec/joinmanager/LDMNullPublicGroup.td
   Adding test: com/sun/jini/test/spec/joinmanager/ModifyAttributes.td
   Adding test:
com/sun/jini/test/spec/joinmanager/ModifyAttributesAllToOne.td
   Adding test:
com/sun/jini/test/spec/joinmanager/ModifyAttributesClassMismatch.td
   Adding test:
com/sun/jini/test/spec/joinmanager/ModifyAttributesDeleteAll.td
   Adding test:
com/sun/jini/test/spec/joinmanager/ModifyAttributesDeleteOne.td
   Adding test: com/sun/jini/test/spec/joinmanager/ModifyAttributesDup.td
   Adding test:
com/sun/jini/test/spec/joinmanager/ModifyAttributesLengthMismatch.td
   Adding test: com/sun/jini/test/spec/joinmanager/ModifyAttributesOne.td
   Adding test: com/sun/jini/test/spec/joinmanager/ModifyAttributesProp.td
   Adding test:
com/sun/jini/test/spec/joinmanager/ModifyAttributesPropNew.td
   Adding test:
com/sun/jini/test/spec/joinmanager/ModifyAttributesServiceControlled.td
   Adding test: com/sun/jini/test/spec/joinmanager/Register.td
   Adding test: com/sun/jini/test/spec/joinmanager/RegisterAttributes.td
   Adding test: com/sun/jini/test/spec/joinmanager/RegisterProp.td
   Adding test: com/sun/jini/test/spec/joinmanager/ServiceIDNotify.td
   Adding test: com/sun/jini/test/spec/joinmanager/SetAttributes.td
   Adding test: com/sun/jini/test/spec/joinmanager/SetAttributesDup.td
   Adding test:
com/sun/jini/test/spec/joinmanager/SetAttributesNullElement.td
   Adding test: com/sun/jini/test/spec/joinmanager/SetAttributesNullSet.td
   Adding test: com/sun/jini/test/spec/joinmanager/SetAttributesProp.td
   Adding test: com/sun/jini/test/spec/joinmanager/SetAttributesPropNew.td
   Adding test: com/sun/jini/test/spec/joinmanager/TerminateDiscovery.td
   Adding test: com/sun/jini/test/spec/joinmanager/TerminateLeases.td
   Adding test:
com/sun/jini/test/spec/security/proxytrust/proxytrustexporter/ExportTest.td
   Adding test:
com/sun/jini/test/spec/security/proxytrust/proxytrustexporter/Export_ExportExceptionTest.td
   Adding test:
com/sun/jini/test/spec/security/proxytrust/proxytrustexporter/Export_IllegalArgumentExceptionTest.td
   Adding test:
com/sun/jini/test/spec/security/proxytrust/proxytrustexporter/Export_IllegalStateExceptionTest.td
   Adding test:
com/sun/jini/test/spec/security/proxytrust/proxytrustexporter/PTE_NullPointerExceptionTest.td
   Adding test:
com/sun/jini/test/spec/security/proxytrust/proxytrustexporter/UnexportTest.td
   Adding test:
com/sun/jini/test/spec/security/proxytrust/proxytrustinvocationhandler/CheckTrustEquivalenceTest.td
   Adding test:
com/sun/jini/test/spec/security/proxytrust/proxytrustinvocationhandler/EqualsTest.td
   Adding test:
com/sun/jini/test/spec/security/proxytrust/proxytrustinvocationhandler/GetProxyTrustIteratorTest.td
   Adding test:
com/sun/jini/test/spec/security/proxytrust/proxytrustinvocationhandler/InvokeTest.td
   Adding test:
com/sun/jini/test/spec/security/proxytrust/proxytrustinvocationhandler/Invoke_EqualsTest.td
   Adding test:
com/sun/jini/test/spec/security/proxytrust/proxytrustinvocationhandler/Invoke_ExceptionsTest.td
   Adding test:
com/sun/jini/test/spec/security/proxytrust/proxytrustinvocationhandler/Invoke_ThrowableTest.td
   Adding test:
com/sun/jini/test/spec/security/proxytrust/proxytrustinvocationhandler/Invoke_checkTrustEquivalenceTest.td
   Adding test:
com/sun/jini/test/spec/security/proxytrust/proxytrustinvocationhandler/Invoke_hashCodeTest.td
   Adding test:
com/sun/jini/test/spec/security/proxytrust/proxytrustinvocationhandler/Invoke_setConstraintsTest.td
   Adding test:
com/sun/jini/test/spec/security/proxytrust/proxytrustinvocationhandler/PTIH_IllegalArgumentExceptionTest.td
   Adding test:
com/sun/jini/test/spec/security/proxytrust/proxytrustinvocationhandler/PTIH_NullPointerExceptionTest.td
   Adding test:
com/sun/jini/test/spec/security/proxytrust/proxytrustinvocationhandler/ReadObjectTest.td
   Adding test:
com/sun/jini/test/spec/security/proxytrust/proxytrustverifier/IsTrustedObjectMultiIterationTest.td
   Adding test:
com/sun/jini/test/spec/security/proxytrust/proxytrustverifier/IsTrustedObjectOneIterationNonProxyTest.td
   Adding test:
com/sun/jini/test/spec/security/proxytrust/proxytrustverifier/IsTrustedObjectOneIterationProxyTest.td
   Adding test:
com/sun/jini/test/spec/security/proxytrust/proxytrustverifier/IsTrustedObject_NullPointerExceptionTest.td
   Adding test:
com/sun/jini/test/spec/security/proxytrust/proxytrustverifier/IsTrustedObject_RemoteExceptionTest.td
   Adding test:
com/sun/jini/test/spec/security/proxytrust/proxytrustverifier/IsTrustedObject_SecurityExceptionTest.td
   Adding test:
com/sun/jini/test/spec/security/proxytrust/singletonproxytrustiterator/SingletonProxyTrustIteratorTest.td
   Adding test:
com/sun/jini/test/spec/iiop/iiopexporter/Export_BehaviorTest.td
   Adding test:
com/sun/jini/test/spec/iiop/iiopexporter/Export_BehaviorTest1.td
   Adding test:
com/sun/jini/test/spec/iiop/iiopexporter/Export_BehaviorTest2.td
   Adding test:
com/sun/jini/test/spec/iiop/iiopexporter/Export_ExportExceptionTest.td
   Adding test:
com/sun/jini/test/spec/iiop/iiopexporter/Export_ExportExceptionTest1.td
   Adding test:
com/sun/jini/test/spec/iiop/iiopexporter/Export_ExportExceptionTest2.td
   Adding test:
com/sun/jini/test/spec/iiop/iiopexporter/Export_IllegalStateExceptionTest.td
   Adding test:
com/sun/jini/test/spec/iiop/iiopexporter/Export_IllegalStateExceptionTest1.td
   Adding test:
com/sun/jini/test/spec/iiop/iiopexporter/Export_IllegalStateExceptionTest2.td
   Adding test:
com/sun/jini/test/spec/iiop/iiopexporter/Export_NullPointerExceptionTest.td
   Adding test:
com/sun/jini/test/spec/iiop/iiopexporter/Export_NullPointerExceptionTest1.td
   Adding test:
com/sun/jini/test/spec/iiop/iiopexporter/Export_NullPointerExceptionTest2.td
   Adding test: com/sun/jini/test/spec/iiop/iiopexporter/InvocationTest.td
   Adding test: com/sun/jini/test/spec/iiop/iiopexporter/InvocationTest1.td
   Adding test: com/sun/jini/test/spec/iiop/iiopexporter/InvocationTest2.td
   Adding test:
com/sun/jini/test/spec/iiop/iiopexporter/Unexport_BehaviorTest.td
   Adding test:
com/sun/jini/test/spec/iiop/iiopexporter/Unexport_BehaviorTest1.td
   Adding test:
com/sun/jini/test/spec/iiop/iiopexporter/Unexport_BehaviorTest2.td
   Adding test:
com/sun/jini/test/spec/iiop/iiopexporter/Unexport_IllegalStateExceptionTest.td
   Adding test:
com/sun/jini/test/spec/iiop/iiopexporter/Unexport_IllegalStateExceptionTest1.td
   Adding test:
com/sun/jini/test/spec/iiop/iiopexporter/Unexport_IllegalStateExceptionTest2.td
   Adding test: com/sun/jini/test/impl/end2end/End2EndTestHTTPS.td
   Adding test: com/sun/jini/test/impl/end2end/End2EndTestJSSE.td
   Adding test: com/sun/jini/test/impl/end2end/End2EndTestKerberos.td
   Adding test:
com/sun/jini/test/spec/security/accesspermission/ConstructorExceptionsTest.td
   Adding test:
com/sun/jini/test/spec/security/accesspermission/EqualsTest.td
   Adding test:
com/sun/jini/test/spec/security/accesspermission/ImpliesTest.td
   Adding test:
com/sun/jini/test/spec/security/accesspermission/ReadObjectTest.td
   Adding test:
com/sun/jini/test/spec/security/authenticationpermission/Constructor1ExceptionsTest.td
   Adding test:
com/sun/jini/test/spec/security/authenticationpermission/Constructor2ExceptionsTest.td
   Adding test:
com/sun/jini/test/spec/security/authenticationpermission/EqualsTest.td
   Adding test:
com/sun/jini/test/spec/security/authenticationpermission/ImpliesTest.td
   Adding test:
com/sun/jini/test/spec/security/authenticationpermission/NewPermissionCollectionTest.td
   Adding test:
com/sun/jini/test/spec/security/authenticationpermission/ReadObjectTest.td
   Adding test:
com/sun/jini/test/spec/security/basicproxypreparer/Constructor_Test.td
   Adding test:
com/sun/jini/test/spec/security/basicproxypreparer/Equals_Test.td
   Adding test:
com/sun/jini/test/spec/security/basicproxypreparer/GetMethodConstraints_Test.td
   Adding test:
com/sun/jini/test/spec/security/basicproxypreparer/GetPermissions_Test.td
   Adding test:
com/sun/jini/test/spec/security/basicproxypreparer/Grant_Test.td
   Adding test:
com/sun/jini/test/spec/security/basicproxypreparer/HashCode_Test.td
   Adding test:
com/sun/jini/test/spec/security/basicproxypreparer/PrepareProxy_Test.td
   Adding test:
com/sun/jini/test/spec/security/basicproxypreparer/SetConstraints_Test.td
   Adding test:
com/sun/jini/test/spec/security/basicproxypreparer/ToString_Test.td
   Adding test:
com/sun/jini/test/spec/security/basicproxypreparer/Verify_Test.td
   Adding test:
com/sun/jini/test/spec/security/security/DoPrivilegedExceptionTest.td
   Adding test: com/sun/jini/test/spec/security/security/DoPrivilegedTest.td
   Adding test: com/sun/jini/test/spec/security/security/GetContextTest.td
   Adding test:
com/sun/jini/test/spec/security/security/GrantSupportedTest.td
   Adding test: com/sun/jini/test/spec/security/security/GrantTest1.td
   Adding test: com/sun/jini/test/spec/security/security/GrantTest2.td
   Adding test: com/sun/jini/test/spec/security/security/GrantTest3.td
   Adding test:
com/sun/jini/test/spec/security/security/VerifyCodebaseIntegrityTest.td
   Adding test:
com/sun/jini/test/spec/security/security/VerifyObjectTrustTest.td

-----------------------------------------
GENERAL HARNESS CONFIGURATION INFORMATION:

   Date started:
      Sun Aug 29 17:08:38 CEST 2010
   Installation directory of the JSK:
      com.sun.jini.jsk.home=C:\Projects\river-trunk
   Installation directory of the harness:
      com.sun.jini.qa.home=C:\Projects\river-trunk\qa
   Categories being tested:
      categories=implservicediscoveryevent fiddlerfiddleradmin
basicinvocationdispatcher allgroups jeri_spec specservicediscovery
renewalservice_spec coreconstraint implservicediscovery javaspace_impl_api
txnmanager_impl id_spec io_spec lookupservice_spec thread config
basicobjectendpoint_spec locatordiscovery_spec javaspace_impl_admin
eventmailbox_spec servicediscovery_spec lookupdiscovery url_spec
eventmailbox_impl jrmp_spec specservicediscoverylookup loader javaspace
basicobjectendpoint policyprovider discoverymanager_spec start
renewalservice specservicediscoverydiscovery txnmanager
javaspace_impl_leasing spec constraint impllocatordiscovery test_set04
basicinvocationdispatcher_spec test_set03 basicinvocationhandler_spec
test_set00 test_set02 test_set01 servicediscovery javaspace_impl_matching
renewalmanager_spec snapshot jeri locatordiscovery_impl
servicediscoverycache lookupservice txnmanager_spec discoveryservice
javaspace_spec joinmanager_impl speclocatordiscovery javaspace_conformance
activation_spec basicinvocationhandler discoveryservicelease
servicediscoverylookup renewalmanager scalability loader_spec reliability
constraint_spec servicediscoveryevent discoveryserviceevent
specservicediscoveryevent servicediscovery_impl fiddleradmin
discoverymanager jrmp impllookupdiscovery eventmailbox renewalservice_impl
lookupservice_impl stress config_spec discoveryproviders_impl javaspace_impl
url coreconstraint_spec joinmanager_spec discoveryservice_impl
proxytrust_spec discoveryservice_spec joinmanager iiop iiop_spec
lookupdiscovery_spec end2end_impl javaspace_impl_javaspace05
lookupdiscovery_impl end2end security_spec security discoverymanager_impl
javaspace05_conformance id servicediscoverydiscovery proxytrust
speclookupdiscovery fiddlerjoinadmin activation export discardproblem
specservicediscoverycache javaspace_impl_transaction start_impl io
export_spec policyprovider_spec javaspace_impl_notify locatordiscovery
thread_impl
-----------------------------------------

Re: ServiceDiscoveryManager test coverage

Posted by Peter Firmstone <ji...@zeus.net.au>.
Hmm that is strange, I thought that was svn based activity, I don't 
recall accessing svn then either.

Is someone able to look into it?

Jonathan Costers wrote:
> That's strange ... Hudson lists a user "Peter Firmstone" with last activity
> 4 days ago.
> The user that was setup for me last year unfortunately disappeared from the
> list :-(
>
> 2010/8/27 Peter Firmstone <ji...@zeus.net.au>
>
>   
>> Ok, sounds good, I don't have access to Hudson unfortunately though, can
>> anyone assist here?
>>
>>
>> Jonathan Costers wrote:
>>
>>     
>>> Ideally it should, yes. So we get visibility on failures sooner ...
>>>
>>> To accomplish that, we need to make a change to the property value of
>>> run.categories and add the missing categories (I've already added two more
>>> the last cpl days).
>>> However, adding all other categories to the run.categories property will
>>> make our next Hudson builds take a very, very long time.
>>>
>>> So, as proposed above, we could (request to) setup a separate Hudson job
>>> that does this complete test run nightly, instead of triggered by SVN
>>> changes.
>>> - the current Hudson job would build triggered by SVN changes and run some
>>> unit tests and/or some selected QA tests (fast)
>>> - a new Hudson job would do nighly (or otherwise scheduled) builds and run
>>> the whole QA suite (very slow)
>>>
>>> How does that sound to you?
>>>
>>> Speaking of Hudson, any chance we can get that up and running again? I see
>>> nothing has been built in a while.
>>>
>>> 2010/8/27 Peter Firmstone <ji...@zeus.net.au>
>>>
>>>
>>>
>>>       
>>>> Ok, I'm happy if we do that then, I just want to make sure I'm running
>>>> all
>>>> the tests I should, that's all, so qa.run should run all categories by
>>>> default?
>>>>
>>>> Peter.
>>>>
>>>>
>>>> Jonathan Costers wrote:
>>>>
>>>>
>>>>
>>>>         
>>>>> There is one now already: qa.run
>>>>> We just need to pass it more test category names (property
>>>>> run.categories)
>>>>> by default.
>>>>> Maybe I am misunderstanding you?
>>>>>
>>>>> 2010/8/27 Peter Firmstone <ji...@zeus.net.au>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>           
>>>>>> Hi JC,
>>>>>>
>>>>>> Can we have an ant target for running all the tests?
>>>>>>
>>>>>> And how about a qa.run.hudson target?
>>>>>>
>>>>>> I usually use run-categories, to isolate what I'm working on, but we
>>>>>> definitely need a target that runs everything that should be, even if
>>>>>> it
>>>>>> does take overnight.
>>>>>>
>>>>>> Regards,
>>>>>>
>>>>>> Peter.
>>>>>>
>>>>>>
>>>>>> Jonathan Costers wrote:
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>             
>>>>>>> 2010/8/24 Patricia Shanahan <pa...@acm.org>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>               
>>>>>>>> On 8/22/2010 4:57 PM, Peter Firmstone wrote:
>>>>>>>> ...
>>>>>>>>
>>>>>>>>  Thanks Patricia, that's very helpful, I'll figure it out where I
>>>>>>>> went
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>                 
>>>>>>>>> wrong this week, it really shows the importance of full test
>>>>>>>>> coverage.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>                   
>>>>>>>> ...
>>>>>>>>
>>>>>>>> I strongly agree that test coverage is important. Accordingly, I've
>>>>>>>> done
>>>>>>>> some analysis of the "ant qa.run" output.
>>>>>>>>
>>>>>>>> There are 1059 test description (*.td) files that exist, and are
>>>>>>>> loaded
>>>>>>>> at
>>>>>>>> the start of "ant qa.run", but that do not seem to be run. I've
>>>>>>>> extracted
>>>>>>>> the top level categories from those files:
>>>>>>>>
>>>>>>>> constraint
>>>>>>>> discoveryproviders_impl
>>>>>>>> discoveryservice
>>>>>>>> end2end
>>>>>>>> eventmailbox
>>>>>>>> export_spec
>>>>>>>> io
>>>>>>>> javaspace
>>>>>>>> jeri
>>>>>>>> joinmanager
>>>>>>>> jrmp
>>>>>>>> loader
>>>>>>>> locatordiscovery
>>>>>>>> lookupdiscovery
>>>>>>>> lookupservice
>>>>>>>> proxytrust
>>>>>>>> reliability
>>>>>>>> renewalmanager
>>>>>>>> renewalservice
>>>>>>>> scalability
>>>>>>>> security
>>>>>>>> start
>>>>>>>> txnmanager
>>>>>>>>
>>>>>>>> I'm sure some of these tests are obsolete, duplicates of tests in
>>>>>>>> categories that are being run, or otherwise inappropriate, but there
>>>>>>>> does
>>>>>>>> seem to be a rich vein of tests we could mine.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>                 
>>>>>>> The QA harness loads all .td files under the "spec" and "impl"
>>>>>>> directories
>>>>>>> when starting and only witholds the ones that are tagged with the
>>>>>>> categories
>>>>>>> that we specify from the Ant target.
>>>>>>> Whenever a test is really obsolete or otherwise not supposed to run,
>>>>>>> it
>>>>>>> is
>>>>>>> marked with a "SkipTestVerifier" in its .td file.
>>>>>>> Most of these are genuine and should be run though.
>>>>>>> There are more categories than the ones you mention above, for
>>>>>>> instance:
>>>>>>> "spec", "id", "id_spec", etc.
>>>>>>> Also, some tests are tagged with multiple categories and as such
>>>>>>> duplicates
>>>>>>> can exist when assembling the list of tests to run.
>>>>>>>
>>>>>>> The reason not all of them are run (by Hudson) now is that we give a
>>>>>>> specific set of test categories that are known (to me) to run
>>>>>>> smoothly.
>>>>>>> There are many others that are not run (by default) because issue(s)
>>>>>>> are
>>>>>>> present with one or more of the tests in that category.
>>>>>>>
>>>>>>> I completely agree with the fact that we should not exclude complete
>>>>>>> test
>>>>>>> categories because of one test failing.
>>>>>>> What we probably should do is tag any problematic test (due to
>>>>>>> infrastructure or other reasons) with a SkipTestVerifier for the time
>>>>>>> being
>>>>>>> so that it is not taken into account by the QA harness for now.
>>>>>>> That way, we can add all test categories to the default Ant run.
>>>>>>> However, this would take a large amount of time to run (I've tried it
>>>>>>> once,
>>>>>>> and killed the process after several days), which brings us to your
>>>>>>> next
>>>>>>> point:
>>>>>>>
>>>>>>> Part of the problem may be time to run the tests. I'd like to propose
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>               
>>>>>>>> splitting the tests into two sets:
>>>>>>>>
>>>>>>>> 1. A small set that one would run in addition to the relevant tests,
>>>>>>>> whenever making a small change. It should *not* be based on skipping
>>>>>>>> complete categories, but on doing those tests from each category that
>>>>>>>> are
>>>>>>>> most likely to detect regression, especially regression due to
>>>>>>>> changes
>>>>>>>> in
>>>>>>>> other areas.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>                 
>>>>>>> Completely agree. However, most of the QA tests are not clear unit or
>>>>>>> regression tests. They are more integration/conformance tests that
>>>>>>> test
>>>>>>> the
>>>>>>> requirements of the spec and its implementation.
>>>>>>> Identifying the list of "right" tests to run as part of the small set
>>>>>>> you
>>>>>>> mention would require going through all 1059 test descriptions and
>>>>>>> their
>>>>>>> sources.
>>>>>>>
>>>>>>> 2. A full test set that may take a lot longer. In many projects, there
>>>>>>> is
>>>>>>> a
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>               
>>>>>>>> "nightly build" and a test sequence that is run against that build.
>>>>>>>> That
>>>>>>>> test sequence can take up to 24 hours to run, and should be as
>>>>>>>> complete
>>>>>>>> as
>>>>>>>> possible. Does Apache have infrastructure to support this sort of
>>>>>>>> operation?
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>                 
>>>>>>> Again, completely agree. I'm sure Apache supports this through Hudson.
>>>>>>> We
>>>>>>> could request to setup a second build job, doing nightly builds and
>>>>>>> running
>>>>>>> the whole test suite. Think this is the only way to make running the
>>>>>>> complete QA suite automatically practical.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>               
>>>>>>>> Are there any tests that people *know* should not run? I'm thinking
>>>>>>>> of
>>>>>>>> running the lot just to see what happens, but knowing ones that are
>>>>>>>> not
>>>>>>>> expected to work would help with result interpretation.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>                 
>>>>>>> See above, tests of that type should have already been tagged to be
>>>>>>> skipped
>>>>>>> by the good people that donated this test suite.
>>>>>>> I've noticed that usually, when a SkipTestVerifier is used in a .td
>>>>>>> file,
>>>>>>> someone has put some comments in there to explain why it was tagged as
>>>>>>> such.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>               
>>>>>>>> Patricia
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>                 
>>>>>>>
>>>>>>>               
>>>>>>             
>>>>>
>>>>>           
>>>>         
>>>
>>>       
>>     
>
>   


Re: ServiceDiscoveryManager test coverage

Posted by Jonathan Costers <jo...@googlemail.com>.
That's strange ... Hudson lists a user "Peter Firmstone" with last activity
4 days ago.
The user that was setup for me last year unfortunately disappeared from the
list :-(

2010/8/27 Peter Firmstone <ji...@zeus.net.au>

> Ok, sounds good, I don't have access to Hudson unfortunately though, can
> anyone assist here?
>
>
> Jonathan Costers wrote:
>
>> Ideally it should, yes. So we get visibility on failures sooner ...
>>
>> To accomplish that, we need to make a change to the property value of
>> run.categories and add the missing categories (I've already added two more
>> the last cpl days).
>> However, adding all other categories to the run.categories property will
>> make our next Hudson builds take a very, very long time.
>>
>> So, as proposed above, we could (request to) setup a separate Hudson job
>> that does this complete test run nightly, instead of triggered by SVN
>> changes.
>> - the current Hudson job would build triggered by SVN changes and run some
>> unit tests and/or some selected QA tests (fast)
>> - a new Hudson job would do nighly (or otherwise scheduled) builds and run
>> the whole QA suite (very slow)
>>
>> How does that sound to you?
>>
>> Speaking of Hudson, any chance we can get that up and running again? I see
>> nothing has been built in a while.
>>
>> 2010/8/27 Peter Firmstone <ji...@zeus.net.au>
>>
>>
>>
>>> Ok, I'm happy if we do that then, I just want to make sure I'm running
>>> all
>>> the tests I should, that's all, so qa.run should run all categories by
>>> default?
>>>
>>> Peter.
>>>
>>>
>>> Jonathan Costers wrote:
>>>
>>>
>>>
>>>> There is one now already: qa.run
>>>> We just need to pass it more test category names (property
>>>> run.categories)
>>>> by default.
>>>> Maybe I am misunderstanding you?
>>>>
>>>> 2010/8/27 Peter Firmstone <ji...@zeus.net.au>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>> Hi JC,
>>>>>
>>>>> Can we have an ant target for running all the tests?
>>>>>
>>>>> And how about a qa.run.hudson target?
>>>>>
>>>>> I usually use run-categories, to isolate what I'm working on, but we
>>>>> definitely need a target that runs everything that should be, even if
>>>>> it
>>>>> does take overnight.
>>>>>
>>>>> Regards,
>>>>>
>>>>> Peter.
>>>>>
>>>>>
>>>>> Jonathan Costers wrote:
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>> 2010/8/24 Patricia Shanahan <pa...@acm.org>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>> On 8/22/2010 4:57 PM, Peter Firmstone wrote:
>>>>>>> ...
>>>>>>>
>>>>>>>  Thanks Patricia, that's very helpful, I'll figure it out where I
>>>>>>> went
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>> wrong this week, it really shows the importance of full test
>>>>>>>> coverage.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>> ...
>>>>>>>
>>>>>>> I strongly agree that test coverage is important. Accordingly, I've
>>>>>>> done
>>>>>>> some analysis of the "ant qa.run" output.
>>>>>>>
>>>>>>> There are 1059 test description (*.td) files that exist, and are
>>>>>>> loaded
>>>>>>> at
>>>>>>> the start of "ant qa.run", but that do not seem to be run. I've
>>>>>>> extracted
>>>>>>> the top level categories from those files:
>>>>>>>
>>>>>>> constraint
>>>>>>> discoveryproviders_impl
>>>>>>> discoveryservice
>>>>>>> end2end
>>>>>>> eventmailbox
>>>>>>> export_spec
>>>>>>> io
>>>>>>> javaspace
>>>>>>> jeri
>>>>>>> joinmanager
>>>>>>> jrmp
>>>>>>> loader
>>>>>>> locatordiscovery
>>>>>>> lookupdiscovery
>>>>>>> lookupservice
>>>>>>> proxytrust
>>>>>>> reliability
>>>>>>> renewalmanager
>>>>>>> renewalservice
>>>>>>> scalability
>>>>>>> security
>>>>>>> start
>>>>>>> txnmanager
>>>>>>>
>>>>>>> I'm sure some of these tests are obsolete, duplicates of tests in
>>>>>>> categories that are being run, or otherwise inappropriate, but there
>>>>>>> does
>>>>>>> seem to be a rich vein of tests we could mine.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>> The QA harness loads all .td files under the "spec" and "impl"
>>>>>> directories
>>>>>> when starting and only witholds the ones that are tagged with the
>>>>>> categories
>>>>>> that we specify from the Ant target.
>>>>>> Whenever a test is really obsolete or otherwise not supposed to run,
>>>>>> it
>>>>>> is
>>>>>> marked with a "SkipTestVerifier" in its .td file.
>>>>>> Most of these are genuine and should be run though.
>>>>>> There are more categories than the ones you mention above, for
>>>>>> instance:
>>>>>> "spec", "id", "id_spec", etc.
>>>>>> Also, some tests are tagged with multiple categories and as such
>>>>>> duplicates
>>>>>> can exist when assembling the list of tests to run.
>>>>>>
>>>>>> The reason not all of them are run (by Hudson) now is that we give a
>>>>>> specific set of test categories that are known (to me) to run
>>>>>> smoothly.
>>>>>> There are many others that are not run (by default) because issue(s)
>>>>>> are
>>>>>> present with one or more of the tests in that category.
>>>>>>
>>>>>> I completely agree with the fact that we should not exclude complete
>>>>>> test
>>>>>> categories because of one test failing.
>>>>>> What we probably should do is tag any problematic test (due to
>>>>>> infrastructure or other reasons) with a SkipTestVerifier for the time
>>>>>> being
>>>>>> so that it is not taken into account by the QA harness for now.
>>>>>> That way, we can add all test categories to the default Ant run.
>>>>>> However, this would take a large amount of time to run (I've tried it
>>>>>> once,
>>>>>> and killed the process after several days), which brings us to your
>>>>>> next
>>>>>> point:
>>>>>>
>>>>>> Part of the problem may be time to run the tests. I'd like to propose
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>> splitting the tests into two sets:
>>>>>>>
>>>>>>> 1. A small set that one would run in addition to the relevant tests,
>>>>>>> whenever making a small change. It should *not* be based on skipping
>>>>>>> complete categories, but on doing those tests from each category that
>>>>>>> are
>>>>>>> most likely to detect regression, especially regression due to
>>>>>>> changes
>>>>>>> in
>>>>>>> other areas.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>> Completely agree. However, most of the QA tests are not clear unit or
>>>>>> regression tests. They are more integration/conformance tests that
>>>>>> test
>>>>>> the
>>>>>> requirements of the spec and its implementation.
>>>>>> Identifying the list of "right" tests to run as part of the small set
>>>>>> you
>>>>>> mention would require going through all 1059 test descriptions and
>>>>>> their
>>>>>> sources.
>>>>>>
>>>>>> 2. A full test set that may take a lot longer. In many projects, there
>>>>>> is
>>>>>> a
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>> "nightly build" and a test sequence that is run against that build.
>>>>>>> That
>>>>>>> test sequence can take up to 24 hours to run, and should be as
>>>>>>> complete
>>>>>>> as
>>>>>>> possible. Does Apache have infrastructure to support this sort of
>>>>>>> operation?
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>> Again, completely agree. I'm sure Apache supports this through Hudson.
>>>>>> We
>>>>>> could request to setup a second build job, doing nightly builds and
>>>>>> running
>>>>>> the whole test suite. Think this is the only way to make running the
>>>>>> complete QA suite automatically practical.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>> Are there any tests that people *know* should not run? I'm thinking
>>>>>>> of
>>>>>>> running the lot just to see what happens, but knowing ones that are
>>>>>>> not
>>>>>>> expected to work would help with result interpretation.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>> See above, tests of that type should have already been tagged to be
>>>>>> skipped
>>>>>> by the good people that donated this test suite.
>>>>>> I've noticed that usually, when a SkipTestVerifier is used in a .td
>>>>>> file,
>>>>>> someone has put some comments in there to explain why it was tagged as
>>>>>> such.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>> Patricia
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>>
>
>

Re: ServiceDiscoveryManager test coverage

Posted by Peter Firmstone <ji...@zeus.net.au>.
Ok, sounds good, I don't have access to Hudson unfortunately though, can 
anyone assist here?

Jonathan Costers wrote:
> Ideally it should, yes. So we get visibility on failures sooner ...
>
> To accomplish that, we need to make a change to the property value of
> run.categories and add the missing categories (I've already added two more
> the last cpl days).
> However, adding all other categories to the run.categories property will
> make our next Hudson builds take a very, very long time.
>
> So, as proposed above, we could (request to) setup a separate Hudson job
> that does this complete test run nightly, instead of triggered by SVN
> changes.
> - the current Hudson job would build triggered by SVN changes and run some
> unit tests and/or some selected QA tests (fast)
> - a new Hudson job would do nighly (or otherwise scheduled) builds and run
> the whole QA suite (very slow)
>
> How does that sound to you?
>
> Speaking of Hudson, any chance we can get that up and running again? I see
> nothing has been built in a while.
>
> 2010/8/27 Peter Firmstone <ji...@zeus.net.au>
>
>   
>> Ok, I'm happy if we do that then, I just want to make sure I'm running all
>> the tests I should, that's all, so qa.run should run all categories by
>> default?
>>
>> Peter.
>>
>>
>> Jonathan Costers wrote:
>>
>>     
>>> There is one now already: qa.run
>>> We just need to pass it more test category names (property run.categories)
>>> by default.
>>> Maybe I am misunderstanding you?
>>>
>>> 2010/8/27 Peter Firmstone <ji...@zeus.net.au>
>>>
>>>
>>>
>>>       
>>>> Hi JC,
>>>>
>>>> Can we have an ant target for running all the tests?
>>>>
>>>> And how about a qa.run.hudson target?
>>>>
>>>> I usually use run-categories, to isolate what I'm working on, but we
>>>> definitely need a target that runs everything that should be, even if it
>>>> does take overnight.
>>>>
>>>> Regards,
>>>>
>>>> Peter.
>>>>
>>>>
>>>> Jonathan Costers wrote:
>>>>
>>>>
>>>>
>>>>         
>>>>> 2010/8/24 Patricia Shanahan <pa...@acm.org>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>           
>>>>>> On 8/22/2010 4:57 PM, Peter Firmstone wrote:
>>>>>> ...
>>>>>>
>>>>>>  Thanks Patricia, that's very helpful, I'll figure it out where I went
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>             
>>>>>>> wrong this week, it really shows the importance of full test coverage.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>               
>>>>>> ...
>>>>>>
>>>>>> I strongly agree that test coverage is important. Accordingly, I've
>>>>>> done
>>>>>> some analysis of the "ant qa.run" output.
>>>>>>
>>>>>> There are 1059 test description (*.td) files that exist, and are loaded
>>>>>> at
>>>>>> the start of "ant qa.run", but that do not seem to be run. I've
>>>>>> extracted
>>>>>> the top level categories from those files:
>>>>>>
>>>>>> constraint
>>>>>> discoveryproviders_impl
>>>>>> discoveryservice
>>>>>> end2end
>>>>>> eventmailbox
>>>>>> export_spec
>>>>>> io
>>>>>> javaspace
>>>>>> jeri
>>>>>> joinmanager
>>>>>> jrmp
>>>>>> loader
>>>>>> locatordiscovery
>>>>>> lookupdiscovery
>>>>>> lookupservice
>>>>>> proxytrust
>>>>>> reliability
>>>>>> renewalmanager
>>>>>> renewalservice
>>>>>> scalability
>>>>>> security
>>>>>> start
>>>>>> txnmanager
>>>>>>
>>>>>> I'm sure some of these tests are obsolete, duplicates of tests in
>>>>>> categories that are being run, or otherwise inappropriate, but there
>>>>>> does
>>>>>> seem to be a rich vein of tests we could mine.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>             
>>>>> The QA harness loads all .td files under the "spec" and "impl"
>>>>> directories
>>>>> when starting and only witholds the ones that are tagged with the
>>>>> categories
>>>>> that we specify from the Ant target.
>>>>> Whenever a test is really obsolete or otherwise not supposed to run, it
>>>>> is
>>>>> marked with a "SkipTestVerifier" in its .td file.
>>>>> Most of these are genuine and should be run though.
>>>>> There are more categories than the ones you mention above, for instance:
>>>>> "spec", "id", "id_spec", etc.
>>>>> Also, some tests are tagged with multiple categories and as such
>>>>> duplicates
>>>>> can exist when assembling the list of tests to run.
>>>>>
>>>>> The reason not all of them are run (by Hudson) now is that we give a
>>>>> specific set of test categories that are known (to me) to run smoothly.
>>>>> There are many others that are not run (by default) because issue(s) are
>>>>> present with one or more of the tests in that category.
>>>>>
>>>>> I completely agree with the fact that we should not exclude complete
>>>>> test
>>>>> categories because of one test failing.
>>>>> What we probably should do is tag any problematic test (due to
>>>>> infrastructure or other reasons) with a SkipTestVerifier for the time
>>>>> being
>>>>> so that it is not taken into account by the QA harness for now.
>>>>> That way, we can add all test categories to the default Ant run.
>>>>> However, this would take a large amount of time to run (I've tried it
>>>>> once,
>>>>> and killed the process after several days), which brings us to your next
>>>>> point:
>>>>>
>>>>> Part of the problem may be time to run the tests. I'd like to propose
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>           
>>>>>> splitting the tests into two sets:
>>>>>>
>>>>>> 1. A small set that one would run in addition to the relevant tests,
>>>>>> whenever making a small change. It should *not* be based on skipping
>>>>>> complete categories, but on doing those tests from each category that
>>>>>> are
>>>>>> most likely to detect regression, especially regression due to changes
>>>>>> in
>>>>>> other areas.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>             
>>>>> Completely agree. However, most of the QA tests are not clear unit or
>>>>> regression tests. They are more integration/conformance tests that test
>>>>> the
>>>>> requirements of the spec and its implementation.
>>>>> Identifying the list of "right" tests to run as part of the small set
>>>>> you
>>>>> mention would require going through all 1059 test descriptions and their
>>>>> sources.
>>>>>
>>>>> 2. A full test set that may take a lot longer. In many projects, there
>>>>> is
>>>>> a
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>           
>>>>>> "nightly build" and a test sequence that is run against that build.
>>>>>> That
>>>>>> test sequence can take up to 24 hours to run, and should be as complete
>>>>>> as
>>>>>> possible. Does Apache have infrastructure to support this sort of
>>>>>> operation?
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>             
>>>>> Again, completely agree. I'm sure Apache supports this through Hudson.
>>>>> We
>>>>> could request to setup a second build job, doing nightly builds and
>>>>> running
>>>>> the whole test suite. Think this is the only way to make running the
>>>>> complete QA suite automatically practical.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>           
>>>>>> Are there any tests that people *know* should not run? I'm thinking of
>>>>>> running the lot just to see what happens, but knowing ones that are not
>>>>>> expected to work would help with result interpretation.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>             
>>>>> See above, tests of that type should have already been tagged to be
>>>>> skipped
>>>>> by the good people that donated this test suite.
>>>>> I've noticed that usually, when a SkipTestVerifier is used in a .td
>>>>> file,
>>>>> someone has put some comments in there to explain why it was tagged as
>>>>> such.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>           
>>>>>> Patricia
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>             
>>>>>
>>>>>           
>>>>         
>>>
>>>       
>>     
>
>   


Re: ServiceDiscoveryManager test coverage

Posted by Jonathan Costers <jo...@googlemail.com>.
Ideally it should, yes. So we get visibility on failures sooner ...

To accomplish that, we need to make a change to the property value of
run.categories and add the missing categories (I've already added two more
the last cpl days).
However, adding all other categories to the run.categories property will
make our next Hudson builds take a very, very long time.

So, as proposed above, we could (request to) setup a separate Hudson job
that does this complete test run nightly, instead of triggered by SVN
changes.
- the current Hudson job would build triggered by SVN changes and run some
unit tests and/or some selected QA tests (fast)
- a new Hudson job would do nighly (or otherwise scheduled) builds and run
the whole QA suite (very slow)

How does that sound to you?

Speaking of Hudson, any chance we can get that up and running again? I see
nothing has been built in a while.

2010/8/27 Peter Firmstone <ji...@zeus.net.au>

> Ok, I'm happy if we do that then, I just want to make sure I'm running all
> the tests I should, that's all, so qa.run should run all categories by
> default?
>
> Peter.
>
>
> Jonathan Costers wrote:
>
>> There is one now already: qa.run
>> We just need to pass it more test category names (property run.categories)
>> by default.
>> Maybe I am misunderstanding you?
>>
>> 2010/8/27 Peter Firmstone <ji...@zeus.net.au>
>>
>>
>>
>>> Hi JC,
>>>
>>> Can we have an ant target for running all the tests?
>>>
>>> And how about a qa.run.hudson target?
>>>
>>> I usually use run-categories, to isolate what I'm working on, but we
>>> definitely need a target that runs everything that should be, even if it
>>> does take overnight.
>>>
>>> Regards,
>>>
>>> Peter.
>>>
>>>
>>> Jonathan Costers wrote:
>>>
>>>
>>>
>>>> 2010/8/24 Patricia Shanahan <pa...@acm.org>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>> On 8/22/2010 4:57 PM, Peter Firmstone wrote:
>>>>> ...
>>>>>
>>>>>  Thanks Patricia, that's very helpful, I'll figure it out where I went
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>> wrong this week, it really shows the importance of full test coverage.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>> ...
>>>>>
>>>>> I strongly agree that test coverage is important. Accordingly, I've
>>>>> done
>>>>> some analysis of the "ant qa.run" output.
>>>>>
>>>>> There are 1059 test description (*.td) files that exist, and are loaded
>>>>> at
>>>>> the start of "ant qa.run", but that do not seem to be run. I've
>>>>> extracted
>>>>> the top level categories from those files:
>>>>>
>>>>> constraint
>>>>> discoveryproviders_impl
>>>>> discoveryservice
>>>>> end2end
>>>>> eventmailbox
>>>>> export_spec
>>>>> io
>>>>> javaspace
>>>>> jeri
>>>>> joinmanager
>>>>> jrmp
>>>>> loader
>>>>> locatordiscovery
>>>>> lookupdiscovery
>>>>> lookupservice
>>>>> proxytrust
>>>>> reliability
>>>>> renewalmanager
>>>>> renewalservice
>>>>> scalability
>>>>> security
>>>>> start
>>>>> txnmanager
>>>>>
>>>>> I'm sure some of these tests are obsolete, duplicates of tests in
>>>>> categories that are being run, or otherwise inappropriate, but there
>>>>> does
>>>>> seem to be a rich vein of tests we could mine.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>> The QA harness loads all .td files under the "spec" and "impl"
>>>> directories
>>>> when starting and only witholds the ones that are tagged with the
>>>> categories
>>>> that we specify from the Ant target.
>>>> Whenever a test is really obsolete or otherwise not supposed to run, it
>>>> is
>>>> marked with a "SkipTestVerifier" in its .td file.
>>>> Most of these are genuine and should be run though.
>>>> There are more categories than the ones you mention above, for instance:
>>>> "spec", "id", "id_spec", etc.
>>>> Also, some tests are tagged with multiple categories and as such
>>>> duplicates
>>>> can exist when assembling the list of tests to run.
>>>>
>>>> The reason not all of them are run (by Hudson) now is that we give a
>>>> specific set of test categories that are known (to me) to run smoothly.
>>>> There are many others that are not run (by default) because issue(s) are
>>>> present with one or more of the tests in that category.
>>>>
>>>> I completely agree with the fact that we should not exclude complete
>>>> test
>>>> categories because of one test failing.
>>>> What we probably should do is tag any problematic test (due to
>>>> infrastructure or other reasons) with a SkipTestVerifier for the time
>>>> being
>>>> so that it is not taken into account by the QA harness for now.
>>>> That way, we can add all test categories to the default Ant run.
>>>> However, this would take a large amount of time to run (I've tried it
>>>> once,
>>>> and killed the process after several days), which brings us to your next
>>>> point:
>>>>
>>>> Part of the problem may be time to run the tests. I'd like to propose
>>>>
>>>>
>>>>
>>>>
>>>>> splitting the tests into two sets:
>>>>>
>>>>> 1. A small set that one would run in addition to the relevant tests,
>>>>> whenever making a small change. It should *not* be based on skipping
>>>>> complete categories, but on doing those tests from each category that
>>>>> are
>>>>> most likely to detect regression, especially regression due to changes
>>>>> in
>>>>> other areas.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>> Completely agree. However, most of the QA tests are not clear unit or
>>>> regression tests. They are more integration/conformance tests that test
>>>> the
>>>> requirements of the spec and its implementation.
>>>> Identifying the list of "right" tests to run as part of the small set
>>>> you
>>>> mention would require going through all 1059 test descriptions and their
>>>> sources.
>>>>
>>>> 2. A full test set that may take a lot longer. In many projects, there
>>>> is
>>>> a
>>>>
>>>>
>>>>
>>>>
>>>>> "nightly build" and a test sequence that is run against that build.
>>>>> That
>>>>> test sequence can take up to 24 hours to run, and should be as complete
>>>>> as
>>>>> possible. Does Apache have infrastructure to support this sort of
>>>>> operation?
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>> Again, completely agree. I'm sure Apache supports this through Hudson.
>>>> We
>>>> could request to setup a second build job, doing nightly builds and
>>>> running
>>>> the whole test suite. Think this is the only way to make running the
>>>> complete QA suite automatically practical.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>> Are there any tests that people *know* should not run? I'm thinking of
>>>>> running the lot just to see what happens, but knowing ones that are not
>>>>> expected to work would help with result interpretation.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>> See above, tests of that type should have already been tagged to be
>>>> skipped
>>>> by the good people that donated this test suite.
>>>> I've noticed that usually, when a SkipTestVerifier is used in a .td
>>>> file,
>>>> someone has put some comments in there to explain why it was tagged as
>>>> such.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>> Patricia
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>>
>
>

Re: ServiceDiscoveryManager test coverage

Posted by Peter Firmstone <ji...@zeus.net.au>.
Ok, I'm happy if we do that then, I just want to make sure I'm running 
all the tests I should, that's all, so qa.run should run all categories 
by default?

Peter.

Jonathan Costers wrote:
> There is one now already: qa.run
> We just need to pass it more test category names (property run.categories)
> by default.
> Maybe I am misunderstanding you?
>
> 2010/8/27 Peter Firmstone <ji...@zeus.net.au>
>
>   
>> Hi JC,
>>
>> Can we have an ant target for running all the tests?
>>
>> And how about a qa.run.hudson target?
>>
>> I usually use run-categories, to isolate what I'm working on, but we
>> definitely need a target that runs everything that should be, even if it
>> does take overnight.
>>
>> Regards,
>>
>> Peter.
>>
>>
>> Jonathan Costers wrote:
>>
>>     
>>> 2010/8/24 Patricia Shanahan <pa...@acm.org>
>>>
>>>
>>>
>>>       
>>>> On 8/22/2010 4:57 PM, Peter Firmstone wrote:
>>>> ...
>>>>
>>>>  Thanks Patricia, that's very helpful, I'll figure it out where I went
>>>>
>>>>
>>>>         
>>>>> wrong this week, it really shows the importance of full test coverage.
>>>>>
>>>>>
>>>>>
>>>>>           
>>>> ...
>>>>
>>>> I strongly agree that test coverage is important. Accordingly, I've done
>>>> some analysis of the "ant qa.run" output.
>>>>
>>>> There are 1059 test description (*.td) files that exist, and are loaded
>>>> at
>>>> the start of "ant qa.run", but that do not seem to be run. I've extracted
>>>> the top level categories from those files:
>>>>
>>>> constraint
>>>> discoveryproviders_impl
>>>> discoveryservice
>>>> end2end
>>>> eventmailbox
>>>> export_spec
>>>> io
>>>> javaspace
>>>> jeri
>>>> joinmanager
>>>> jrmp
>>>> loader
>>>> locatordiscovery
>>>> lookupdiscovery
>>>> lookupservice
>>>> proxytrust
>>>> reliability
>>>> renewalmanager
>>>> renewalservice
>>>> scalability
>>>> security
>>>> start
>>>> txnmanager
>>>>
>>>> I'm sure some of these tests are obsolete, duplicates of tests in
>>>> categories that are being run, or otherwise inappropriate, but there does
>>>> seem to be a rich vein of tests we could mine.
>>>>
>>>>
>>>>
>>>>         
>>> The QA harness loads all .td files under the "spec" and "impl" directories
>>> when starting and only witholds the ones that are tagged with the
>>> categories
>>> that we specify from the Ant target.
>>> Whenever a test is really obsolete or otherwise not supposed to run, it is
>>> marked with a "SkipTestVerifier" in its .td file.
>>> Most of these are genuine and should be run though.
>>> There are more categories than the ones you mention above, for instance:
>>> "spec", "id", "id_spec", etc.
>>> Also, some tests are tagged with multiple categories and as such
>>> duplicates
>>> can exist when assembling the list of tests to run.
>>>
>>> The reason not all of them are run (by Hudson) now is that we give a
>>> specific set of test categories that are known (to me) to run smoothly.
>>> There are many others that are not run (by default) because issue(s) are
>>> present with one or more of the tests in that category.
>>>
>>> I completely agree with the fact that we should not exclude complete test
>>> categories because of one test failing.
>>> What we probably should do is tag any problematic test (due to
>>> infrastructure or other reasons) with a SkipTestVerifier for the time
>>> being
>>> so that it is not taken into account by the QA harness for now.
>>> That way, we can add all test categories to the default Ant run.
>>> However, this would take a large amount of time to run (I've tried it
>>> once,
>>> and killed the process after several days), which brings us to your next
>>> point:
>>>
>>> Part of the problem may be time to run the tests. I'd like to propose
>>>
>>>
>>>       
>>>> splitting the tests into two sets:
>>>>
>>>> 1. A small set that one would run in addition to the relevant tests,
>>>> whenever making a small change. It should *not* be based on skipping
>>>> complete categories, but on doing those tests from each category that are
>>>> most likely to detect regression, especially regression due to changes in
>>>> other areas.
>>>>
>>>>
>>>>
>>>>         
>>> Completely agree. However, most of the QA tests are not clear unit or
>>> regression tests. They are more integration/conformance tests that test
>>> the
>>> requirements of the spec and its implementation.
>>> Identifying the list of "right" tests to run as part of the small set you
>>> mention would require going through all 1059 test descriptions and their
>>> sources.
>>>
>>> 2. A full test set that may take a lot longer. In many projects, there is
>>> a
>>>
>>>
>>>       
>>>> "nightly build" and a test sequence that is run against that build. That
>>>> test sequence can take up to 24 hours to run, and should be as complete
>>>> as
>>>> possible. Does Apache have infrastructure to support this sort of
>>>> operation?
>>>>
>>>>
>>>>
>>>>         
>>> Again, completely agree. I'm sure Apache supports this through Hudson. We
>>> could request to setup a second build job, doing nightly builds and
>>> running
>>> the whole test suite. Think this is the only way to make running the
>>> complete QA suite automatically practical.
>>>
>>>
>>>
>>>
>>>       
>>>> Are there any tests that people *know* should not run? I'm thinking of
>>>> running the lot just to see what happens, but knowing ones that are not
>>>> expected to work would help with result interpretation.
>>>>
>>>>
>>>>
>>>>         
>>> See above, tests of that type should have already been tagged to be
>>> skipped
>>> by the good people that donated this test suite.
>>> I've noticed that usually, when a SkipTestVerifier is used in a .td file,
>>> someone has put some comments in there to explain why it was tagged as
>>> such.
>>>
>>>
>>>
>>>
>>>       
>>>> Patricia
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>         
>>>
>>>       
>>     
>
>   


Re: ServiceDiscoveryManager test coverage

Posted by Jonathan Costers <jo...@googlemail.com>.
There is one now already: qa.run
We just need to pass it more test category names (property run.categories)
by default.
Maybe I am misunderstanding you?

2010/8/27 Peter Firmstone <ji...@zeus.net.au>

> Hi JC,
>
> Can we have an ant target for running all the tests?
>
> And how about a qa.run.hudson target?
>
> I usually use run-categories, to isolate what I'm working on, but we
> definitely need a target that runs everything that should be, even if it
> does take overnight.
>
> Regards,
>
> Peter.
>
>
> Jonathan Costers wrote:
>
>> 2010/8/24 Patricia Shanahan <pa...@acm.org>
>>
>>
>>
>>> On 8/22/2010 4:57 PM, Peter Firmstone wrote:
>>> ...
>>>
>>>  Thanks Patricia, that's very helpful, I'll figure it out where I went
>>>
>>>
>>>> wrong this week, it really shows the importance of full test coverage.
>>>>
>>>>
>>>>
>>> ...
>>>
>>> I strongly agree that test coverage is important. Accordingly, I've done
>>> some analysis of the "ant qa.run" output.
>>>
>>> There are 1059 test description (*.td) files that exist, and are loaded
>>> at
>>> the start of "ant qa.run", but that do not seem to be run. I've extracted
>>> the top level categories from those files:
>>>
>>> constraint
>>> discoveryproviders_impl
>>> discoveryservice
>>> end2end
>>> eventmailbox
>>> export_spec
>>> io
>>> javaspace
>>> jeri
>>> joinmanager
>>> jrmp
>>> loader
>>> locatordiscovery
>>> lookupdiscovery
>>> lookupservice
>>> proxytrust
>>> reliability
>>> renewalmanager
>>> renewalservice
>>> scalability
>>> security
>>> start
>>> txnmanager
>>>
>>> I'm sure some of these tests are obsolete, duplicates of tests in
>>> categories that are being run, or otherwise inappropriate, but there does
>>> seem to be a rich vein of tests we could mine.
>>>
>>>
>>>
>>
>> The QA harness loads all .td files under the "spec" and "impl" directories
>> when starting and only witholds the ones that are tagged with the
>> categories
>> that we specify from the Ant target.
>> Whenever a test is really obsolete or otherwise not supposed to run, it is
>> marked with a "SkipTestVerifier" in its .td file.
>> Most of these are genuine and should be run though.
>> There are more categories than the ones you mention above, for instance:
>> "spec", "id", "id_spec", etc.
>> Also, some tests are tagged with multiple categories and as such
>> duplicates
>> can exist when assembling the list of tests to run.
>>
>> The reason not all of them are run (by Hudson) now is that we give a
>> specific set of test categories that are known (to me) to run smoothly.
>> There are many others that are not run (by default) because issue(s) are
>> present with one or more of the tests in that category.
>>
>> I completely agree with the fact that we should not exclude complete test
>> categories because of one test failing.
>> What we probably should do is tag any problematic test (due to
>> infrastructure or other reasons) with a SkipTestVerifier for the time
>> being
>> so that it is not taken into account by the QA harness for now.
>> That way, we can add all test categories to the default Ant run.
>> However, this would take a large amount of time to run (I've tried it
>> once,
>> and killed the process after several days), which brings us to your next
>> point:
>>
>> Part of the problem may be time to run the tests. I'd like to propose
>>
>>
>>> splitting the tests into two sets:
>>>
>>> 1. A small set that one would run in addition to the relevant tests,
>>> whenever making a small change. It should *not* be based on skipping
>>> complete categories, but on doing those tests from each category that are
>>> most likely to detect regression, especially regression due to changes in
>>> other areas.
>>>
>>>
>>>
>>
>> Completely agree. However, most of the QA tests are not clear unit or
>> regression tests. They are more integration/conformance tests that test
>> the
>> requirements of the spec and its implementation.
>> Identifying the list of "right" tests to run as part of the small set you
>> mention would require going through all 1059 test descriptions and their
>> sources.
>>
>> 2. A full test set that may take a lot longer. In many projects, there is
>> a
>>
>>
>>> "nightly build" and a test sequence that is run against that build. That
>>> test sequence can take up to 24 hours to run, and should be as complete
>>> as
>>> possible. Does Apache have infrastructure to support this sort of
>>> operation?
>>>
>>>
>>>
>>
>> Again, completely agree. I'm sure Apache supports this through Hudson. We
>> could request to setup a second build job, doing nightly builds and
>> running
>> the whole test suite. Think this is the only way to make running the
>> complete QA suite automatically practical.
>>
>>
>>
>>
>>> Are there any tests that people *know* should not run? I'm thinking of
>>> running the lot just to see what happens, but knowing ones that are not
>>> expected to work would help with result interpretation.
>>>
>>>
>>>
>>
>> See above, tests of that type should have already been tagged to be
>> skipped
>> by the good people that donated this test suite.
>> I've noticed that usually, when a SkipTestVerifier is used in a .td file,
>> someone has put some comments in there to explain why it was tagged as
>> such.
>>
>>
>>
>>
>>> Patricia
>>>
>>>
>>>
>>>
>>>
>>
>>
>>
>
>

Re: ServiceDiscoveryManager test coverage

Posted by Jonathan Costers <jo...@googlemail.com>.
By default, qa.run will log at INFO level (which is what I used for the bulk
run above).

What I do when I need more logging, is specify my own logging.properties
file for that, based upon what is in qa1.logging, and fine tune my logging
settings depending on what I am testing.

in your build.properties:
log.config=/home/jonathan/logging.properties

for instance.

2010/8/27 Patricia Shanahan <pa...@acm.org>

> Excellent! Once the servicediscovery regression is fixed that can be added.
>
> Do you run your tests with logging enabled, and if so at what level? I have
> a specific coverage issue involving JoinManager and RetryTask. As far as I
> can tell, we are not testing what happens when a RetryTask has to do a
> Retry, and I believe tasks can get out of order in undesirable ways when
> that happens. If retries are being tests, at the FINEST logging level we
> would see messages from RetryTask containing "retry of".
>
> I would like to know about any tests that produce those messages.
>
> Patricia
>
>
>
>
>
> On 8/27/2010 3:29 AM, Jonathan Costers wrote:
>
>> I just ran the set of tests that are currently being selected when
>> executing
>> the qa.run target, after I added a couple more categories:
>>
>> # of tests started   = 497
>> # of tests completed = 497
>> # of tests skipped   = 21
>> # of tests passed    = 497
>> # of tests failed    = 0
>>
>> -----------------------------------------
>>
>>    Date finished:
>>       Fri Aug 27 12:21:04 CEST 2010
>>    Time elapsed:
>>       27258 seconds
>>
>> BUILD SUCCESSFUL (total time: 454 minutes 20 seconds)
>>
>> The categories that are run are:
>>
>> id,loader,policyprovider,locatordiscovery,activation,config,discoverymanager,joinmanager,url,iiop,jrmp,reliability,thread,renewalmanager,constraint,export,lookupdiscovery
>>
>> Looks like we almost have 50% coverage now (about 500 tests out of 1000+).
>>
>> On my system (an Intel Quad Core with 4GB of memory), this took 7-8 hours
>> to
>> run.
>>
>> 2010/8/27 Patricia Shanahan<pa...@acm.org>
>>
>>  That would be ideal. However, an infrequent run of a very large test set
>>> can be managed manually, with check lists.
>>>
>>> Patricia
>>>
>>>
>>>
>>> Jonathan Costers wrote:
>>>
>>>  The QA harness is also supposed to be able to work in distributed mode,
>>>> i.e.
>>>> having multiple machines work together on one test run (splitting the
>>>> work
>>>> so to speak).
>>>> I haven't looked into that feature too much though.
>>>>
>>>> 2010/8/27 Patricia Shanahan<pa...@acm.org>
>>>>
>>>>  Based on some experiments, I am convinced a full run may take more than
>>>>
>>>>> 24
>>>>> hours, so even that may have to be selective. Jonathan Costers reports
>>>>> killing a full run after several days. We may need three targets, in
>>>>> addition to problem-specific categories:
>>>>>
>>>>> 1. A quick test that one would do, for example, after checking out and
>>>>> building.
>>>>>
>>>>> 2. A more substantive test that would run in less than 24 hours, to do
>>>>> each
>>>>> day.
>>>>>
>>>>> 3. A complete test that might take several machine-days, and that would
>>>>> be
>>>>> run against a release candidate prior to release.
>>>>>
>>>>> Note that even if a test sequence takes several machine-days, that does
>>>>> not
>>>>> necessarily mean days of elapsed time. Maybe some tests can be run in
>>>>> parallel under the same OS copy. Even if that is not possible, we may
>>>>> be
>>>>> able to gang up several physical or virtual machines, each running a
>>>>> subset
>>>>> of the tests.
>>>>>
>>>>> I think virtual machines may work quite well because a lot of the tests
>>>>> do
>>>>> something then wait around a minute or two to see what happens. They
>>>>> are
>>>>> not
>>>>> very intensive resource users.
>>>>>
>>>>> Patricia
>>>>>
>>>>>
>>>>>
>>>>> Peter Firmstone wrote:
>>>>>
>>>>>  Hi JC,
>>>>>
>>>>>>
>>>>>> Can we have an ant target for running all the tests?
>>>>>>
>>>>>> And how about a qa.run.hudson target?
>>>>>>
>>>>>> I usually use run-categories, to isolate what I'm working on, but we
>>>>>> definitely need a target that runs everything that should be, even if
>>>>>> it
>>>>>> does take overnight.
>>>>>>
>>>>>> Regards,
>>>>>>
>>>>>> Peter.
>>>>>>
>>>>>> Jonathan Costers wrote:
>>>>>>
>>>>>>  2010/8/24 Patricia Shanahan<pa...@acm.org>
>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>  On 8/22/2010 4:57 PM, Peter Firmstone wrote:
>>>>>>>
>>>>>>>> ...
>>>>>>>>
>>>>>>>>  Thanks Patricia, that's very helpful, I'll figure it out where I
>>>>>>>> went
>>>>>>>>
>>>>>>>>
>>>>>>>>  wrong this week, it really shows the importance of full test
>>>>>>>>
>>>>>>>>> coverage.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>  ...
>>>>>>>>>
>>>>>>>>
>>>>>>>> I strongly agree that test coverage is important. Accordingly, I've
>>>>>>>> done
>>>>>>>> some analysis of the "ant qa.run" output.
>>>>>>>>
>>>>>>>> There are 1059 test description (*.td) files that exist, and are
>>>>>>>> loaded
>>>>>>>> at
>>>>>>>> the start of "ant qa.run", but that do not seem to be run. I've
>>>>>>>> extracted
>>>>>>>> the top level categories from those files:
>>>>>>>>
>>>>>>>> constraint
>>>>>>>> discoveryproviders_impl
>>>>>>>> discoveryservice
>>>>>>>> end2end
>>>>>>>> eventmailbox
>>>>>>>> export_spec
>>>>>>>> io
>>>>>>>> javaspace
>>>>>>>> jeri
>>>>>>>> joinmanager
>>>>>>>> jrmp
>>>>>>>> loader
>>>>>>>> locatordiscovery
>>>>>>>> lookupdiscovery
>>>>>>>> lookupservice
>>>>>>>> proxytrust
>>>>>>>> reliability
>>>>>>>> renewalmanager
>>>>>>>> renewalservice
>>>>>>>> scalability
>>>>>>>> security
>>>>>>>> start
>>>>>>>> txnmanager
>>>>>>>>
>>>>>>>> I'm sure some of these tests are obsolete, duplicates of tests in
>>>>>>>> categories that are being run, or otherwise inappropriate, but there
>>>>>>>> does
>>>>>>>> seem to be a rich vein of tests we could mine.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>  The QA harness loads all .td files under the "spec" and "impl"
>>>>>>>>
>>>>>>> directories
>>>>>>> when starting and only witholds the ones that are tagged with the
>>>>>>> categories
>>>>>>> that we specify from the Ant target.
>>>>>>> Whenever a test is really obsolete or otherwise not supposed to run,
>>>>>>> it
>>>>>>> is
>>>>>>> marked with a "SkipTestVerifier" in its .td file.
>>>>>>> Most of these are genuine and should be run though.
>>>>>>> There are more categories than the ones you mention above, for
>>>>>>> instance:
>>>>>>> "spec", "id", "id_spec", etc.
>>>>>>> Also, some tests are tagged with multiple categories and as such
>>>>>>> duplicates
>>>>>>> can exist when assembling the list of tests to run.
>>>>>>>
>>>>>>> The reason not all of them are run (by Hudson) now is that we give a
>>>>>>> specific set of test categories that are known (to me) to run
>>>>>>> smoothly.
>>>>>>> There are many others that are not run (by default) because issue(s)
>>>>>>> are
>>>>>>> present with one or more of the tests in that category.
>>>>>>>
>>>>>>> I completely agree with the fact that we should not exclude complete
>>>>>>> test
>>>>>>> categories because of one test failing.
>>>>>>> What we probably should do is tag any problematic test (due to
>>>>>>> infrastructure or other reasons) with a SkipTestVerifier for the time
>>>>>>> being
>>>>>>> so that it is not taken into account by the QA harness for now.
>>>>>>> That way, we can add all test categories to the default Ant run.
>>>>>>> However, this would take a large amount of time to run (I've tried it
>>>>>>> once,
>>>>>>> and killed the process after several days), which brings us to your
>>>>>>> next
>>>>>>> point:
>>>>>>>
>>>>>>> Part of the problem may be time to run the tests. I'd like to propose
>>>>>>>
>>>>>>>
>>>>>>>  splitting the tests into two sets:
>>>>>>>
>>>>>>>>
>>>>>>>> 1. A small set that one would run in addition to the relevant tests,
>>>>>>>> whenever making a small change. It should *not* be based on skipping
>>>>>>>> complete categories, but on doing those tests from each category
>>>>>>>> that
>>>>>>>> are
>>>>>>>> most likely to detect regression, especially regression due to
>>>>>>>> changes
>>>>>>>> in
>>>>>>>> other areas.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>  Completely agree. However, most of the QA tests are not clear unit
>>>>>>>> or
>>>>>>>>
>>>>>>> regression tests. They are more integration/conformance tests that
>>>>>>> test
>>>>>>> the
>>>>>>> requirements of the spec and its implementation.
>>>>>>> Identifying the list of "right" tests to run as part of the small set
>>>>>>> you
>>>>>>> mention would require going through all 1059 test descriptions and
>>>>>>> their
>>>>>>> sources.
>>>>>>>
>>>>>>> 2. A full test set that may take a lot longer. In many projects,
>>>>>>> there
>>>>>>> is
>>>>>>> a
>>>>>>>
>>>>>>>
>>>>>>>  "nightly build" and a test sequence that is run against that build.
>>>>>>>
>>>>>>>> That
>>>>>>>> test sequence can take up to 24 hours to run, and should be as
>>>>>>>> complete
>>>>>>>> as
>>>>>>>> possible. Does Apache have infrastructure to support this sort of
>>>>>>>> operation?
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>  Again, completely agree. I'm sure Apache supports this through
>>>>>>>>
>>>>>>> Hudson. We
>>>>>>> could request to setup a second build job, doing nightly builds and
>>>>>>> running
>>>>>>> the whole test suite. Think this is the only way to make running the
>>>>>>> complete QA suite automatically practical.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>  Are there any tests that people *know* should not run? I'm thinking
>>>>>>> of
>>>>>>>
>>>>>>>> running the lot just to see what happens, but knowing ones that are
>>>>>>>> not
>>>>>>>> expected to work would help with result interpretation.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>  See above, tests of that type should have already been tagged to be
>>>>>>>>
>>>>>>> skipped
>>>>>>> by the good people that donated this test suite.
>>>>>>> I've noticed that usually, when a SkipTestVerifier is used in a .td
>>>>>>> file,
>>>>>>> someone has put some comments in there to explain why it was tagged
>>>>>>> as
>>>>>>> such.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>  Patricia
>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>
>>>
>>
>

Re: ServiceDiscoveryManager test coverage

Posted by Patricia Shanahan <pa...@acm.org>.
Excellent! Once the servicediscovery regression is fixed that can be added.

Do you run your tests with logging enabled, and if so at what level? I 
have a specific coverage issue involving JoinManager and RetryTask. As 
far as I can tell, we are not testing what happens when a RetryTask has 
to do a Retry, and I believe tasks can get out of order in undesirable 
ways when that happens. If retries are being tests, at the FINEST 
logging level we would see messages from RetryTask containing "retry of".

I would like to know about any tests that produce those messages.

Patricia




On 8/27/2010 3:29 AM, Jonathan Costers wrote:
> I just ran the set of tests that are currently being selected when executing
> the qa.run target, after I added a couple more categories:
>
> # of tests started   = 497
> # of tests completed = 497
> # of tests skipped   = 21
> # of tests passed    = 497
> # of tests failed    = 0
>
> -----------------------------------------
>
>     Date finished:
>        Fri Aug 27 12:21:04 CEST 2010
>     Time elapsed:
>        27258 seconds
>
> BUILD SUCCESSFUL (total time: 454 minutes 20 seconds)
>
> The categories that are run are:
> id,loader,policyprovider,locatordiscovery,activation,config,discoverymanager,joinmanager,url,iiop,jrmp,reliability,thread,renewalmanager,constraint,export,lookupdiscovery
>
> Looks like we almost have 50% coverage now (about 500 tests out of 1000+).
>
> On my system (an Intel Quad Core with 4GB of memory), this took 7-8 hours to
> run.
>
> 2010/8/27 Patricia Shanahan<pa...@acm.org>
>
>> That would be ideal. However, an infrequent run of a very large test set
>> can be managed manually, with check lists.
>>
>> Patricia
>>
>>
>>
>> Jonathan Costers wrote:
>>
>>> The QA harness is also supposed to be able to work in distributed mode,
>>> i.e.
>>> having multiple machines work together on one test run (splitting the work
>>> so to speak).
>>> I haven't looked into that feature too much though.
>>>
>>> 2010/8/27 Patricia Shanahan<pa...@acm.org>
>>>
>>>   Based on some experiments, I am convinced a full run may take more than
>>>> 24
>>>> hours, so even that may have to be selective. Jonathan Costers reports
>>>> killing a full run after several days. We may need three targets, in
>>>> addition to problem-specific categories:
>>>>
>>>> 1. A quick test that one would do, for example, after checking out and
>>>> building.
>>>>
>>>> 2. A more substantive test that would run in less than 24 hours, to do
>>>> each
>>>> day.
>>>>
>>>> 3. A complete test that might take several machine-days, and that would
>>>> be
>>>> run against a release candidate prior to release.
>>>>
>>>> Note that even if a test sequence takes several machine-days, that does
>>>> not
>>>> necessarily mean days of elapsed time. Maybe some tests can be run in
>>>> parallel under the same OS copy. Even if that is not possible, we may be
>>>> able to gang up several physical or virtual machines, each running a
>>>> subset
>>>> of the tests.
>>>>
>>>> I think virtual machines may work quite well because a lot of the tests
>>>> do
>>>> something then wait around a minute or two to see what happens. They are
>>>> not
>>>> very intensive resource users.
>>>>
>>>> Patricia
>>>>
>>>>
>>>>
>>>> Peter Firmstone wrote:
>>>>
>>>>   Hi JC,
>>>>>
>>>>> Can we have an ant target for running all the tests?
>>>>>
>>>>> And how about a qa.run.hudson target?
>>>>>
>>>>> I usually use run-categories, to isolate what I'm working on, but we
>>>>> definitely need a target that runs everything that should be, even if it
>>>>> does take overnight.
>>>>>
>>>>> Regards,
>>>>>
>>>>> Peter.
>>>>>
>>>>> Jonathan Costers wrote:
>>>>>
>>>>>   2010/8/24 Patricia Shanahan<pa...@acm.org>
>>>>>>
>>>>>>
>>>>>>
>>>>>>   On 8/22/2010 4:57 PM, Peter Firmstone wrote:
>>>>>>> ...
>>>>>>>
>>>>>>>   Thanks Patricia, that's very helpful, I'll figure it out where I went
>>>>>>>
>>>>>>>
>>>>>>>   wrong this week, it really shows the importance of full test
>>>>>>>> coverage.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>   ...
>>>>>>>
>>>>>>> I strongly agree that test coverage is important. Accordingly, I've
>>>>>>> done
>>>>>>> some analysis of the "ant qa.run" output.
>>>>>>>
>>>>>>> There are 1059 test description (*.td) files that exist, and are
>>>>>>> loaded
>>>>>>> at
>>>>>>> the start of "ant qa.run", but that do not seem to be run. I've
>>>>>>> extracted
>>>>>>> the top level categories from those files:
>>>>>>>
>>>>>>> constraint
>>>>>>> discoveryproviders_impl
>>>>>>> discoveryservice
>>>>>>> end2end
>>>>>>> eventmailbox
>>>>>>> export_spec
>>>>>>> io
>>>>>>> javaspace
>>>>>>> jeri
>>>>>>> joinmanager
>>>>>>> jrmp
>>>>>>> loader
>>>>>>> locatordiscovery
>>>>>>> lookupdiscovery
>>>>>>> lookupservice
>>>>>>> proxytrust
>>>>>>> reliability
>>>>>>> renewalmanager
>>>>>>> renewalservice
>>>>>>> scalability
>>>>>>> security
>>>>>>> start
>>>>>>> txnmanager
>>>>>>>
>>>>>>> I'm sure some of these tests are obsolete, duplicates of tests in
>>>>>>> categories that are being run, or otherwise inappropriate, but there
>>>>>>> does
>>>>>>> seem to be a rich vein of tests we could mine.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>   The QA harness loads all .td files under the "spec" and "impl"
>>>>>> directories
>>>>>> when starting and only witholds the ones that are tagged with the
>>>>>> categories
>>>>>> that we specify from the Ant target.
>>>>>> Whenever a test is really obsolete or otherwise not supposed to run, it
>>>>>> is
>>>>>> marked with a "SkipTestVerifier" in its .td file.
>>>>>> Most of these are genuine and should be run though.
>>>>>> There are more categories than the ones you mention above, for
>>>>>> instance:
>>>>>> "spec", "id", "id_spec", etc.
>>>>>> Also, some tests are tagged with multiple categories and as such
>>>>>> duplicates
>>>>>> can exist when assembling the list of tests to run.
>>>>>>
>>>>>> The reason not all of them are run (by Hudson) now is that we give a
>>>>>> specific set of test categories that are known (to me) to run smoothly.
>>>>>> There are many others that are not run (by default) because issue(s)
>>>>>> are
>>>>>> present with one or more of the tests in that category.
>>>>>>
>>>>>> I completely agree with the fact that we should not exclude complete
>>>>>> test
>>>>>> categories because of one test failing.
>>>>>> What we probably should do is tag any problematic test (due to
>>>>>> infrastructure or other reasons) with a SkipTestVerifier for the time
>>>>>> being
>>>>>> so that it is not taken into account by the QA harness for now.
>>>>>> That way, we can add all test categories to the default Ant run.
>>>>>> However, this would take a large amount of time to run (I've tried it
>>>>>> once,
>>>>>> and killed the process after several days), which brings us to your
>>>>>> next
>>>>>> point:
>>>>>>
>>>>>> Part of the problem may be time to run the tests. I'd like to propose
>>>>>>
>>>>>>
>>>>>>   splitting the tests into two sets:
>>>>>>>
>>>>>>> 1. A small set that one would run in addition to the relevant tests,
>>>>>>> whenever making a small change. It should *not* be based on skipping
>>>>>>> complete categories, but on doing those tests from each category that
>>>>>>> are
>>>>>>> most likely to detect regression, especially regression due to changes
>>>>>>> in
>>>>>>> other areas.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>   Completely agree. However, most of the QA tests are not clear unit or
>>>>>> regression tests. They are more integration/conformance tests that test
>>>>>> the
>>>>>> requirements of the spec and its implementation.
>>>>>> Identifying the list of "right" tests to run as part of the small set
>>>>>> you
>>>>>> mention would require going through all 1059 test descriptions and
>>>>>> their
>>>>>> sources.
>>>>>>
>>>>>> 2. A full test set that may take a lot longer. In many projects, there
>>>>>> is
>>>>>> a
>>>>>>
>>>>>>
>>>>>>   "nightly build" and a test sequence that is run against that build.
>>>>>>> That
>>>>>>> test sequence can take up to 24 hours to run, and should be as
>>>>>>> complete
>>>>>>> as
>>>>>>> possible. Does Apache have infrastructure to support this sort of
>>>>>>> operation?
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>   Again, completely agree. I'm sure Apache supports this through
>>>>>> Hudson. We
>>>>>> could request to setup a second build job, doing nightly builds and
>>>>>> running
>>>>>> the whole test suite. Think this is the only way to make running the
>>>>>> complete QA suite automatically practical.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>   Are there any tests that people *know* should not run? I'm thinking of
>>>>>>> running the lot just to see what happens, but knowing ones that are
>>>>>>> not
>>>>>>> expected to work would help with result interpretation.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>   See above, tests of that type should have already been tagged to be
>>>>>> skipped
>>>>>> by the good people that donated this test suite.
>>>>>> I've noticed that usually, when a SkipTestVerifier is used in a .td
>>>>>> file,
>>>>>> someone has put some comments in there to explain why it was tagged as
>>>>>> such.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>   Patricia
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>
>>
>


Re: ServiceDiscoveryManager test coverage

Posted by Jonathan Costers <jo...@googlemail.com>.
I just ran the set of tests that are currently being selected when executing
the qa.run target, after I added a couple more categories:

# of tests started   = 497
# of tests completed = 497
# of tests skipped   = 21
# of tests passed    = 497
# of tests failed    = 0

-----------------------------------------

   Date finished:
      Fri Aug 27 12:21:04 CEST 2010
   Time elapsed:
      27258 seconds

BUILD SUCCESSFUL (total time: 454 minutes 20 seconds)

The categories that are run are:
id,loader,policyprovider,locatordiscovery,activation,config,discoverymanager,joinmanager,url,iiop,jrmp,reliability,thread,renewalmanager,constraint,export,lookupdiscovery

Looks like we almost have 50% coverage now (about 500 tests out of 1000+).

On my system (an Intel Quad Core with 4GB of memory), this took 7-8 hours to
run.

2010/8/27 Patricia Shanahan <pa...@acm.org>

> That would be ideal. However, an infrequent run of a very large test set
> can be managed manually, with check lists.
>
> Patricia
>
>
>
> Jonathan Costers wrote:
>
>> The QA harness is also supposed to be able to work in distributed mode,
>> i.e.
>> having multiple machines work together on one test run (splitting the work
>> so to speak).
>> I haven't looked into that feature too much though.
>>
>> 2010/8/27 Patricia Shanahan <pa...@acm.org>
>>
>>  Based on some experiments, I am convinced a full run may take more than
>>> 24
>>> hours, so even that may have to be selective. Jonathan Costers reports
>>> killing a full run after several days. We may need three targets, in
>>> addition to problem-specific categories:
>>>
>>> 1. A quick test that one would do, for example, after checking out and
>>> building.
>>>
>>> 2. A more substantive test that would run in less than 24 hours, to do
>>> each
>>> day.
>>>
>>> 3. A complete test that might take several machine-days, and that would
>>> be
>>> run against a release candidate prior to release.
>>>
>>> Note that even if a test sequence takes several machine-days, that does
>>> not
>>> necessarily mean days of elapsed time. Maybe some tests can be run in
>>> parallel under the same OS copy. Even if that is not possible, we may be
>>> able to gang up several physical or virtual machines, each running a
>>> subset
>>> of the tests.
>>>
>>> I think virtual machines may work quite well because a lot of the tests
>>> do
>>> something then wait around a minute or two to see what happens. They are
>>> not
>>> very intensive resource users.
>>>
>>> Patricia
>>>
>>>
>>>
>>> Peter Firmstone wrote:
>>>
>>>  Hi JC,
>>>>
>>>> Can we have an ant target for running all the tests?
>>>>
>>>> And how about a qa.run.hudson target?
>>>>
>>>> I usually use run-categories, to isolate what I'm working on, but we
>>>> definitely need a target that runs everything that should be, even if it
>>>> does take overnight.
>>>>
>>>> Regards,
>>>>
>>>> Peter.
>>>>
>>>> Jonathan Costers wrote:
>>>>
>>>>  2010/8/24 Patricia Shanahan <pa...@acm.org>
>>>>>
>>>>>
>>>>>
>>>>>  On 8/22/2010 4:57 PM, Peter Firmstone wrote:
>>>>>> ...
>>>>>>
>>>>>>  Thanks Patricia, that's very helpful, I'll figure it out where I went
>>>>>>
>>>>>>
>>>>>>  wrong this week, it really shows the importance of full test
>>>>>>> coverage.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>  ...
>>>>>>
>>>>>> I strongly agree that test coverage is important. Accordingly, I've
>>>>>> done
>>>>>> some analysis of the "ant qa.run" output.
>>>>>>
>>>>>> There are 1059 test description (*.td) files that exist, and are
>>>>>> loaded
>>>>>> at
>>>>>> the start of "ant qa.run", but that do not seem to be run. I've
>>>>>> extracted
>>>>>> the top level categories from those files:
>>>>>>
>>>>>> constraint
>>>>>> discoveryproviders_impl
>>>>>> discoveryservice
>>>>>> end2end
>>>>>> eventmailbox
>>>>>> export_spec
>>>>>> io
>>>>>> javaspace
>>>>>> jeri
>>>>>> joinmanager
>>>>>> jrmp
>>>>>> loader
>>>>>> locatordiscovery
>>>>>> lookupdiscovery
>>>>>> lookupservice
>>>>>> proxytrust
>>>>>> reliability
>>>>>> renewalmanager
>>>>>> renewalservice
>>>>>> scalability
>>>>>> security
>>>>>> start
>>>>>> txnmanager
>>>>>>
>>>>>> I'm sure some of these tests are obsolete, duplicates of tests in
>>>>>> categories that are being run, or otherwise inappropriate, but there
>>>>>> does
>>>>>> seem to be a rich vein of tests we could mine.
>>>>>>
>>>>>>
>>>>>>
>>>>>>  The QA harness loads all .td files under the "spec" and "impl"
>>>>> directories
>>>>> when starting and only witholds the ones that are tagged with the
>>>>> categories
>>>>> that we specify from the Ant target.
>>>>> Whenever a test is really obsolete or otherwise not supposed to run, it
>>>>> is
>>>>> marked with a "SkipTestVerifier" in its .td file.
>>>>> Most of these are genuine and should be run though.
>>>>> There are more categories than the ones you mention above, for
>>>>> instance:
>>>>> "spec", "id", "id_spec", etc.
>>>>> Also, some tests are tagged with multiple categories and as such
>>>>> duplicates
>>>>> can exist when assembling the list of tests to run.
>>>>>
>>>>> The reason not all of them are run (by Hudson) now is that we give a
>>>>> specific set of test categories that are known (to me) to run smoothly.
>>>>> There are many others that are not run (by default) because issue(s)
>>>>> are
>>>>> present with one or more of the tests in that category.
>>>>>
>>>>> I completely agree with the fact that we should not exclude complete
>>>>> test
>>>>> categories because of one test failing.
>>>>> What we probably should do is tag any problematic test (due to
>>>>> infrastructure or other reasons) with a SkipTestVerifier for the time
>>>>> being
>>>>> so that it is not taken into account by the QA harness for now.
>>>>> That way, we can add all test categories to the default Ant run.
>>>>> However, this would take a large amount of time to run (I've tried it
>>>>> once,
>>>>> and killed the process after several days), which brings us to your
>>>>> next
>>>>> point:
>>>>>
>>>>> Part of the problem may be time to run the tests. I'd like to propose
>>>>>
>>>>>
>>>>>  splitting the tests into two sets:
>>>>>>
>>>>>> 1. A small set that one would run in addition to the relevant tests,
>>>>>> whenever making a small change. It should *not* be based on skipping
>>>>>> complete categories, but on doing those tests from each category that
>>>>>> are
>>>>>> most likely to detect regression, especially regression due to changes
>>>>>> in
>>>>>> other areas.
>>>>>>
>>>>>>
>>>>>>
>>>>>>  Completely agree. However, most of the QA tests are not clear unit or
>>>>> regression tests. They are more integration/conformance tests that test
>>>>> the
>>>>> requirements of the spec and its implementation.
>>>>> Identifying the list of "right" tests to run as part of the small set
>>>>> you
>>>>> mention would require going through all 1059 test descriptions and
>>>>> their
>>>>> sources.
>>>>>
>>>>> 2. A full test set that may take a lot longer. In many projects, there
>>>>> is
>>>>> a
>>>>>
>>>>>
>>>>>  "nightly build" and a test sequence that is run against that build.
>>>>>> That
>>>>>> test sequence can take up to 24 hours to run, and should be as
>>>>>> complete
>>>>>> as
>>>>>> possible. Does Apache have infrastructure to support this sort of
>>>>>> operation?
>>>>>>
>>>>>>
>>>>>>
>>>>>>  Again, completely agree. I'm sure Apache supports this through
>>>>> Hudson. We
>>>>> could request to setup a second build job, doing nightly builds and
>>>>> running
>>>>> the whole test suite. Think this is the only way to make running the
>>>>> complete QA suite automatically practical.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>  Are there any tests that people *know* should not run? I'm thinking of
>>>>>> running the lot just to see what happens, but knowing ones that are
>>>>>> not
>>>>>> expected to work would help with result interpretation.
>>>>>>
>>>>>>
>>>>>>
>>>>>>  See above, tests of that type should have already been tagged to be
>>>>> skipped
>>>>> by the good people that donated this test suite.
>>>>> I've noticed that usually, when a SkipTestVerifier is used in a .td
>>>>> file,
>>>>> someone has put some comments in there to explain why it was tagged as
>>>>> such.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>  Patricia
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>
>

Re: ServiceDiscoveryManager test coverage

Posted by Patricia Shanahan <pa...@acm.org>.
That would be ideal. However, an infrequent run of a very large test set 
can be managed manually, with check lists.

Patricia


Jonathan Costers wrote:
> The QA harness is also supposed to be able to work in distributed mode, i.e.
> having multiple machines work together on one test run (splitting the work
> so to speak).
> I haven't looked into that feature too much though.
> 
> 2010/8/27 Patricia Shanahan <pa...@acm.org>
> 
>> Based on some experiments, I am convinced a full run may take more than 24
>> hours, so even that may have to be selective. Jonathan Costers reports
>> killing a full run after several days. We may need three targets, in
>> addition to problem-specific categories:
>>
>> 1. A quick test that one would do, for example, after checking out and
>> building.
>>
>> 2. A more substantive test that would run in less than 24 hours, to do each
>> day.
>>
>> 3. A complete test that might take several machine-days, and that would be
>> run against a release candidate prior to release.
>>
>> Note that even if a test sequence takes several machine-days, that does not
>> necessarily mean days of elapsed time. Maybe some tests can be run in
>> parallel under the same OS copy. Even if that is not possible, we may be
>> able to gang up several physical or virtual machines, each running a subset
>> of the tests.
>>
>> I think virtual machines may work quite well because a lot of the tests do
>> something then wait around a minute or two to see what happens. They are not
>> very intensive resource users.
>>
>> Patricia
>>
>>
>>
>> Peter Firmstone wrote:
>>
>>> Hi JC,
>>>
>>> Can we have an ant target for running all the tests?
>>>
>>> And how about a qa.run.hudson target?
>>>
>>> I usually use run-categories, to isolate what I'm working on, but we
>>> definitely need a target that runs everything that should be, even if it
>>> does take overnight.
>>>
>>> Regards,
>>>
>>> Peter.
>>>
>>> Jonathan Costers wrote:
>>>
>>>> 2010/8/24 Patricia Shanahan <pa...@acm.org>
>>>>
>>>>
>>>>
>>>>> On 8/22/2010 4:57 PM, Peter Firmstone wrote:
>>>>> ...
>>>>>
>>>>>  Thanks Patricia, that's very helpful, I'll figure it out where I went
>>>>>
>>>>>
>>>>>> wrong this week, it really shows the importance of full test coverage.
>>>>>>
>>>>>>
>>>>>>
>>>>> ...
>>>>>
>>>>> I strongly agree that test coverage is important. Accordingly, I've done
>>>>> some analysis of the "ant qa.run" output.
>>>>>
>>>>> There are 1059 test description (*.td) files that exist, and are loaded
>>>>> at
>>>>> the start of "ant qa.run", but that do not seem to be run. I've
>>>>> extracted
>>>>> the top level categories from those files:
>>>>>
>>>>> constraint
>>>>> discoveryproviders_impl
>>>>> discoveryservice
>>>>> end2end
>>>>> eventmailbox
>>>>> export_spec
>>>>> io
>>>>> javaspace
>>>>> jeri
>>>>> joinmanager
>>>>> jrmp
>>>>> loader
>>>>> locatordiscovery
>>>>> lookupdiscovery
>>>>> lookupservice
>>>>> proxytrust
>>>>> reliability
>>>>> renewalmanager
>>>>> renewalservice
>>>>> scalability
>>>>> security
>>>>> start
>>>>> txnmanager
>>>>>
>>>>> I'm sure some of these tests are obsolete, duplicates of tests in
>>>>> categories that are being run, or otherwise inappropriate, but there
>>>>> does
>>>>> seem to be a rich vein of tests we could mine.
>>>>>
>>>>>
>>>>>
>>>> The QA harness loads all .td files under the "spec" and "impl"
>>>> directories
>>>> when starting and only witholds the ones that are tagged with the
>>>> categories
>>>> that we specify from the Ant target.
>>>> Whenever a test is really obsolete or otherwise not supposed to run, it
>>>> is
>>>> marked with a "SkipTestVerifier" in its .td file.
>>>> Most of these are genuine and should be run though.
>>>> There are more categories than the ones you mention above, for instance:
>>>> "spec", "id", "id_spec", etc.
>>>> Also, some tests are tagged with multiple categories and as such
>>>> duplicates
>>>> can exist when assembling the list of tests to run.
>>>>
>>>> The reason not all of them are run (by Hudson) now is that we give a
>>>> specific set of test categories that are known (to me) to run smoothly.
>>>> There are many others that are not run (by default) because issue(s) are
>>>> present with one or more of the tests in that category.
>>>>
>>>> I completely agree with the fact that we should not exclude complete test
>>>> categories because of one test failing.
>>>> What we probably should do is tag any problematic test (due to
>>>> infrastructure or other reasons) with a SkipTestVerifier for the time
>>>> being
>>>> so that it is not taken into account by the QA harness for now.
>>>> That way, we can add all test categories to the default Ant run.
>>>> However, this would take a large amount of time to run (I've tried it
>>>> once,
>>>> and killed the process after several days), which brings us to your next
>>>> point:
>>>>
>>>> Part of the problem may be time to run the tests. I'd like to propose
>>>>
>>>>
>>>>> splitting the tests into two sets:
>>>>>
>>>>> 1. A small set that one would run in addition to the relevant tests,
>>>>> whenever making a small change. It should *not* be based on skipping
>>>>> complete categories, but on doing those tests from each category that
>>>>> are
>>>>> most likely to detect regression, especially regression due to changes
>>>>> in
>>>>> other areas.
>>>>>
>>>>>
>>>>>
>>>> Completely agree. However, most of the QA tests are not clear unit or
>>>> regression tests. They are more integration/conformance tests that test
>>>> the
>>>> requirements of the spec and its implementation.
>>>> Identifying the list of "right" tests to run as part of the small set you
>>>> mention would require going through all 1059 test descriptions and their
>>>> sources.
>>>>
>>>> 2. A full test set that may take a lot longer. In many projects, there is
>>>> a
>>>>
>>>>
>>>>> "nightly build" and a test sequence that is run against that build. That
>>>>> test sequence can take up to 24 hours to run, and should be as complete
>>>>> as
>>>>> possible. Does Apache have infrastructure to support this sort of
>>>>> operation?
>>>>>
>>>>>
>>>>>
>>>> Again, completely agree. I'm sure Apache supports this through Hudson. We
>>>> could request to setup a second build job, doing nightly builds and
>>>> running
>>>> the whole test suite. Think this is the only way to make running the
>>>> complete QA suite automatically practical.
>>>>
>>>>
>>>>
>>>>
>>>>> Are there any tests that people *know* should not run? I'm thinking of
>>>>> running the lot just to see what happens, but knowing ones that are not
>>>>> expected to work would help with result interpretation.
>>>>>
>>>>>
>>>>>
>>>> See above, tests of that type should have already been tagged to be
>>>> skipped
>>>> by the good people that donated this test suite.
>>>> I've noticed that usually, when a SkipTestVerifier is used in a .td file,
>>>> someone has put some comments in there to explain why it was tagged as
>>>> such.
>>>>
>>>>
>>>>
>>>>
>>>>> Patricia
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
> 


Re: ServiceDiscoveryManager test coverage

Posted by Jonathan Costers <jo...@googlemail.com>.
The QA harness is also supposed to be able to work in distributed mode, i.e.
having multiple machines work together on one test run (splitting the work
so to speak).
I haven't looked into that feature too much though.

2010/8/27 Patricia Shanahan <pa...@acm.org>

> Based on some experiments, I am convinced a full run may take more than 24
> hours, so even that may have to be selective. Jonathan Costers reports
> killing a full run after several days. We may need three targets, in
> addition to problem-specific categories:
>
> 1. A quick test that one would do, for example, after checking out and
> building.
>
> 2. A more substantive test that would run in less than 24 hours, to do each
> day.
>
> 3. A complete test that might take several machine-days, and that would be
> run against a release candidate prior to release.
>
> Note that even if a test sequence takes several machine-days, that does not
> necessarily mean days of elapsed time. Maybe some tests can be run in
> parallel under the same OS copy. Even if that is not possible, we may be
> able to gang up several physical or virtual machines, each running a subset
> of the tests.
>
> I think virtual machines may work quite well because a lot of the tests do
> something then wait around a minute or two to see what happens. They are not
> very intensive resource users.
>
> Patricia
>
>
>
> Peter Firmstone wrote:
>
>> Hi JC,
>>
>> Can we have an ant target for running all the tests?
>>
>> And how about a qa.run.hudson target?
>>
>> I usually use run-categories, to isolate what I'm working on, but we
>> definitely need a target that runs everything that should be, even if it
>> does take overnight.
>>
>> Regards,
>>
>> Peter.
>>
>> Jonathan Costers wrote:
>>
>>> 2010/8/24 Patricia Shanahan <pa...@acm.org>
>>>
>>>
>>>
>>>> On 8/22/2010 4:57 PM, Peter Firmstone wrote:
>>>> ...
>>>>
>>>>  Thanks Patricia, that's very helpful, I'll figure it out where I went
>>>>
>>>>
>>>>> wrong this week, it really shows the importance of full test coverage.
>>>>>
>>>>>
>>>>>
>>>> ...
>>>>
>>>> I strongly agree that test coverage is important. Accordingly, I've done
>>>> some analysis of the "ant qa.run" output.
>>>>
>>>> There are 1059 test description (*.td) files that exist, and are loaded
>>>> at
>>>> the start of "ant qa.run", but that do not seem to be run. I've
>>>> extracted
>>>> the top level categories from those files:
>>>>
>>>> constraint
>>>> discoveryproviders_impl
>>>> discoveryservice
>>>> end2end
>>>> eventmailbox
>>>> export_spec
>>>> io
>>>> javaspace
>>>> jeri
>>>> joinmanager
>>>> jrmp
>>>> loader
>>>> locatordiscovery
>>>> lookupdiscovery
>>>> lookupservice
>>>> proxytrust
>>>> reliability
>>>> renewalmanager
>>>> renewalservice
>>>> scalability
>>>> security
>>>> start
>>>> txnmanager
>>>>
>>>> I'm sure some of these tests are obsolete, duplicates of tests in
>>>> categories that are being run, or otherwise inappropriate, but there
>>>> does
>>>> seem to be a rich vein of tests we could mine.
>>>>
>>>>
>>>>
>>>
>>> The QA harness loads all .td files under the "spec" and "impl"
>>> directories
>>> when starting and only witholds the ones that are tagged with the
>>> categories
>>> that we specify from the Ant target.
>>> Whenever a test is really obsolete or otherwise not supposed to run, it
>>> is
>>> marked with a "SkipTestVerifier" in its .td file.
>>> Most of these are genuine and should be run though.
>>> There are more categories than the ones you mention above, for instance:
>>> "spec", "id", "id_spec", etc.
>>> Also, some tests are tagged with multiple categories and as such
>>> duplicates
>>> can exist when assembling the list of tests to run.
>>>
>>> The reason not all of them are run (by Hudson) now is that we give a
>>> specific set of test categories that are known (to me) to run smoothly.
>>> There are many others that are not run (by default) because issue(s) are
>>> present with one or more of the tests in that category.
>>>
>>> I completely agree with the fact that we should not exclude complete test
>>> categories because of one test failing.
>>> What we probably should do is tag any problematic test (due to
>>> infrastructure or other reasons) with a SkipTestVerifier for the time
>>> being
>>> so that it is not taken into account by the QA harness for now.
>>> That way, we can add all test categories to the default Ant run.
>>> However, this would take a large amount of time to run (I've tried it
>>> once,
>>> and killed the process after several days), which brings us to your next
>>> point:
>>>
>>> Part of the problem may be time to run the tests. I'd like to propose
>>>
>>>
>>>> splitting the tests into two sets:
>>>>
>>>> 1. A small set that one would run in addition to the relevant tests,
>>>> whenever making a small change. It should *not* be based on skipping
>>>> complete categories, but on doing those tests from each category that
>>>> are
>>>> most likely to detect regression, especially regression due to changes
>>>> in
>>>> other areas.
>>>>
>>>>
>>>>
>>>
>>> Completely agree. However, most of the QA tests are not clear unit or
>>> regression tests. They are more integration/conformance tests that test
>>> the
>>> requirements of the spec and its implementation.
>>> Identifying the list of "right" tests to run as part of the small set you
>>> mention would require going through all 1059 test descriptions and their
>>> sources.
>>>
>>> 2. A full test set that may take a lot longer. In many projects, there is
>>> a
>>>
>>>
>>>> "nightly build" and a test sequence that is run against that build. That
>>>> test sequence can take up to 24 hours to run, and should be as complete
>>>> as
>>>> possible. Does Apache have infrastructure to support this sort of
>>>> operation?
>>>>
>>>>
>>>>
>>>
>>> Again, completely agree. I'm sure Apache supports this through Hudson. We
>>> could request to setup a second build job, doing nightly builds and
>>> running
>>> the whole test suite. Think this is the only way to make running the
>>> complete QA suite automatically practical.
>>>
>>>
>>>
>>>
>>>> Are there any tests that people *know* should not run? I'm thinking of
>>>> running the lot just to see what happens, but knowing ones that are not
>>>> expected to work would help with result interpretation.
>>>>
>>>>
>>>>
>>>
>>> See above, tests of that type should have already been tagged to be
>>> skipped
>>> by the good people that donated this test suite.
>>> I've noticed that usually, when a SkipTestVerifier is used in a .td file,
>>> someone has put some comments in there to explain why it was tagged as
>>> such.
>>>
>>>
>>>
>>>
>>>> Patricia
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>
>>
>>
>

Re: ServiceDiscoveryManager test coverage

Posted by Patricia Shanahan <pa...@acm.org>.
Based on some experiments, I am convinced a full run may take more than 
24 hours, so even that may have to be selective. Jonathan Costers 
reports killing a full run after several days. We may need three 
targets, in addition to problem-specific categories:

1. A quick test that one would do, for example, after checking out and 
building.

2. A more substantive test that would run in less than 24 hours, to do 
each day.

3. A complete test that might take several machine-days, and that would 
be run against a release candidate prior to release.

Note that even if a test sequence takes several machine-days, that does 
not necessarily mean days of elapsed time. Maybe some tests can be run 
in parallel under the same OS copy. Even if that is not possible, we may 
be able to gang up several physical or virtual machines, each running a 
subset of the tests.

I think virtual machines may work quite well because a lot of the tests 
do something then wait around a minute or two to see what happens. They 
are not very intensive resource users.

Patricia


Peter Firmstone wrote:
> Hi JC,
> 
> Can we have an ant target for running all the tests?
> 
> And how about a qa.run.hudson target?
> 
> I usually use run-categories, to isolate what I'm working on, but we 
> definitely need a target that runs everything that should be, even if it 
> does take overnight.
> 
> Regards,
> 
> Peter.
> 
> Jonathan Costers wrote:
>> 2010/8/24 Patricia Shanahan <pa...@acm.org>
>>
>>  
>>> On 8/22/2010 4:57 PM, Peter Firmstone wrote:
>>> ...
>>>
>>>  Thanks Patricia, that's very helpful, I'll figure it out where I went
>>>    
>>>> wrong this week, it really shows the importance of full test coverage.
>>>>
>>>>       
>>> ...
>>>
>>> I strongly agree that test coverage is important. Accordingly, I've done
>>> some analysis of the "ant qa.run" output.
>>>
>>> There are 1059 test description (*.td) files that exist, and are 
>>> loaded at
>>> the start of "ant qa.run", but that do not seem to be run. I've 
>>> extracted
>>> the top level categories from those files:
>>>
>>> constraint
>>> discoveryproviders_impl
>>> discoveryservice
>>> end2end
>>> eventmailbox
>>> export_spec
>>> io
>>> javaspace
>>> jeri
>>> joinmanager
>>> jrmp
>>> loader
>>> locatordiscovery
>>> lookupdiscovery
>>> lookupservice
>>> proxytrust
>>> reliability
>>> renewalmanager
>>> renewalservice
>>> scalability
>>> security
>>> start
>>> txnmanager
>>>
>>> I'm sure some of these tests are obsolete, duplicates of tests in
>>> categories that are being run, or otherwise inappropriate, but there 
>>> does
>>> seem to be a rich vein of tests we could mine.
>>>
>>>     
>>
>> The QA harness loads all .td files under the "spec" and "impl" 
>> directories
>> when starting and only witholds the ones that are tagged with the 
>> categories
>> that we specify from the Ant target.
>> Whenever a test is really obsolete or otherwise not supposed to run, 
>> it is
>> marked with a "SkipTestVerifier" in its .td file.
>> Most of these are genuine and should be run though.
>> There are more categories than the ones you mention above, for instance:
>> "spec", "id", "id_spec", etc.
>> Also, some tests are tagged with multiple categories and as such 
>> duplicates
>> can exist when assembling the list of tests to run.
>>
>> The reason not all of them are run (by Hudson) now is that we give a
>> specific set of test categories that are known (to me) to run smoothly.
>> There are many others that are not run (by default) because issue(s) are
>> present with one or more of the tests in that category.
>>
>> I completely agree with the fact that we should not exclude complete test
>> categories because of one test failing.
>> What we probably should do is tag any problematic test (due to
>> infrastructure or other reasons) with a SkipTestVerifier for the time 
>> being
>> so that it is not taken into account by the QA harness for now.
>> That way, we can add all test categories to the default Ant run.
>> However, this would take a large amount of time to run (I've tried it 
>> once,
>> and killed the process after several days), which brings us to your next
>> point:
>>
>> Part of the problem may be time to run the tests. I'd like to propose
>>  
>>> splitting the tests into two sets:
>>>
>>> 1. A small set that one would run in addition to the relevant tests,
>>> whenever making a small change. It should *not* be based on skipping
>>> complete categories, but on doing those tests from each category that 
>>> are
>>> most likely to detect regression, especially regression due to 
>>> changes in
>>> other areas.
>>>
>>>     
>>
>> Completely agree. However, most of the QA tests are not clear unit or
>> regression tests. They are more integration/conformance tests that 
>> test the
>> requirements of the spec and its implementation.
>> Identifying the list of "right" tests to run as part of the small set you
>> mention would require going through all 1059 test descriptions and their
>> sources.
>>
>> 2. A full test set that may take a lot longer. In many projects, there 
>> is a
>>  
>>> "nightly build" and a test sequence that is run against that build. That
>>> test sequence can take up to 24 hours to run, and should be as 
>>> complete as
>>> possible. Does Apache have infrastructure to support this sort of 
>>> operation?
>>>
>>>     
>>
>> Again, completely agree. I'm sure Apache supports this through Hudson. We
>> could request to setup a second build job, doing nightly builds and 
>> running
>> the whole test suite. Think this is the only way to make running the
>> complete QA suite automatically practical.
>>
>>
>>  
>>> Are there any tests that people *know* should not run? I'm thinking of
>>> running the lot just to see what happens, but knowing ones that are not
>>> expected to work would help with result interpretation.
>>>
>>>     
>>
>> See above, tests of that type should have already been tagged to be 
>> skipped
>> by the good people that donated this test suite.
>> I've noticed that usually, when a SkipTestVerifier is used in a .td file,
>> someone has put some comments in there to explain why it was tagged as 
>> such.
>>
>>
>>  
>>> Patricia
>>>
>>>
>>>
>>>     
>>
>>   
> 
> 


Re: ServiceDiscoveryManager test coverage

Posted by Peter Firmstone <ji...@zeus.net.au>.
Hi JC,

Can we have an ant target for running all the tests?

And how about a qa.run.hudson target?

I usually use run-categories, to isolate what I'm working on, but we 
definitely need a target that runs everything that should be, even if it 
does take overnight.

Regards,

Peter.

Jonathan Costers wrote:
> 2010/8/24 Patricia Shanahan <pa...@acm.org>
>
>   
>> On 8/22/2010 4:57 PM, Peter Firmstone wrote:
>> ...
>>
>>  Thanks Patricia, that's very helpful, I'll figure it out where I went
>>     
>>> wrong this week, it really shows the importance of full test coverage.
>>>
>>>       
>> ...
>>
>> I strongly agree that test coverage is important. Accordingly, I've done
>> some analysis of the "ant qa.run" output.
>>
>> There are 1059 test description (*.td) files that exist, and are loaded at
>> the start of "ant qa.run", but that do not seem to be run. I've extracted
>> the top level categories from those files:
>>
>> constraint
>> discoveryproviders_impl
>> discoveryservice
>> end2end
>> eventmailbox
>> export_spec
>> io
>> javaspace
>> jeri
>> joinmanager
>> jrmp
>> loader
>> locatordiscovery
>> lookupdiscovery
>> lookupservice
>> proxytrust
>> reliability
>> renewalmanager
>> renewalservice
>> scalability
>> security
>> start
>> txnmanager
>>
>> I'm sure some of these tests are obsolete, duplicates of tests in
>> categories that are being run, or otherwise inappropriate, but there does
>> seem to be a rich vein of tests we could mine.
>>
>>     
>
> The QA harness loads all .td files under the "spec" and "impl" directories
> when starting and only witholds the ones that are tagged with the categories
> that we specify from the Ant target.
> Whenever a test is really obsolete or otherwise not supposed to run, it is
> marked with a "SkipTestVerifier" in its .td file.
> Most of these are genuine and should be run though.
> There are more categories than the ones you mention above, for instance:
> "spec", "id", "id_spec", etc.
> Also, some tests are tagged with multiple categories and as such duplicates
> can exist when assembling the list of tests to run.
>
> The reason not all of them are run (by Hudson) now is that we give a
> specific set of test categories that are known (to me) to run smoothly.
> There are many others that are not run (by default) because issue(s) are
> present with one or more of the tests in that category.
>
> I completely agree with the fact that we should not exclude complete test
> categories because of one test failing.
> What we probably should do is tag any problematic test (due to
> infrastructure or other reasons) with a SkipTestVerifier for the time being
> so that it is not taken into account by the QA harness for now.
> That way, we can add all test categories to the default Ant run.
> However, this would take a large amount of time to run (I've tried it once,
> and killed the process after several days), which brings us to your next
> point:
>
> Part of the problem may be time to run the tests. I'd like to propose
>   
>> splitting the tests into two sets:
>>
>> 1. A small set that one would run in addition to the relevant tests,
>> whenever making a small change. It should *not* be based on skipping
>> complete categories, but on doing those tests from each category that are
>> most likely to detect regression, especially regression due to changes in
>> other areas.
>>
>>     
>
> Completely agree. However, most of the QA tests are not clear unit or
> regression tests. They are more integration/conformance tests that test the
> requirements of the spec and its implementation.
> Identifying the list of "right" tests to run as part of the small set you
> mention would require going through all 1059 test descriptions and their
> sources.
>
> 2. A full test set that may take a lot longer. In many projects, there is a
>   
>> "nightly build" and a test sequence that is run against that build. That
>> test sequence can take up to 24 hours to run, and should be as complete as
>> possible. Does Apache have infrastructure to support this sort of operation?
>>
>>     
>
> Again, completely agree. I'm sure Apache supports this through Hudson. We
> could request to setup a second build job, doing nightly builds and running
> the whole test suite. Think this is the only way to make running the
> complete QA suite automatically practical.
>
>
>   
>> Are there any tests that people *know* should not run? I'm thinking of
>> running the lot just to see what happens, but knowing ones that are not
>> expected to work would help with result interpretation.
>>
>>     
>
> See above, tests of that type should have already been tagged to be skipped
> by the good people that donated this test suite.
> I've noticed that usually, when a SkipTestVerifier is used in a .td file,
> someone has put some comments in there to explain why it was tagged as such.
>
>
>   
>> Patricia
>>
>>
>>
>>     
>
>   


Re: ServiceDiscoveryManager test coverage

Posted by Jonathan Costers <jo...@googlemail.com>.
2010/8/24 Patricia Shanahan <pa...@acm.org>

> On 8/22/2010 4:57 PM, Peter Firmstone wrote:
> ...
>
>  Thanks Patricia, that's very helpful, I'll figure it out where I went
>> wrong this week, it really shows the importance of full test coverage.
>>
> ...
>
> I strongly agree that test coverage is important. Accordingly, I've done
> some analysis of the "ant qa.run" output.
>
> There are 1059 test description (*.td) files that exist, and are loaded at
> the start of "ant qa.run", but that do not seem to be run. I've extracted
> the top level categories from those files:
>
> constraint
> discoveryproviders_impl
> discoveryservice
> end2end
> eventmailbox
> export_spec
> io
> javaspace
> jeri
> joinmanager
> jrmp
> loader
> locatordiscovery
> lookupdiscovery
> lookupservice
> proxytrust
> reliability
> renewalmanager
> renewalservice
> scalability
> security
> start
> txnmanager
>
> I'm sure some of these tests are obsolete, duplicates of tests in
> categories that are being run, or otherwise inappropriate, but there does
> seem to be a rich vein of tests we could mine.
>

The QA harness loads all .td files under the "spec" and "impl" directories
when starting and only witholds the ones that are tagged with the categories
that we specify from the Ant target.
Whenever a test is really obsolete or otherwise not supposed to run, it is
marked with a "SkipTestVerifier" in its .td file.
Most of these are genuine and should be run though.
There are more categories than the ones you mention above, for instance:
"spec", "id", "id_spec", etc.
Also, some tests are tagged with multiple categories and as such duplicates
can exist when assembling the list of tests to run.

The reason not all of them are run (by Hudson) now is that we give a
specific set of test categories that are known (to me) to run smoothly.
There are many others that are not run (by default) because issue(s) are
present with one or more of the tests in that category.

I completely agree with the fact that we should not exclude complete test
categories because of one test failing.
What we probably should do is tag any problematic test (due to
infrastructure or other reasons) with a SkipTestVerifier for the time being
so that it is not taken into account by the QA harness for now.
That way, we can add all test categories to the default Ant run.
However, this would take a large amount of time to run (I've tried it once,
and killed the process after several days), which brings us to your next
point:

Part of the problem may be time to run the tests. I'd like to propose
> splitting the tests into two sets:
>
> 1. A small set that one would run in addition to the relevant tests,
> whenever making a small change. It should *not* be based on skipping
> complete categories, but on doing those tests from each category that are
> most likely to detect regression, especially regression due to changes in
> other areas.
>

Completely agree. However, most of the QA tests are not clear unit or
regression tests. They are more integration/conformance tests that test the
requirements of the spec and its implementation.
Identifying the list of "right" tests to run as part of the small set you
mention would require going through all 1059 test descriptions and their
sources.

2. A full test set that may take a lot longer. In many projects, there is a
> "nightly build" and a test sequence that is run against that build. That
> test sequence can take up to 24 hours to run, and should be as complete as
> possible. Does Apache have infrastructure to support this sort of operation?
>

Again, completely agree. I'm sure Apache supports this through Hudson. We
could request to setup a second build job, doing nightly builds and running
the whole test suite. Think this is the only way to make running the
complete QA suite automatically practical.


> Are there any tests that people *know* should not run? I'm thinking of
> running the lot just to see what happens, but knowing ones that are not
> expected to work would help with result interpretation.
>

See above, tests of that type should have already been tagged to be skipped
by the good people that donated this test suite.
I've noticed that usually, when a SkipTestVerifier is used in a .td file,
someone has put some comments in there to explain why it was tagged as such.


> Patricia
>
>
>

Re: CDC issues

Posted by Peter Firmstone <ji...@zeus.net.au>.
Thanks Sim,

I'm going to drop the CDC work for now, thanks for the link though.

Sim IJskes - QCG wrote:
> On 09/01/2010 09:36 AM, Peter Firmstone wrote:
>> The original intent behind the changes to RemoteEvent, were to change
>>  it's internal handback object to a MarshalledInstance from
>> MarshalledObject, so the Java CDC Personal Basis Profile could
>> participate in a djinn, with some very basic simple services and as a
>>  client.
>>
>> Since proxy's that aren't compatible with CDC simply either won't
>> unmarshall or can't be matched, this makes it relatively simple.
>
> The bouncy castle crypto project, has had some challenges as well with
> running under CDC. Maybe we could learn from them?
>
> From the faq:
>
>> 3. I am using the lightweight library to create some MIDlets and my
>> device/simulator is complaining about creation of classes in the Java
>> package (such as java/math/BigInteger, java/security/SecureRandom,
>> java/io/FilterInputStream), don't you Bouncy Castle guys know that's
>> not allowed?
>>
>> The lightweight library contains some compatibility classes in the
>> java/* namespace to make development easier for compatibility between
>> client/server code (otherwise the MIDlet would be
>> org/bc/math/BigInteger and the Servlet would be java/math/BigInteger)
>> as well as keeping the BC codebase as small as possible. This change
>> was introduced a number of years ago, and announced on the BC mailing
>> list. Since then, many users have been creating MIDlets using the
>> cldc_classes.zip and the world is a happy place.
>>
>> There is one, fundamental, important step that is required when
>> creating a MIDlet. That is you must, must, must obfuscate the
>> classes. If you do this correctly, everything works fine. If you do
>> not do this correctly, your device/simulator will complain. Correctly
>> in this case means that the package names also need obfuscating, not
>> just the class names. The options for doing this are obfuscator
>> dependent.
>>
>> Here is a thread from a Nokia forum discussion how to do this in
>> Netbeans.
>
>
> Gr. Sim
>
>
>


CDC issues

Posted by Sim IJskes - QCG <si...@qcg.nl>.
On 09/01/2010 09:36 AM, Peter Firmstone wrote:
> The original intent behind the changes to RemoteEvent, were to change
>  it's internal handback object to a MarshalledInstance from
> MarshalledObject, so the Java CDC Personal Basis Profile could
> participate in a djinn, with some very basic simple services and as a
>  client.
>
> Since proxy's that aren't compatible with CDC simply either won't
> unmarshall or can't be matched, this makes it relatively simple.

The bouncy castle crypto project, has had some challenges as well with
running under CDC. Maybe we could learn from them?

 From the faq:

> 3. I am using the lightweight library to create some MIDlets and my
> device/simulator is complaining about creation of classes in the Java
> package (such as java/math/BigInteger, java/security/SecureRandom,
> java/io/FilterInputStream), don't you Bouncy Castle guys know that's
> not allowed?
>
> The lightweight library contains some compatibility classes in the
> java/* namespace to make development easier for compatibility between
> client/server code (otherwise the MIDlet would be
> org/bc/math/BigInteger and the Servlet would be java/math/BigInteger)
> as well as keeping the BC codebase as small as possible. This change
> was introduced a number of years ago, and announced on the BC mailing
> list. Since then, many users have been creating MIDlets using the
> cldc_classes.zip and the world is a happy place.
>
> There is one, fundamental, important step that is required when
> creating a MIDlet. That is you must, must, must obfuscate the
> classes. If you do this correctly, everything works fine. If you do
> not do this correctly, your device/simulator will complain. Correctly
> in this case means that the package names also need obfuscating, not
> just the class names. The options for doing this are obfuscator
> dependent.
>
> Here is a thread from a Nokia forum discussion how to do this in
> Netbeans.


Gr. Sim



Re: ServiceDiscoveryManager test coverage

Posted by Peter Firmstone <ji...@zeus.net.au>.
I think the best thing to do with these is to back out the changes below 
and start again, I think I've got a better solution to the problem I was 
trying to solve there.

The original intent behind the changes to RemoteEvent, were to change 
it's internal handback object to a MarshalledInstance from 
MarshalledObject, so the Java CDC Personal Basis Profile could 
participate in a djinn, with some very basic simple services and as a 
client.

Since proxy's that aren't compatible with CDC simply either won't 
unmarshall or can't be matched, this makes it relatively simple.

The problem with the RemoteEvent was that it is tied to it's serialized 
form, so what I needed was a MarshalledInstance, with MarshalledObject 
serialized form.  What happened of course is I tried to convert the form 
in the writeObject and readObject methods, however this is the wrong 
approach, since there is an Object source field in RemoteEvent that 
could too be a MarshalledObject.

Cut a long story short, what I need is a container class for 
MarshalledInstance that has MarshalledObject's serialized form, which I 
can use to replace MarshalledObject fields inside objects while 
preserving the existing object methods.  That would also mean that any 
objects that utilise it don't need to change their serialization methods.

Stay tuned.

Cheers,

Peter.

Jonathan Costers wrote:
> FWIW - I backed out (back to the original Sun contribution) all changes to
> the following files:
>
> src/net/jini/core/event/RemoteEvent.java
> src/net/jini/discovery/RemoteDiscoveryEvent.java
> src/net/jini/lease/RenewalFailureEvent.java
> src/net/jini/core/lookup/ServiceEvent.java
>
> and now I have the servicediscovery QA test category running fine (so far,
> but some of the tests that were failing earlier are passing).
>
> 2010/8/31 Jonathan Costers <jo...@googlemail.com>
>
>   
>> Great! Would you be able to create a JIRA issue for it?
>> I would do it myself but I believe you have a better idea on how to
>> describe what exactly is going on.
>>
>> 2010/8/31 Peter Firmstone <ji...@zeus.net.au>
>>
>> Ok,
>>     
>>> I found the culprit, it's RemoteEvent.
>>>
>>> Will look into it further tomorrow, off to sleep now.
>>>
>>> Peter.
>>>
>>>
>>> Patricia Shanahan wrote:
>>>
>>>       
>>>> On 8/25/2010 1:34 AM, Peter Firmstone wrote:
>>>> ...
>>>>
>>>>         
>>>>> I've gotten to the bottom of what's causing the failures, one's a null
>>>>> reference, the other a serialization problem, the first problem's easy,
>>>>> the second will take a bit more thought.
>>>>>
>>>>>           
>>>> com/sun/jini/test/spec/discoveryservice/event/Discovered.td also fails
>>>> with 935130 but passes with 934258.
>>>>
>>>> I may delay work on problems in tests that were not being run until I can
>>>> retest against the fixes you are working on. I have a feeling a lot more
>>>> tests will pass.
>>>>
>>>> Patricia
>>>>
>>>>
>>>>         
>
>   


Re: ServiceDiscoveryManager test coverage

Posted by Patricia Shanahan <pa...@acm.org>.
On 9/1/2010 2:49 AM, Jonathan Costers wrote:
> We have "skunk" branches for experimentation.... In fact there is a skunk
> branch right now called "NewTaskManager".
> This branch should be based off a stable release indeed (see above), not
> sure if that is the case with the skunk/NewTaskManager branch.

I think that branch was created after some of the regressions, so it is 
probably not useful in its current form.

Patricia

Re: ServiceDiscoveryManager test coverage

Posted by Jonathan Costers <jo...@googlemail.com>.
> I like to check in early and often, but my TaskManager performance project
> has an experimental aspect to it. The TaskManager changes should increase
> concurrency, which may shake out bugs in other code, as well as having their
> own risks. Only benchmarking can prove that a change improves performance -
> intuition and experience are notoriously unreliable predictors.
>

Could not agree more.


> The TaskManager changes should be tested against all runnable tests before
> being checked into the trunk, but that can only be done if they are based on
> a version that passes all runnable tests.
>

See my suggestions in previous email. We should first and foremost establish
a solid baseline that passes as much tests as we can throw at it.


> That all seems to me to be a job for branches.
>

We have "skunk" branches for experimentation.... In fact there is a skunk
branch right now called "NewTaskManager".
This branch should be based off a stable release indeed (see above), not
sure if that is the case with the skunk/NewTaskManager branch.


> Patricia
>

Re: ServiceDiscoveryManager test coverage

Posted by Patricia Shanahan <pa...@acm.org>.
On 9/1/2010 12:22 AM, Sim IJskes - QCG wrote:
> On 09/01/2010 01:16 AM, Jonathan Costers wrote:
>> Similarly, having backed out the RemoteEvent changes, and running the
>> "discoveryservice" category:
>
> It looks to me, that the code in the trunk was not completely ready.
> Would it be a good idea to revert the changes until the unit tests run
> again, and build a branch in svn to continue the work?
>
> If a committer (with svn access) needs help, i can offer some assistance.

I'm still waiting for my Apache account to be created, so I'm currently 
a committer without svn access, but I'm interested in advice on how to 
manage branches in an Apache context.

I like to check in early and often, but my TaskManager performance 
project has an experimental aspect to it. The TaskManager changes should 
increase concurrency, which may shake out bugs in other code, as well as 
having their own risks. Only benchmarking can prove that a change 
improves performance - intuition and experience are notoriously 
unreliable predictors.

The TaskManager changes should be tested against all runnable tests 
before being checked into the trunk, but that can only be done if they 
are based on a version that passes all runnable tests.

That all seems to me to be a job for branches.

Patricia

Re: ServiceDiscoveryManager test coverage

Posted by Jonathan Costers <jo...@googlemail.com>.
> As an external, non-committing but interested observer, I agree with
> Patricia and Jonathan. The team I've been working with switched to
> using branches extensively in the last year. Developers open branches
> "per feature" and synchronize/pull from trunk as stable changes are
> merged into trunk. Code reviews can also be done before the
> integration merge. In our case, we also serialize integrations so that
> as a rule no integration takes place when trunk is unstable, e.g. as
> soon as an integration breaks trunk, it's rolled back as a unit, trunk
> is re-verified, and the developer gets in line to try again later.
>

That has been my experience too in maintaining large projects.
Esp. the reviewing part is critical IMO. Branching off facilitates that to
be done more rigorously.
Heck, it would be amazing if the (rather complex) changes that have been
made (to class loading, policy granting, remote events, etc.) were done
right the first time by a single person without much peer review. So indeed,
I believe these changes belong more in a feature/experimentation branch for
now, until we get our arms around the issues they are causing.

River is a bit unusual by current testing standards IMO as the test
> suites take a very long time to run, making integration a bigger
> effort. It seems like current best practice regarding testing is to
> rely more on mocking and to keep tests running in as short a time as
> possible, to receive feedback quickly. It does look like a few
> person-days of work were just lost by having to track down and isolate
> the failures.
>

Yes, very true. That is the reason we are adding more and more unit tests as
we go (mainly thanks to Peter and Patricia) that can be run quickly, as
opposed to QA tests that take a long time. I believe we now have about 200
JUnit tests, as opposed to zero a year or so ago. You may have noticed that
I did not backout those.

In light of that, we now have two Hudson build jobs:
- one that builds the project, runs unit tests and creates release artifacts
(10min max)
- one that builds the project and runs the QA suite (with the current number
of tests, about 500, this takes 3.5hrs)
As a measure to be able to integrate and verify changes more quickly.

Of course, the library of unit tests we have at this point does not at all
cover all the code yet, but we are steadily increasing coverage.
Same with the QA suite, we are adding categories and tests as we go,
increasing coverage there too.
Eventually, we should be able to rely on the fact that if unit tests pass,
the project is stable with fair amount of certainty.
QA tests would be run to verify whether the build is actually releasable
(integration issues, conformance to spec, regression, etc.)

Re: ServiceDiscoveryManager test coverage

Posted by Patrick Wright <pd...@gmail.com>.
As an external, non-committing but interested observer, I agree with
Patricia and Jonathan. The team I've been working with switched to
using branches extensively in the last year. Developers open branches
"per feature" and synchronize/pull from trunk as stable changes are
merged into trunk. Code reviews can also be done before the
integration merge. In our case, we also serialize integrations so that
as a rule no integration takes place when trunk is unstable, e.g. as
soon as an integration breaks trunk, it's rolled back as a unit, trunk
is re-verified, and the developer gets in line to try again later.

River is a bit unusual by current testing standards IMO as the test
suites take a very long time to run, making integration a bigger
effort. It seems like current best practice regarding testing is to
rely more on mocking and to keep tests running in as short a time as
possible, to receive feedback quickly. It does look like a few
person-days of work were just lost by having to track down and isolate
the failures.


Regards
Patrick

Re: ServiceDiscoveryManager test coverage

Posted by Patricia Shanahan <pa...@acm.org>.
Peter Firmstone wrote:
> Thanks for the compliment.
> 
> I'm looking forward to having some help, programming alone isn't much 
> fun, I've been quite busy, so a short break to let others show off their 
> skills while I get some much needed rest is all good.
> 
> This is probably also a very good opportunity to finally get some much 
> needed peer review.
...
>   2. RevokeableDynamicPolicy and Security delegates. - experimental,
>      this could take some time, how to avoid divergence?  Can we merge
>      trunk into skunk periodically to keep it up to date?
...

Yes, I think you can, and should, periodically merge the trunk head into 
your skunk branch, to limit divergence.

Also, try to limit scattered divergences. For example, in some 
situations you can get users of a feature onto an interface that works 
with either old or new. Merging that sort of change, with the old style 
handling of the interface, back into trunk would be relatively low risk. 
After that, you work one part of the program relatively independently.

Factory methods can be useful for this sort of thing - you can change 
the class of the interface implementation a factory returns without 
having to edit its callers. They are much more flexible than constructors.

I'm thinking of replacing the current TaskManager.Task interface with 
one in which the runAfter method returns a Task it needs to run after, 
null if there is none, rather than just saying whether there is one. 
Also, I want to get them off indexed access to Iterable access, so that 
I am not forced to use a fast random access List to implement the 
collection runAfter checks. It would only take a small change in the 
current task manager to use that interface. Once that is done, I can 
play with TaskManager scalability editing only TaskManager, not its callers.

Can you suggest some background reading for your security work? I have a 
good background in proof-of-correctness (my bachelor's degree was in 
mathematics) which might be a useful viewpoint for your peer review, but 
I don't know enough about security within a Java program.

Patricia

Re: ServiceDiscoveryManager test coverage

Posted by Jonathan Costers <jo...@googlemail.com>.
I enabled some more logging for the QA harness, here is the full log for the
failing test:
https://hudson.apache.org/hudson/job/River-trunk-QA/ws/jtsk/trunk/qa/result/com_sun_jini_test_spec_lookupdiscovery_MulticastMonitorAllChange.td.txt

The relevant section:

BaseQATest.waitForDiscovery FINE:    events expected (3) == events
received (3), all locators equal
BaseQATest.waitForDiscovery FINE:  DISCOVERY wait period complete
BaseQATest.waitForDiscovery FINE:  3 discovery event(s) expected, 3
discovery event(s) received
BaseQATest.replaceMemberGroups FINE:  lookup service 0 - replacing
member groups with --
BaseQATest.replaceMemberGroups FINE:    newGroups[0] =
LDGroup0_A_hudson_solaris_1283506469271_new
BaseQATest.replaceMemberGroups FINE:    newGroups[1] =
LDGroup0_B_hudson_solaris_1283506469271_new
BaseQATest.replaceMemberGroups FINE:    newGroups[2] =
LDGroup0_C_hudson_solaris_1283506469271_new
BaseQATest.replaceMemberGroups FINE:  lookup service 1 - replacing
member groups with --
BaseQATest.replaceMemberGroups FINE:    newGroups[0] =
LDGroup2_A_hudson_solaris_1283506469271_new
BaseQATest.replaceMemberGroups FINE:    newGroups[1] =
LDGroup2_B_hudson_solaris_1283506469271_new
BaseQATest.replaceMemberGroups FINE:    newGroups[2] =
LDGroup2_C_hudson_solaris_1283506469271_new
BaseQATest.replaceMemberGroups FINE:  lookup service 2 - replacing
member groups with --
BaseQATest.replaceMemberGroups FINE:    newGroups[0] =
LDGroup1_A_hudson_solaris_1283506469271_new
BaseQATest.replaceMemberGroups FINE:    newGroups[1] =
LDGroup1_B_hudson_solaris_1283506469271_new
BaseQATest.replaceMemberGroups FINE:    newGroups[2] =
LDGroup1_C_hudson_solaris_1283506469271_new
BaseQATest.replaceMemberGroups FINE:    newGroups[3] =
LDGroup1_D_hudson_solaris_1283506469271_new
BaseQATest.waitForChange FINE:  for CHANGE events -- waiting at least
30 seconds, but no more than 900 seconds ...

TIME: 9:35:31 AM

BaseQATest.waitForChange FINE:  initial wait period complete ...
waiting at most 870 more seconds ...
BaseQATest.waitForChange FINE:    changedMap.size == 0
BaseQATest.waitForChange FINE:    expectedChangedMap.size == 3
BaseQATest.waitForChange FINE:    expectedChangedMap.locator =
ConstrainableLookupLocator[[jini://hudson_solaris:58101/], [null]]
BaseQATest.waitForChange FINE:      expectedChangedMap.groups[0] ==
LDGroup2_A_hudson_solaris_1283506469271_new
BaseQATest.waitForChange FINE:      expectedChangedMap.groups[1] ==
LDGroup2_B_hudson_solaris_1283506469271_new
BaseQATest.waitForChange FINE:      expectedChangedMap.groups[2] ==
LDGroup2_C_hudson_solaris_1283506469271_new
BaseQATest.waitForChange FINE:    expectedChangedMap.locator =
ConstrainableLookupLocator[[jini://hudson_solaris:58098/], [null]]
BaseQATest.waitForChange FINE:      expectedChangedMap.groups[0] ==
LDGroup1_A_hudson_solaris_1283506469271_new
BaseQATest.waitForChange FINE:      expectedChangedMap.groups[1] ==
LDGroup1_B_hudson_solaris_1283506469271_new
BaseQATest.waitForChange FINE:      expectedChangedMap.groups[2] ==
LDGroup1_C_hudson_solaris_1283506469271_new
BaseQATest.waitForChange FINE:      expectedChangedMap.groups[3] ==
LDGroup1_D_hudson_solaris_1283506469271_new
BaseQATest.waitForChange FINE:    expectedChangedMap.locator =
ConstrainableLookupLocator[[jini://hudson_solaris/], [null]]
BaseQATest.waitForChange FINE:      expectedChangedMap.groups[0] ==
LDGroup0_A_hudson_solaris_1283506469271_new
BaseQATest.waitForChange FINE:      expectedChangedMap.groups[1] ==
LDGroup0_B_hudson_solaris_1283506469271_new
BaseQATest.waitForChange FINE:      expectedChangedMap.groups[2] ==
LDGroup0_C_hudson_solaris_1283506469271_new

TIME: 9:50:09 AM

BaseQATest.waitForChange FINE:    events expected (3) != events received (0)
BaseQATest.waitForChange FINE:  CHANGE wait period complete
com.sun.jini.qa.harness.TestException: change failed -- waited 870
seconds (14 minutes) -- 3 change event(s) expected, 0 change event(s)
received
	at com.sun.jini.test.share.BaseQATest.waitForChange(Unknown Source)
	at com.sun.jini.test.spec.lookupdiscovery.MulticastMonitorChange.run(Unknown
Source)
	at com.sun.jini.qa.harness.MasterTest.doTest(Unknown Source)
	at com.sun.jini.qa.harness.MasterTest.main(Unknown Source)


So there seems to be a failure receiving the expected discovery change
events (obviously).
I'll look into this asap, I won't have much time this weekend though.


2010/9/3 Peter Firmstone <ji...@zeus.net.au>

> Thanks for the compliment.
>
> I'm looking forward to having some help, programming alone isn't much fun,
> I've been quite busy, so a short break to let others show off their skills
> while I get some much needed rest is all good.
>
> This is probably also a very good opportunity to finally get some much
> needed peer review.
>
> Welcome aboard,
>
> Peter.
>
> N.B. I'd probably break the work up into three items:
>
>  1. Concurrent policy providers. - should be an easy quick merge.
>  2. RevokeableDynamicPolicy and Security delegates. - experimental,
>     this could take some time, how to avoid divergence?  Can we merge
>     trunk into skunk periodically to keep it up to date?
>  3. StreamingServiceRegistrar, delayed unmarshalling and maven
>     provisioning support - this really needs everybody's input, it's a
>     core change we'll have to live with for a long time.
>
>
>
> Patricia Shanahan wrote:
>
>> Peter Firmstone wrote:
>>
>>> Well I must say the recent participation is very encouraging, this
>>> project had a record number of emails to the development mailing list last
>>> month, but I don't come from a Programming background, I'm not an expert and
>>> don't have any merging experience.
>>>
>>
>> Regardless of whether you have formal programming education, you seem to
>> me to be a very talented and capable programmer. Organization of complex
>> multi-person software projects is a different subject.
>>
>> Checking everything directly into the trunk works well on a reasonably
>> small single person project, but I do not think it is a good plan for River
>> with multiple active developers.
>>
>>  Therefore in this case I'd prefer to observe rather than vote for any
>>> particular methodology or risk letting my own wants or ego stand in the way
>>> of what River needs, which is increasing participation and innovation.
>>>
>>> I have no objections to you reverting the changes.
>>>
>>
>> For what it is worth, I strongly agree with the plan Jonathan proposes.
>>
>> I would like to get ASAP to a head trunk revision that runs all known
>> tests, then spawn off at least one branch for your work, possibly more than
>> one if it splits into separate threads that you want to push in parallel,
>> and a NewTaskManager branch with a solid basis. I hope Jonathan will
>> continue the excellent work he is doing on getting the tests organized and
>> running regularly.
>>
>> Like you, I need to learn branching and merging in SVN. I've done it in
>> other revision control systems, and the general idea is hand merging only
>> for those files that have been modified since your branch was spawned off.
>>
>> Perhaps someone can recommend a tutorial that covers SVN the way it is
>> used in Apache?
>>
>> Also, maybe we should do some branching and merging in the skunk area to
>> build confidence that we can do it right, and familiarity with what happens
>> during a merge.
>>
>>  I expect that you'll continue participating and perhaps blaze the trail
>>> as leading developers, so that I can watch and learn, I'm interested to see
>>> what you have in mind.
>>>
>>> River needs people willing to do the leg work necessary to succeed.
>>>
>>
>> Agreed.
>>
>>
>>> Best Regards,
>>>
>>> Peter.
>>>
>>> Jonathan Costers wrote:
>>>
>>>> I have to agree with Sim here ...
>>>>
>>>> I'd say (if it were entirely up to me):
>>>> 1. backout the changes
>>>> 2. make sure the current QA tests run
>>>> 3. add categories servicediscovery,discoveryservice,io and security to
>>>> the
>>>> QA test categories to run by Hudson, one by one
>>>> 4. make sure these QA tests run as well
>>>> 5. piece by piece, restore the changes and keep an eye on any tests
>>>> failing.
>>>> In parallel, keep validating and adding more QA test categories.
>>>>
>>>> This would allow us to work in a more structured manner, and to perform
>>>> peer
>>>> reviews on bite size changes.
>>>> We have to better organize ourselves, considering the limited resources
>>>> we
>>>> have.
>>>>
>>>> To summarize:
>>>> - the changes to RemoteEvent etc. caused many discovery related tests to
>>>> fail
>>>> - the changes to ClassLoading caused some classloading / io related
>>>> tests to
>>>> fail
>>>> - the changes to DynamicPolicyProvider caused security (and other) tests
>>>> to
>>>> fail
>>>>
>>>> And that's what I found after going through it very quickly and backing
>>>> out
>>>> some obvious things.
>>>> These actually look more like experiments than actual tested changes.
>>>> IMO, this kind of experimentation should probably be done in a skunk
>>>> branch,
>>>> not the trunk.
>>>>
>>>> If for any reason, my understanding is incorrect, and backing out is not
>>>> an
>>>> option, then I would suggest to at least create a JIRA issue for each of
>>>> the
>>>> above topics.
>>>>
>>>> Thanks
>>>> Jonathan
>>>>
>>>> 2010/9/1 Peter Firmstone <ji...@zeus.net.au>
>>>>
>>>>
>>>>
>>>>> Sim IJskes - QCG wrote:
>>>>>
>>>>>
>>>>>
>>>>>> On 09/01/2010 01:16 AM, Jonathan Costers wrote:
>>>>>>
>>>>>>
>>>>>>
>>>>>>> Similarly, having backed out the RemoteEvent changes, and running the
>>>>>>> "discoveryservice" category:
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>> It looks to me, that the code in the trunk was not completely ready.
>>>>>>
>>>>>>
>>>>>>
>>>>> It looks that way.
>>>>>
>>>>>
>>>>>  Would it be a good idea to revert the changes until the unit tests run
>>>>>
>>>>>
>>>>>> again, and build a branch in svn to continue the work?
>>>>>>
>>>>>>
>>>>>>
>>>>> Let me get my head around understanding the failures first before we
>>>>> revert.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>> If a committer (with svn access) needs help, i can offer some
>>>>>> assistance.
>>>>>>
>>>>>>
>>>>>>
>>>>> Thanks ;) much appreciated.
>>>>>
>>>>>
>>>>>
>>>>>> Gr. Sim
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>>
>>
>>
>

Re: ServiceDiscoveryManager test coverage

Posted by Peter Firmstone <ji...@zeus.net.au>.
Thanks for the compliment.

I'm looking forward to having some help, programming alone isn't much 
fun, I've been quite busy, so a short break to let others show off their 
skills while I get some much needed rest is all good.

This is probably also a very good opportunity to finally get some much 
needed peer review.

Welcome aboard,

Peter.

N.B. I'd probably break the work up into three items:

   1. Concurrent policy providers. - should be an easy quick merge.
   2. RevokeableDynamicPolicy and Security delegates. - experimental,
      this could take some time, how to avoid divergence?  Can we merge
      trunk into skunk periodically to keep it up to date?
   3. StreamingServiceRegistrar, delayed unmarshalling and maven
      provisioning support - this really needs everybody's input, it's a
      core change we'll have to live with for a long time.


Patricia Shanahan wrote:
> Peter Firmstone wrote:
>> Well I must say the recent participation is very encouraging, this 
>> project had a record number of emails to the development mailing list 
>> last month, but I don't come from a Programming background, I'm not 
>> an expert and don't have any merging experience.
>
> Regardless of whether you have formal programming education, you seem 
> to me to be a very talented and capable programmer. Organization of 
> complex multi-person software projects is a different subject.
>
> Checking everything directly into the trunk works well on a reasonably 
> small single person project, but I do not think it is a good plan for 
> River with multiple active developers.
>
>> Therefore in this case I'd prefer to observe rather than vote for any 
>> particular methodology or risk letting my own wants or ego stand in 
>> the way of what River needs, which is increasing participation and 
>> innovation.
>>
>> I have no objections to you reverting the changes.
>
> For what it is worth, I strongly agree with the plan Jonathan proposes.
>
> I would like to get ASAP to a head trunk revision that runs all known 
> tests, then spawn off at least one branch for your work, possibly more 
> than one if it splits into separate threads that you want to push in 
> parallel, and a NewTaskManager branch with a solid basis. I hope 
> Jonathan will continue the excellent work he is doing on getting the 
> tests organized and running regularly.
>
> Like you, I need to learn branching and merging in SVN. I've done it 
> in other revision control systems, and the general idea is hand 
> merging only for those files that have been modified since your branch 
> was spawned off.
>
> Perhaps someone can recommend a tutorial that covers SVN the way it is 
> used in Apache?
>
> Also, maybe we should do some branching and merging in the skunk area 
> to build confidence that we can do it right, and familiarity with what 
> happens during a merge.
>
>> I expect that you'll continue participating and perhaps blaze the 
>> trail as leading developers, so that I can watch and learn, I'm 
>> interested to see what you have in mind.
>>
>> River needs people willing to do the leg work necessary to succeed.
>
> Agreed.
>
>>
>> Best Regards,
>>
>> Peter.
>>
>> Jonathan Costers wrote:
>>> I have to agree with Sim here ...
>>>
>>> I'd say (if it were entirely up to me):
>>> 1. backout the changes
>>> 2. make sure the current QA tests run
>>> 3. add categories servicediscovery,discoveryservice,io and security 
>>> to the
>>> QA test categories to run by Hudson, one by one
>>> 4. make sure these QA tests run as well
>>> 5. piece by piece, restore the changes and keep an eye on any tests 
>>> failing.
>>> In parallel, keep validating and adding more QA test categories.
>>>
>>> This would allow us to work in a more structured manner, and to 
>>> perform peer
>>> reviews on bite size changes.
>>> We have to better organize ourselves, considering the limited 
>>> resources we
>>> have.
>>>
>>> To summarize:
>>> - the changes to RemoteEvent etc. caused many discovery related 
>>> tests to
>>> fail
>>> - the changes to ClassLoading caused some classloading / io related 
>>> tests to
>>> fail
>>> - the changes to DynamicPolicyProvider caused security (and other) 
>>> tests to
>>> fail
>>>
>>> And that's what I found after going through it very quickly and 
>>> backing out
>>> some obvious things.
>>> These actually look more like experiments than actual tested changes.
>>> IMO, this kind of experimentation should probably be done in a skunk 
>>> branch,
>>> not the trunk.
>>>
>>> If for any reason, my understanding is incorrect, and backing out is 
>>> not an
>>> option, then I would suggest to at least create a JIRA issue for 
>>> each of the
>>> above topics.
>>>
>>> Thanks
>>> Jonathan
>>>
>>> 2010/9/1 Peter Firmstone <ji...@zeus.net.au>
>>>
>>>  
>>>> Sim IJskes - QCG wrote:
>>>>
>>>>   
>>>>> On 09/01/2010 01:16 AM, Jonathan Costers wrote:
>>>>>
>>>>>     
>>>>>> Similarly, having backed out the RemoteEvent changes, and running 
>>>>>> the
>>>>>> "discoveryservice" category:
>>>>>>
>>>>>>         
>>>>> It looks to me, that the code in the trunk was not completely ready.
>>>>>
>>>>>       
>>>> It looks that way.
>>>>
>>>>
>>>>  Would it be a good idea to revert the changes until the unit tests 
>>>> run
>>>>   
>>>>> again, and build a branch in svn to continue the work?
>>>>>
>>>>>       
>>>> Let me get my head around understanding the failures first before we
>>>> revert.
>>>>
>>>>
>>>>
>>>>
>>>>   
>>>>> If a committer (with svn access) needs help, i can offer some 
>>>>> assistance.
>>>>>
>>>>>       
>>>> Thanks ;) much appreciated.
>>>>
>>>>   
>>>>> Gr. Sim
>>>>>
>>>>>
>>>>>
>>>>>       
>>>
>>>   
>>
>>
>
>


Re: ServiceDiscoveryManager test coverage

Posted by Jonathan Costers <jo...@googlemail.com>.
Test results report for latest QA run is available at:
https://hudson.apache.org/hudson/view/River/job/River-trunk-QA/ws/jtsk/trunk/qa/result/index.html

2010/9/2 Jonathan Costers <jo...@googlemail.com>

> OK I backed out some changes (RemoteEvent, ClassLoading,
> DynamicPolicyProvider etc.) yesterday and added the previously failing test
> categories servicediscovery, io and security to the list (which added
> another 10% or so to our test coverage).
>
> Result from Hudson:
>
> [java] -----------------------------------------
>      [java]
>      [java] # of tests started   = 581
>      [java] # of tests completed = 581
>      [java] # of tests skipped   = 21
>
>      [java] # of tests passed    = 580
>      [java] # of tests failed    = 1
>
>      [java]
>      [java] -----------------------------------------
>      [java]
>      [java]    Date finished:
>      [java]       Thu Sep 02 03:28:07 GMT+00:00 2010
>
>      [java]    Time elapsed:
>      [java]       17536 seconds
>
>
>
> We still seem to have one QA test failing:
>
> [java] -----------------------------------------
>      [java] com/sun/jini/test/spec/lookupdiscovery/MulticastMonitorAllChange.td
>
>      [java] Test Failed: Test Failed: com.sun.jini.qa.harness.TestException: change failed -- waited 870 seconds (14 minutes) -- 3 change event(s) expected, 0 change event(s) received
>
>
> Which I am not able to reproduce locally ...
> I have probably overlooked something, will check why this particular test
> fails on Hudson tonight.
>
> In the mean time, would anybody be willing to run this failing test a
> couple of times and share the results?
>
> Thanks
> Jonathan
>

Re: ServiceDiscoveryManager test coverage

Posted by Jonathan Costers <jo...@googlemail.com>.
OK I backed out some changes (RemoteEvent, ClassLoading,
DynamicPolicyProvider etc.) yesterday and added the previously failing test
categories servicediscovery, io and security to the list (which added
another 10% or so to our test coverage).

Result from Hudson:

[java] -----------------------------------------
     [java]
     [java] # of tests started   = 581
     [java] # of tests completed = 581
     [java] # of tests skipped   = 21
     [java] # of tests passed    = 580
     [java] # of tests failed    = 1
     [java]
     [java] -----------------------------------------
     [java]
     [java]    Date finished:
     [java]       Thu Sep 02 03:28:07 GMT+00:00 2010
     [java]    Time elapsed:
     [java]       17536 seconds



We still seem to have one QA test failing:

[java] -----------------------------------------
     [java] com/sun/jini/test/spec/lookupdiscovery/MulticastMonitorAllChange.td
     [java] Test Failed: Test Failed:
com.sun.jini.qa.harness.TestException: change failed -- waited 870
seconds (14 minutes) -- 3 change event(s) expected, 0 change event(s)
received


Which I am not able to reproduce locally ...
I have probably overlooked something, will check why this particular test
fails on Hudson tonight.

In the mean time, would anybody be willing to run this failing test a couple
of times and share the results?

Thanks
Jonathan

Re: ServiceDiscoveryManager test coverage

Posted by Sim IJskes - QCG <si...@qcg.nl>.
On 09/01/2010 08:06 PM, Patricia Shanahan wrote:
> On 9/1/2010 9:04 AM, Sim IJskes - QCG wrote:
>> On 09/01/2010 05:05 PM, Jonathan Costers wrote:
>>> OK, looks like we have agreement.
>>> I'll try to at least initiate my proposal later today.
>>> Thanks
>>> Jonathan
>>
>> Can we add that we vote before merging, after a peer review, and provide
>> a quick path for securityfixes on the trunk?
>
> I'm not sure that the quick path criterion should be
> security/not-security. Some of Peter's security work seems to me to be
> complicated enough that it should go through a peer review before
> merging. On the other hand, as Jonathan has suggested in another e-mail,
> a separate branch may be overkill for a very simple change. A fix may be
> urgent for other reasons than security.

Indeed, could we agree on a quick poll on the list for an urgent and/or 
trivial fix. And an absolute requirement to have a working test after a 
commit?

Gr. Sim


Re: ServiceDiscoveryManager test coverage

Posted by Patricia Shanahan <pa...@acm.org>.
On 9/1/2010 9:04 AM, Sim IJskes - QCG wrote:
> On 09/01/2010 05:05 PM, Jonathan Costers wrote:
>> OK, looks like we have agreement.
>> I'll try to at least initiate my proposal later today.
>> Thanks
>> Jonathan
>
> Can we add that we vote before merging, after a peer review, and provide
> a quick path for securityfixes on the trunk?

I'm not sure that the quick path criterion should be 
security/not-security. Some of Peter's security work seems to me to be 
complicated enough that it should go through a peer review before 
merging. On the other hand, as Jonathan has suggested in another e-mail, 
a separate branch may be overkill for a very simple change. A fix may be 
urgent for other reasons than security.

I do think that anything non-trivial should go through peer review 
before merge into the trunk, for several reasons:

A reviewer may see a flaw, or ask a question that makes the programmer 
see a flaw.

It is very desirable to have at least two people understand every recent 
change, for backup.

Peer review automatically provides a check on code readability.

Reviewers can check that the test suite has been upgraded if necessary. 
The new code may have flows that are not adequately covered by existing 
tests.

Patricia





Re: ServiceDiscoveryManager test coverage

Posted by Sim IJskes - QCG <si...@qcg.nl>.
On 09/01/2010 05:05 PM, Jonathan Costers wrote:
> OK, looks like we have agreement.
> I'll try to at least initiate my proposal later today.
> Thanks
> Jonathan

Can we add that we vote before merging, after a peer review, and provide 
a quick path for securityfixes on the trunk?

We can have several independent working groups working in different 
branches, adhoc style, and have a more formal planning process for 
merging those changes.

Gr. Sim


Re: ServiceDiscoveryManager test coverage

Posted by Jonathan Costers <jo...@googlemail.com>.
OK, looks like we have agreement.
I'll try to at least initiate my proposal later today.
Thanks
Jonathan

2010/9/1 Patricia Shanahan <pa...@acm.org>

> Peter Firmstone wrote:
>
>> Well I must say the recent participation is very encouraging, this project
>> had a record number of emails to the development mailing list last month,
>> but I don't come from a Programming background, I'm not an expert and don't
>> have any merging experience.
>>
>
> Regardless of whether you have formal programming education, you seem to me
> to be a very talented and capable programmer. Organization of complex
> multi-person software projects is a different subject.
>
> Checking everything directly into the trunk works well on a reasonably
> small single person project, but I do not think it is a good plan for River
> with multiple active developers.
>
>
>  Therefore in this case I'd prefer to observe rather than vote for any
>> particular methodology or risk letting my own wants or ego stand in the way
>> of what River needs, which is increasing participation and innovation.
>>
>> I have no objections to you reverting the changes.
>>
>
> For what it is worth, I strongly agree with the plan Jonathan proposes.
>
> I would like to get ASAP to a head trunk revision that runs all known
> tests, then spawn off at least one branch for your work, possibly more than
> one if it splits into separate threads that you want to push in parallel,
> and a NewTaskManager branch with a solid basis. I hope Jonathan will
> continue the excellent work he is doing on getting the tests organized and
> running regularly.
>
> Like you, I need to learn branching and merging in SVN. I've done it in
> other revision control systems, and the general idea is hand merging only
> for those files that have been modified since your branch was spawned off.
>
> Perhaps someone can recommend a tutorial that covers SVN the way it is used
> in Apache?
>
> Also, maybe we should do some branching and merging in the skunk area to
> build confidence that we can do it right, and familiarity with what happens
> during a merge.
>
>
>  I expect that you'll continue participating and perhaps blaze the trail as
>> leading developers, so that I can watch and learn, I'm interested to see
>> what you have in mind.
>>
>> River needs people willing to do the leg work necessary to succeed.
>>
>
> Agreed.
>
>
>
>> Best Regards,
>>
>> Peter.
>>
>> Jonathan Costers wrote:
>>
>>> I have to agree with Sim here ...
>>>
>>> I'd say (if it were entirely up to me):
>>> 1. backout the changes
>>> 2. make sure the current QA tests run
>>> 3. add categories servicediscovery,discoveryservice,io and security to
>>> the
>>> QA test categories to run by Hudson, one by one
>>> 4. make sure these QA tests run as well
>>> 5. piece by piece, restore the changes and keep an eye on any tests
>>> failing.
>>> In parallel, keep validating and adding more QA test categories.
>>>
>>> This would allow us to work in a more structured manner, and to perform
>>> peer
>>> reviews on bite size changes.
>>> We have to better organize ourselves, considering the limited resources
>>> we
>>> have.
>>>
>>> To summarize:
>>> - the changes to RemoteEvent etc. caused many discovery related tests to
>>> fail
>>> - the changes to ClassLoading caused some classloading / io related tests
>>> to
>>> fail
>>> - the changes to DynamicPolicyProvider caused security (and other) tests
>>> to
>>> fail
>>>
>>> And that's what I found after going through it very quickly and backing
>>> out
>>> some obvious things.
>>> These actually look more like experiments than actual tested changes.
>>> IMO, this kind of experimentation should probably be done in a skunk
>>> branch,
>>> not the trunk.
>>>
>>> If for any reason, my understanding is incorrect, and backing out is not
>>> an
>>> option, then I would suggest to at least create a JIRA issue for each of
>>> the
>>> above topics.
>>>
>>> Thanks
>>> Jonathan
>>>
>>> 2010/9/1 Peter Firmstone <ji...@zeus.net.au>
>>>
>>>
>>>
>>>> Sim IJskes - QCG wrote:
>>>>
>>>>
>>>>
>>>>> On 09/01/2010 01:16 AM, Jonathan Costers wrote:
>>>>>
>>>>>
>>>>>
>>>>>> Similarly, having backed out the RemoteEvent changes, and running the
>>>>>> "discoveryservice" category:
>>>>>>
>>>>>>
>>>>>>
>>>>> It looks to me, that the code in the trunk was not completely ready.
>>>>>
>>>>>
>>>>>
>>>> It looks that way.
>>>>
>>>>
>>>>  Would it be a good idea to revert the changes until the unit tests run
>>>>
>>>>
>>>>> again, and build a branch in svn to continue the work?
>>>>>
>>>>>
>>>>>
>>>> Let me get my head around understanding the failures first before we
>>>> revert.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>> If a committer (with svn access) needs help, i can offer some
>>>>> assistance.
>>>>>
>>>>>
>>>>>
>>>> Thanks ;) much appreciated.
>>>>
>>>>
>>>>
>>>>> Gr. Sim
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>
>>>
>>
>>
>>
>

Re: ServiceDiscoveryManager test coverage

Posted by Jonathan Costers <jo...@googlemail.com>.
2010/9/1 Patricia Shanahan <pa...@acm.org>

> Peter Firmstone wrote:
>
>> Well I must say the recent participation is very encouraging, this project
>> had a record number of emails to the development mailing list last month,
>> but I don't come from a Programming background, I'm not an expert and don't
>> have any merging experience.
>>
>
> Regardless of whether you have formal programming education, you seem to me
> to be a very talented and capable programmer. Organization of complex
> multi-person software projects is a different subject.
>
>
It requires quite some programming knowledge and experience to take on the
things you have ... Jini technology has a very steep learning curve. I've
been dealing with it on and off over the last 10 years and there are still
many areas I do not completely understand. However, digging in the code is
the best way to learn, as you've shown.
This is actually a good example that someone with the right mindset,
dedication and common sense can become a River developer (hint to anybody on
this list hesitant to contribute ..).
The ideas you are working on are certainly interesting, so I would encourage
you to continue them!


> Checking everything directly into the trunk works well on a reasonably
> small single person project, but I do not think it is a good plan for River
> with multiple active developers.
>
>
There are situations where a commit to the trunk may be appropriate though:
- trivial fixes/changes (creating a branch for each of these would be
overkill)
- emergencies
- security fixes?

It's the big, experimental changes that should be developed and tested in a
skunk branch, IMO.
Keep in mind that branching automatically also means merging with the trunk,
which can be a tedious exercise, depending on how much the two have diverted
from each other over time.


>  Therefore in this case I'd prefer to observe rather than vote for any
>> particular methodology or risk letting my own wants or ego stand in the way
>> of what River needs, which is increasing participation and innovation.
>>
>> I have no objections to you reverting the changes.
>>
>
> For what it is worth, I strongly agree with the plan Jonathan proposes.
>
> I would like to get ASAP to a head trunk revision that runs all known
> tests, then spawn off at least one branch for your work, possibly more than
> one if it splits into separate threads that you want to push in parallel,
> and a NewTaskManager branch with a solid basis. I hope Jonathan will
> continue the excellent work he is doing on getting the tests organized and
> running regularly.
>
> Like you, I need to learn branching and merging in SVN. I've done it in
> other revision control systems, and the general idea is hand merging only
> for those files that have been modified since your branch was spawned off.
>
> Perhaps someone can recommend a tutorial that covers SVN the way it is used
> in Apache?
>

The following links may be of interest:
http://www.apache.org/dev/contributors.html
http://svnbook.red-bean.com/

Re: ServiceDiscoveryManager test coverage

Posted by Patricia Shanahan <pa...@acm.org>.
Peter Firmstone wrote:
> Well I must say the recent participation is very encouraging, this 
> project had a record number of emails to the development mailing list 
> last month, but I don't come from a Programming background, I'm not an 
> expert and don't have any merging experience.

Regardless of whether you have formal programming education, you seem to 
me to be a very talented and capable programmer. Organization of complex 
multi-person software projects is a different subject.

Checking everything directly into the trunk works well on a reasonably 
small single person project, but I do not think it is a good plan for 
River with multiple active developers.

> Therefore in this case I'd prefer to observe rather than vote for any 
> particular methodology or risk letting my own wants or ego stand in the 
> way of what River needs, which is increasing participation and innovation.
> 
> I have no objections to you reverting the changes.

For what it is worth, I strongly agree with the plan Jonathan proposes.

I would like to get ASAP to a head trunk revision that runs all known 
tests, then spawn off at least one branch for your work, possibly more 
than one if it splits into separate threads that you want to push in 
parallel, and a NewTaskManager branch with a solid basis. I hope 
Jonathan will continue the excellent work he is doing on getting the 
tests organized and running regularly.

Like you, I need to learn branching and merging in SVN. I've done it in 
other revision control systems, and the general idea is hand merging 
only for those files that have been modified since your branch was 
spawned off.

Perhaps someone can recommend a tutorial that covers SVN the way it is 
used in Apache?

Also, maybe we should do some branching and merging in the skunk area to 
build confidence that we can do it right, and familiarity with what 
happens during a merge.

> I expect that you'll continue participating and perhaps blaze the trail 
> as leading developers, so that I can watch and learn, I'm interested to 
> see what you have in mind.
> 
> River needs people willing to do the leg work necessary to succeed.

Agreed.

> 
> Best Regards,
> 
> Peter.
> 
> Jonathan Costers wrote:
>> I have to agree with Sim here ...
>>
>> I'd say (if it were entirely up to me):
>> 1. backout the changes
>> 2. make sure the current QA tests run
>> 3. add categories servicediscovery,discoveryservice,io and security to 
>> the
>> QA test categories to run by Hudson, one by one
>> 4. make sure these QA tests run as well
>> 5. piece by piece, restore the changes and keep an eye on any tests 
>> failing.
>> In parallel, keep validating and adding more QA test categories.
>>
>> This would allow us to work in a more structured manner, and to 
>> perform peer
>> reviews on bite size changes.
>> We have to better organize ourselves, considering the limited 
>> resources we
>> have.
>>
>> To summarize:
>> - the changes to RemoteEvent etc. caused many discovery related tests to
>> fail
>> - the changes to ClassLoading caused some classloading / io related 
>> tests to
>> fail
>> - the changes to DynamicPolicyProvider caused security (and other) 
>> tests to
>> fail
>>
>> And that's what I found after going through it very quickly and 
>> backing out
>> some obvious things.
>> These actually look more like experiments than actual tested changes.
>> IMO, this kind of experimentation should probably be done in a skunk 
>> branch,
>> not the trunk.
>>
>> If for any reason, my understanding is incorrect, and backing out is 
>> not an
>> option, then I would suggest to at least create a JIRA issue for each 
>> of the
>> above topics.
>>
>> Thanks
>> Jonathan
>>
>> 2010/9/1 Peter Firmstone <ji...@zeus.net.au>
>>
>>  
>>> Sim IJskes - QCG wrote:
>>>
>>>    
>>>> On 09/01/2010 01:16 AM, Jonathan Costers wrote:
>>>>
>>>>      
>>>>> Similarly, having backed out the RemoteEvent changes, and running the
>>>>> "discoveryservice" category:
>>>>>
>>>>>         
>>>> It looks to me, that the code in the trunk was not completely ready.
>>>>
>>>>       
>>> It looks that way.
>>>
>>>
>>>  Would it be a good idea to revert the changes until the unit tests run
>>>    
>>>> again, and build a branch in svn to continue the work?
>>>>
>>>>       
>>> Let me get my head around understanding the failures first before we
>>> revert.
>>>
>>>
>>>
>>>
>>>    
>>>> If a committer (with svn access) needs help, i can offer some 
>>>> assistance.
>>>>
>>>>       
>>> Thanks ;) much appreciated.
>>>
>>>    
>>>> Gr. Sim
>>>>
>>>>
>>>>
>>>>       
>>
>>   
> 
> 


Re: ServiceDiscoveryManager test coverage

Posted by Peter Firmstone <ji...@zeus.net.au>.
Well I must say the recent participation is very encouraging, this 
project had a record number of emails to the development mailing list 
last month, but I don't come from a Programming background, I'm not an 
expert and don't have any merging experience.

Therefore in this case I'd prefer to observe rather than vote for any 
particular methodology or risk letting my own wants or ego stand in the 
way of what River needs, which is increasing participation and innovation.

I have no objections to you reverting the changes.

I expect that you'll continue participating and perhaps blaze the trail 
as leading developers, so that I can watch and learn, I'm interested to 
see what you have in mind.

River needs people willing to do the leg work necessary to succeed.

Best Regards,

Peter.

Jonathan Costers wrote:
> I have to agree with Sim here ...
>
> I'd say (if it were entirely up to me):
> 1. backout the changes
> 2. make sure the current QA tests run
> 3. add categories servicediscovery,discoveryservice,io and security to the
> QA test categories to run by Hudson, one by one
> 4. make sure these QA tests run as well
> 5. piece by piece, restore the changes and keep an eye on any tests failing.
> In parallel, keep validating and adding more QA test categories.
>
> This would allow us to work in a more structured manner, and to perform peer
> reviews on bite size changes.
> We have to better organize ourselves, considering the limited resources we
> have.
>
> To summarize:
> - the changes to RemoteEvent etc. caused many discovery related tests to
> fail
> - the changes to ClassLoading caused some classloading / io related tests to
> fail
> - the changes to DynamicPolicyProvider caused security (and other) tests to
> fail
>
> And that's what I found after going through it very quickly and backing out
> some obvious things.
> These actually look more like experiments than actual tested changes.
> IMO, this kind of experimentation should probably be done in a skunk branch,
> not the trunk.
>
> If for any reason, my understanding is incorrect, and backing out is not an
> option, then I would suggest to at least create a JIRA issue for each of the
> above topics.
>
> Thanks
> Jonathan
>
> 2010/9/1 Peter Firmstone <ji...@zeus.net.au>
>
>   
>> Sim IJskes - QCG wrote:
>>
>>     
>>> On 09/01/2010 01:16 AM, Jonathan Costers wrote:
>>>
>>>       
>>>> Similarly, having backed out the RemoteEvent changes, and running the
>>>> "discoveryservice" category:
>>>>
>>>>         
>>> It looks to me, that the code in the trunk was not completely ready.
>>>
>>>       
>> It looks that way.
>>
>>
>>  Would it be a good idea to revert the changes until the unit tests run
>>     
>>> again, and build a branch in svn to continue the work?
>>>
>>>       
>> Let me get my head around understanding the failures first before we
>> revert.
>>
>>
>>
>>
>>     
>>> If a committer (with svn access) needs help, i can offer some assistance.
>>>
>>>       
>> Thanks ;) much appreciated.
>>
>>     
>>> Gr. Sim
>>>
>>>
>>>
>>>       
>
>   


Re: ServiceDiscoveryManager test coverage

Posted by Jonathan Costers <jo...@googlemail.com>.
I have to agree with Sim here ...

I'd say (if it were entirely up to me):
1. backout the changes
2. make sure the current QA tests run
3. add categories servicediscovery,discoveryservice,io and security to the
QA test categories to run by Hudson, one by one
4. make sure these QA tests run as well
5. piece by piece, restore the changes and keep an eye on any tests failing.
In parallel, keep validating and adding more QA test categories.

This would allow us to work in a more structured manner, and to perform peer
reviews on bite size changes.
We have to better organize ourselves, considering the limited resources we
have.

To summarize:
- the changes to RemoteEvent etc. caused many discovery related tests to
fail
- the changes to ClassLoading caused some classloading / io related tests to
fail
- the changes to DynamicPolicyProvider caused security (and other) tests to
fail

And that's what I found after going through it very quickly and backing out
some obvious things.
These actually look more like experiments than actual tested changes.
IMO, this kind of experimentation should probably be done in a skunk branch,
not the trunk.

If for any reason, my understanding is incorrect, and backing out is not an
option, then I would suggest to at least create a JIRA issue for each of the
above topics.

Thanks
Jonathan

2010/9/1 Peter Firmstone <ji...@zeus.net.au>

> Sim IJskes - QCG wrote:
>
>> On 09/01/2010 01:16 AM, Jonathan Costers wrote:
>>
>>> Similarly, having backed out the RemoteEvent changes, and running the
>>> "discoveryservice" category:
>>>
>>
>> It looks to me, that the code in the trunk was not completely ready.
>>
>
> It looks that way.
>
>
>  Would it be a good idea to revert the changes until the unit tests run
>> again, and build a branch in svn to continue the work?
>>
>
> Let me get my head around understanding the failures first before we
> revert.
>
>
>
>
>> If a committer (with svn access) needs help, i can offer some assistance.
>>
>
> Thanks ;) much appreciated.
>
>>
>> Gr. Sim
>>
>>
>>
>

Re: ServiceDiscoveryManager test coverage

Posted by Peter Firmstone <ji...@zeus.net.au>.
Sim IJskes - QCG wrote:
> On 09/01/2010 01:16 AM, Jonathan Costers wrote:
>> Similarly, having backed out the RemoteEvent changes, and running the
>> "discoveryservice" category:
>
> It looks to me, that the code in the trunk was not completely ready. 

It looks that way.

> Would it be a good idea to revert the changes until the unit tests run 
> again, and build a branch in svn to continue the work?

Let me get my head around understanding the failures first before we revert.


>
> If a committer (with svn access) needs help, i can offer some assistance.

Thanks ;) much appreciated.
>
> Gr. Sim
>
>


Re: ServiceDiscoveryManager test coverage

Posted by Sim IJskes - QCG <si...@qcg.nl>.
On 09/01/2010 01:16 AM, Jonathan Costers wrote:
> Similarly, having backed out the RemoteEvent changes, and running the
> "discoveryservice" category:

It looks to me, that the code in the trunk was not completely ready. 
Would it be a good idea to revert the changes until the unit tests run 
again, and build a branch in svn to continue the work?

If a committer (with svn access) needs help, i can offer some assistance.

Gr. Sim


Re: ServiceDiscoveryManager test coverage

Posted by Jonathan Costers <jo...@googlemail.com>.
Similarly, having backed out the RemoteEvent changes, and running the
"discoveryservice" category:

-----------------------------------------

# of tests started   = 93
# of tests completed = 93
# of tests skipped   = 1
# of tests passed    = 93
# of tests failed    = 0

-----------------------------------------

   Date finished:
      Wed Sep 01 01:13:00 CEST 2010
   Time elapsed:
      7043 seconds


BUILD SUCCESSFUL (total time: 117 minutes 24 seconds)

2010/8/31 Jonathan Costers <jo...@googlemail.com>

> There we go:
>
> -----------------------------------------
>
> # of tests started   = 40
> # of tests completed = 40
> # of tests passed    = 40
>
> # of tests failed    = 0
>
> -----------------------------------------
>
>    Date finished:
>       Tue Aug 31 20:52:49 CEST 2010
>    Time elapsed:
>       3746 seconds
>
> BUILD SUCCESSFUL (total time: 62 minutes 27 seconds)
>
> I've attached a diff between the latest trunk and what I've backed out.
>
>
>
> 2010/8/31 Jonathan Costers <jo...@googlemail.com>
>
>> FWIW - I backed out (back to the original Sun contribution) all changes to
>> the following files:
>>
>>
>> src/net/jini/core/event/RemoteEvent.java
>> src/net/jini/discovery/RemoteDiscoveryEvent.java
>> src/net/jini/lease/RenewalFailureEvent.java
>>
>> src/net/jini/core/lookup/ServiceEvent.java
>>
>> and now I have the servicediscovery QA test category running fine (so far,
>> but some of the tests that were failing earlier are passing).
>>
>> 2010/8/31 Jonathan Costers <jo...@googlemail.com>
>>
>> Great! Would you be able to create a JIRA issue for it?
>>> I would do it myself but I believe you have a better idea on how to
>>> describe what exactly is going on.
>>>
>>> 2010/8/31 Peter Firmstone <ji...@zeus.net.au>
>>>
>>> Ok,
>>>>
>>>> I found the culprit, it's RemoteEvent.
>>>>
>>>> Will look into it further tomorrow, off to sleep now.
>>>>
>>>> Peter.
>>>>
>>>>
>>>> Patricia Shanahan wrote:
>>>>
>>>>> On 8/25/2010 1:34 AM, Peter Firmstone wrote:
>>>>> ...
>>>>>
>>>>>> I've gotten to the bottom of what's causing the failures, one's a null
>>>>>> reference, the other a serialization problem, the first problem's
>>>>>> easy,
>>>>>> the second will take a bit more thought.
>>>>>>
>>>>>
>>>>> com/sun/jini/test/spec/discoveryservice/event/Discovered.td also fails
>>>>> with 935130 but passes with 934258.
>>>>>
>>>>> I may delay work on problems in tests that were not being run until I
>>>>> can retest against the fixes you are working on. I have a feeling a lot more
>>>>> tests will pass.
>>>>>
>>>>> Patricia
>>>>>
>>>>>
>>>>
>>>
>>
>

Re: ServiceDiscoveryManager test coverage

Posted by Jonathan Costers <jo...@googlemail.com>.
There we go:

-----------------------------------------

# of tests started   = 40
# of tests completed = 40
# of tests passed    = 40
# of tests failed    = 0

-----------------------------------------

   Date finished:
      Tue Aug 31 20:52:49 CEST 2010
   Time elapsed:
      3746 seconds

BUILD SUCCESSFUL (total time: 62 minutes 27 seconds)

I've attached a diff between the latest trunk and what I've backed out.


2010/8/31 Jonathan Costers <jo...@googlemail.com>

> FWIW - I backed out (back to the original Sun contribution) all changes to
> the following files:
>
>
> src/net/jini/core/event/RemoteEvent.java
> src/net/jini/discovery/RemoteDiscoveryEvent.java
> src/net/jini/lease/RenewalFailureEvent.java
>
> src/net/jini/core/lookup/ServiceEvent.java
>
> and now I have the servicediscovery QA test category running fine (so far,
> but some of the tests that were failing earlier are passing).
>
> 2010/8/31 Jonathan Costers <jo...@googlemail.com>
>
> Great! Would you be able to create a JIRA issue for it?
>> I would do it myself but I believe you have a better idea on how to
>> describe what exactly is going on.
>>
>> 2010/8/31 Peter Firmstone <ji...@zeus.net.au>
>>
>> Ok,
>>>
>>> I found the culprit, it's RemoteEvent.
>>>
>>> Will look into it further tomorrow, off to sleep now.
>>>
>>> Peter.
>>>
>>>
>>> Patricia Shanahan wrote:
>>>
>>>> On 8/25/2010 1:34 AM, Peter Firmstone wrote:
>>>> ...
>>>>
>>>>> I've gotten to the bottom of what's causing the failures, one's a null
>>>>> reference, the other a serialization problem, the first problem's easy,
>>>>> the second will take a bit more thought.
>>>>>
>>>>
>>>> com/sun/jini/test/spec/discoveryservice/event/Discovered.td also fails
>>>> with 935130 but passes with 934258.
>>>>
>>>> I may delay work on problems in tests that were not being run until I
>>>> can retest against the fixes you are working on. I have a feeling a lot more
>>>> tests will pass.
>>>>
>>>> Patricia
>>>>
>>>>
>>>
>>
>

Re: ServiceDiscoveryManager test coverage

Posted by Jonathan Costers <jo...@googlemail.com>.
FWIW - I backed out (back to the original Sun contribution) all changes to
the following files:

src/net/jini/core/event/RemoteEvent.java
src/net/jini/discovery/RemoteDiscoveryEvent.java
src/net/jini/lease/RenewalFailureEvent.java
src/net/jini/core/lookup/ServiceEvent.java

and now I have the servicediscovery QA test category running fine (so far,
but some of the tests that were failing earlier are passing).

2010/8/31 Jonathan Costers <jo...@googlemail.com>

> Great! Would you be able to create a JIRA issue for it?
> I would do it myself but I believe you have a better idea on how to
> describe what exactly is going on.
>
> 2010/8/31 Peter Firmstone <ji...@zeus.net.au>
>
> Ok,
>>
>> I found the culprit, it's RemoteEvent.
>>
>> Will look into it further tomorrow, off to sleep now.
>>
>> Peter.
>>
>>
>> Patricia Shanahan wrote:
>>
>>> On 8/25/2010 1:34 AM, Peter Firmstone wrote:
>>> ...
>>>
>>>> I've gotten to the bottom of what's causing the failures, one's a null
>>>> reference, the other a serialization problem, the first problem's easy,
>>>> the second will take a bit more thought.
>>>>
>>>
>>> com/sun/jini/test/spec/discoveryservice/event/Discovered.td also fails
>>> with 935130 but passes with 934258.
>>>
>>> I may delay work on problems in tests that were not being run until I can
>>> retest against the fixes you are working on. I have a feeling a lot more
>>> tests will pass.
>>>
>>> Patricia
>>>
>>>
>>
>

Re: ServiceDiscoveryManager test coverage

Posted by Jonathan Costers <jo...@googlemail.com>.
Great! Would you be able to create a JIRA issue for it?
I would do it myself but I believe you have a better idea on how to describe
what exactly is going on.

2010/8/31 Peter Firmstone <ji...@zeus.net.au>

> Ok,
>
> I found the culprit, it's RemoteEvent.
>
> Will look into it further tomorrow, off to sleep now.
>
> Peter.
>
>
> Patricia Shanahan wrote:
>
>> On 8/25/2010 1:34 AM, Peter Firmstone wrote:
>> ...
>>
>>> I've gotten to the bottom of what's causing the failures, one's a null
>>> reference, the other a serialization problem, the first problem's easy,
>>> the second will take a bit more thought.
>>>
>>
>> com/sun/jini/test/spec/discoveryservice/event/Discovered.td also fails
>> with 935130 but passes with 934258.
>>
>> I may delay work on problems in tests that were not being run until I can
>> retest against the fixes you are working on. I have a feeling a lot more
>> tests will pass.
>>
>> Patricia
>>
>>
>

Re: ServiceDiscoveryManager test coverage

Posted by Peter Firmstone <ji...@zeus.net.au>.
Ok,

I found the culprit, it's RemoteEvent.

Will look into it further tomorrow, off to sleep now.

Peter.

Patricia Shanahan wrote:
> On 8/25/2010 1:34 AM, Peter Firmstone wrote:
> ...
>> I've gotten to the bottom of what's causing the failures, one's a null
>> reference, the other a serialization problem, the first problem's easy,
>> the second will take a bit more thought.
>
> com/sun/jini/test/spec/discoveryservice/event/Discovered.td also fails 
> with 935130 but passes with 934258.
>
> I may delay work on problems in tests that were not being run until I 
> can retest against the fixes you are working on. I have a feeling a 
> lot more tests will pass.
>
> Patricia
>


Re: ServiceDiscoveryManager test coverage

Posted by Patricia Shanahan <pa...@acm.org>.
On 8/25/2010 1:34 AM, Peter Firmstone wrote:
...
> I've gotten to the bottom of what's causing the failures, one's a null
> reference, the other a serialization problem, the first problem's easy,
> the second will take a bit more thought.

com/sun/jini/test/spec/discoveryservice/event/Discovered.td also fails 
with 935130 but passes with 934258.

I may delay work on problems in tests that were not being run until I 
can retest against the fixes you are working on. I have a feeling a lot 
more tests will pass.

Patricia

Re: ServiceDiscoveryManager test coverage

Posted by Peter Firmstone <ji...@zeus.net.au>.
Patricia Shanahan wrote:
> On 8/22/2010 4:57 PM, Peter Firmstone wrote:
> ...
>> Thanks Patricia, that's very helpful, I'll figure it out where I went
>> wrong this week, it really shows the importance of full test coverage.
> ...
>
> I strongly agree that test coverage is important. Accordingly, I've 
> done some analysis of the "ant qa.run" output.
>
> There are 1059 test description (*.td) files that exist, and are 
> loaded at the start of "ant qa.run", but that do not seem to be run. 
> I've extracted the top level categories from those files:
>
> constraint
> discoveryproviders_impl
> discoveryservice
> end2end
> eventmailbox
> export_spec
> io
> javaspace
> jeri
> joinmanager
> jrmp
> loader
> locatordiscovery
> lookupdiscovery
> lookupservice
> proxytrust
> reliability
> renewalmanager
> renewalservice
> scalability
> security
> start
> txnmanager
>
> I'm sure some of these tests are obsolete, duplicates of tests in 
> categories that are being run, or otherwise inappropriate, but there 
> does seem to be a rich vein of tests we could mine.
>
> Part of the problem may be time to run the tests. I'd like to propose 
> splitting the tests into two sets:
>
> 1. A small set that one would run in addition to the relevant tests, 
> whenever making a small change. It should *not* be based on skipping 
> complete categories, but on doing those tests from each category that 
> are most likely to detect regression, especially regression due to 
> changes in other areas.
>
> 2. A full test set that may take a lot longer. In many projects, there 
> is a "nightly build" and a test sequence that is run against that 
> build. That test sequence can take up to 24 hours to run, and should 
> be as complete as possible. Does Apache have infrastructure to support 
> this sort of operation?
>
> Are there any tests that people *know* should not run? I'm thinking of 
> running the lot just to see what happens, but knowing ones that are 
> not expected to work would help with result interpretation.
>
> Patricia
>
>

Good ideas Patricia, you bring some very valuable test experience, thank 
you.  Any tests that require a KDC server or test jiniproxy - require a 
squid proxy server will fail.

There is also the question of the main build still creating jar files 
for compatibility with earlier Jini platforms, we can take the 
opportunity to remove those archives and update the tests to the new ones.

The jar files to be removed are marked so in the main build.xml file.

I've gotten to the bottom of what's causing the failures, one's a null 
reference, the other a serialization problem, the first problem's easy, 
the second will take a bit more thought.

Regards,

Peter.



Re: Ignored tests

Posted by Jonathan Costers <jo...@googlemail.com>.
The most common ones are:
- failures to find any Kerberos configuration file (/etc/krb5.conf or
similar) -> Kerberos infrastructure
- failures to find certain host names (for instance: jiniproxy -> proxy
infrastructure)
I believe JIRA issues exist for the missing Kerberos and proxy
infrastructure.

Any others are to be looked at with suspicion and to be handled on a case by
case basis.


2010/8/25 Patricia Shanahan <pa...@acm.org>

> Can you give any guidance on how to find out which tests need what
> infrastructure? Is it documented somewhere? I'm still learning my way around
> the River files.
>
> Also, I'm interested in tests that fail unexpectedly, especially any tests
> that have regressed or fail intermittently without related source code
> changes.
>
> I have a suspicion, based on source code reading, of a race condition in
> ServiceDiscoveryManager, and problems related to retries in some subclasses
> of RetryTask. If these problems are real they would tend to lead to
> unreproducible, intermittent failures rather than solid failures.
>
> Patricia
>
>
>
> On 8/25/2010 2:30 PM, Jonathan Costers wrote:
>
>> There is one more test category that we could add to the list that is used
>> by Hudson: "renewalmanager".
>> All the other categories have one or more issues (I have run all these
>> tests
>> myself many, many times), mostly because of missing infrastructure, but
>> some
>> also fail unexpectedly.
>>
>>
>> 2010/8/24 Patricia Shanahan<pa...@acm.org>
>>
>>  I'm not sure how much that would tell us, done on a bulk basis, because
>>> some of the tests will be specific to bugs that were found and fixed
>>> after
>>> then.
>>>
>>> I will be doing something similar for individual tests, but taking into
>>> account what their comments tell me about which versions are expected to
>>> pass.
>>>
>>> Patricia
>>>
>>>
>>>
>>> On 8/24/2010 1:02 PM, Patrick Wright wrote:
>>>
>>>  Hi Patricia
>>>>
>>>> Is there perhaps a solid baseline to test against, for example Jini
>>>> 2.1 to see how many pass/fails we get?
>>>>
>>>> Thanks for all the hard work
>>>> Patrick
>>>>
>>>> On Tue, Aug 24, 2010 at 9:58 PM, Patricia Shanahan<pa...@acm.org>
>>>> wrote:
>>>>
>>>>  I ran a batch of the previously ignored QA tests overnight. I got 156
>>>>> passes
>>>>> and 64 failures. This is nowhere near as bad as it sounds, because many
>>>>> of
>>>>> the failures were clusters of related tests failing in similar ways,
>>>>> suggesting a single problem affecting the base infrastructure for the
>>>>> test
>>>>> category. Some of the failures may relate to the known regression that
>>>>> Peter
>>>>> is going to look at this week.
>>>>>
>>>>> Also, it is important to remember that the bugs may be in the tests,
>>>>> not
>>>>> in
>>>>> the code under test. A test may be obsolete, depending on behavior that
>>>>> is
>>>>> no longer supported.
>>>>>
>>>>> I do think there is a good enough chance that at least one of the
>>>>> failures
>>>>> represents a real problem, and an opportunity to improve River, that I
>>>>> plan
>>>>> to start a background activity looking at failed tests to see what is
>>>>> going
>>>>> on. The objective is to do one of three things for each cluster of
>>>>> failures:
>>>>>
>>>>> 1. Fix River.
>>>>>
>>>>> 2. Fix the test.
>>>>>
>>>>> 3. Decide the test is unfixable, and delete it. There is no point
>>>>> spending
>>>>> disk space, file transfer time, and test load time on tests we are
>>>>> never
>>>>> going to run.
>>>>>
>>>>> Running the subset I did last night took about 15 hours, but that
>>>>> included a
>>>>> lot of timeouts.
>>>>>
>>>>> Patricia
>>>>>
>>>>>
>>>>>
>>>>
>>>
>>
>

Re: Ignored tests

Posted by Patricia Shanahan <pa...@acm.org>.
Can you give any guidance on how to find out which tests need what 
infrastructure? Is it documented somewhere? I'm still learning my way 
around the River files.

Also, I'm interested in tests that fail unexpectedly, especially any 
tests that have regressed or fail intermittently without related source 
code changes.

I have a suspicion, based on source code reading, of a race condition in 
ServiceDiscoveryManager, and problems related to retries in some 
subclasses of RetryTask. If these problems are real they would tend to 
lead to unreproducible, intermittent failures rather than solid failures.

Patricia


On 8/25/2010 2:30 PM, Jonathan Costers wrote:
> There is one more test category that we could add to the list that is used
> by Hudson: "renewalmanager".
> All the other categories have one or more issues (I have run all these tests
> myself many, many times), mostly because of missing infrastructure, but some
> also fail unexpectedly.
>
>
> 2010/8/24 Patricia Shanahan<pa...@acm.org>
>
>> I'm not sure how much that would tell us, done on a bulk basis, because
>> some of the tests will be specific to bugs that were found and fixed after
>> then.
>>
>> I will be doing something similar for individual tests, but taking into
>> account what their comments tell me about which versions are expected to
>> pass.
>>
>> Patricia
>>
>>
>>
>> On 8/24/2010 1:02 PM, Patrick Wright wrote:
>>
>>> Hi Patricia
>>>
>>> Is there perhaps a solid baseline to test against, for example Jini
>>> 2.1 to see how many pass/fails we get?
>>>
>>> Thanks for all the hard work
>>> Patrick
>>>
>>> On Tue, Aug 24, 2010 at 9:58 PM, Patricia Shanahan<pa...@acm.org>   wrote:
>>>
>>>> I ran a batch of the previously ignored QA tests overnight. I got 156
>>>> passes
>>>> and 64 failures. This is nowhere near as bad as it sounds, because many
>>>> of
>>>> the failures were clusters of related tests failing in similar ways,
>>>> suggesting a single problem affecting the base infrastructure for the
>>>> test
>>>> category. Some of the failures may relate to the known regression that
>>>> Peter
>>>> is going to look at this week.
>>>>
>>>> Also, it is important to remember that the bugs may be in the tests, not
>>>> in
>>>> the code under test. A test may be obsolete, depending on behavior that
>>>> is
>>>> no longer supported.
>>>>
>>>> I do think there is a good enough chance that at least one of the
>>>> failures
>>>> represents a real problem, and an opportunity to improve River, that I
>>>> plan
>>>> to start a background activity looking at failed tests to see what is
>>>> going
>>>> on. The objective is to do one of three things for each cluster of
>>>> failures:
>>>>
>>>> 1. Fix River.
>>>>
>>>> 2. Fix the test.
>>>>
>>>> 3. Decide the test is unfixable, and delete it. There is no point
>>>> spending
>>>> disk space, file transfer time, and test load time on tests we are never
>>>> going to run.
>>>>
>>>> Running the subset I did last night took about 15 hours, but that
>>>> included a
>>>> lot of timeouts.
>>>>
>>>> Patricia
>>>>
>>>>
>>>
>>
>


Re: Ignored tests

Posted by Jonathan Costers <jo...@googlemail.com>.
There is one more test category that we could add to the list that is used
by Hudson: "renewalmanager".
All the other categories have one or more issues (I have run all these tests
myself many, many times), mostly because of missing infrastructure, but some
also fail unexpectedly.


2010/8/24 Patricia Shanahan <pa...@acm.org>

> I'm not sure how much that would tell us, done on a bulk basis, because
> some of the tests will be specific to bugs that were found and fixed after
> then.
>
> I will be doing something similar for individual tests, but taking into
> account what their comments tell me about which versions are expected to
> pass.
>
> Patricia
>
>
>
> On 8/24/2010 1:02 PM, Patrick Wright wrote:
>
>> Hi Patricia
>>
>> Is there perhaps a solid baseline to test against, for example Jini
>> 2.1 to see how many pass/fails we get?
>>
>> Thanks for all the hard work
>> Patrick
>>
>> On Tue, Aug 24, 2010 at 9:58 PM, Patricia Shanahan<pa...@acm.org>  wrote:
>>
>>> I ran a batch of the previously ignored QA tests overnight. I got 156
>>> passes
>>> and 64 failures. This is nowhere near as bad as it sounds, because many
>>> of
>>> the failures were clusters of related tests failing in similar ways,
>>> suggesting a single problem affecting the base infrastructure for the
>>> test
>>> category. Some of the failures may relate to the known regression that
>>> Peter
>>> is going to look at this week.
>>>
>>> Also, it is important to remember that the bugs may be in the tests, not
>>> in
>>> the code under test. A test may be obsolete, depending on behavior that
>>> is
>>> no longer supported.
>>>
>>> I do think there is a good enough chance that at least one of the
>>> failures
>>> represents a real problem, and an opportunity to improve River, that I
>>> plan
>>> to start a background activity looking at failed tests to see what is
>>> going
>>> on. The objective is to do one of three things for each cluster of
>>> failures:
>>>
>>> 1. Fix River.
>>>
>>> 2. Fix the test.
>>>
>>> 3. Decide the test is unfixable, and delete it. There is no point
>>> spending
>>> disk space, file transfer time, and test load time on tests we are never
>>> going to run.
>>>
>>> Running the subset I did last night took about 15 hours, but that
>>> included a
>>> lot of timeouts.
>>>
>>> Patricia
>>>
>>>
>>
>

Re: Ignored tests

Posted by Patricia Shanahan <pa...@acm.org>.
I'm not sure how much that would tell us, done on a bulk basis, because 
some of the tests will be specific to bugs that were found and fixed 
after then.

I will be doing something similar for individual tests, but taking into 
account what their comments tell me about which versions are expected to 
pass.

Patricia


On 8/24/2010 1:02 PM, Patrick Wright wrote:
> Hi Patricia
>
> Is there perhaps a solid baseline to test against, for example Jini
> 2.1 to see how many pass/fails we get?
>
> Thanks for all the hard work
> Patrick
>
> On Tue, Aug 24, 2010 at 9:58 PM, Patricia Shanahan<pa...@acm.org>  wrote:
>> I ran a batch of the previously ignored QA tests overnight. I got 156 passes
>> and 64 failures. This is nowhere near as bad as it sounds, because many of
>> the failures were clusters of related tests failing in similar ways,
>> suggesting a single problem affecting the base infrastructure for the test
>> category. Some of the failures may relate to the known regression that Peter
>> is going to look at this week.
>>
>> Also, it is important to remember that the bugs may be in the tests, not in
>> the code under test. A test may be obsolete, depending on behavior that is
>> no longer supported.
>>
>> I do think there is a good enough chance that at least one of the failures
>> represents a real problem, and an opportunity to improve River, that I plan
>> to start a background activity looking at failed tests to see what is going
>> on. The objective is to do one of three things for each cluster of failures:
>>
>> 1. Fix River.
>>
>> 2. Fix the test.
>>
>> 3. Decide the test is unfixable, and delete it. There is no point spending
>> disk space, file transfer time, and test load time on tests we are never
>> going to run.
>>
>> Running the subset I did last night took about 15 hours, but that included a
>> lot of timeouts.
>>
>> Patricia
>>
>


Re: Ignored tests

Posted by Patrick Wright <pd...@gmail.com>.
Hi Patricia

Is there perhaps a solid baseline to test against, for example Jini
2.1 to see how many pass/fails we get?

Thanks for all the hard work
Patrick

On Tue, Aug 24, 2010 at 9:58 PM, Patricia Shanahan <pa...@acm.org> wrote:
> I ran a batch of the previously ignored QA tests overnight. I got 156 passes
> and 64 failures. This is nowhere near as bad as it sounds, because many of
> the failures were clusters of related tests failing in similar ways,
> suggesting a single problem affecting the base infrastructure for the test
> category. Some of the failures may relate to the known regression that Peter
> is going to look at this week.
>
> Also, it is important to remember that the bugs may be in the tests, not in
> the code under test. A test may be obsolete, depending on behavior that is
> no longer supported.
>
> I do think there is a good enough chance that at least one of the failures
> represents a real problem, and an opportunity to improve River, that I plan
> to start a background activity looking at failed tests to see what is going
> on. The objective is to do one of three things for each cluster of failures:
>
> 1. Fix River.
>
> 2. Fix the test.
>
> 3. Decide the test is unfixable, and delete it. There is no point spending
> disk space, file transfer time, and test load time on tests we are never
> going to run.
>
> Running the subset I did last night took about 15 hours, but that included a
> lot of timeouts.
>
> Patricia
>

Ignored tests

Posted by Patricia Shanahan <pa...@acm.org>.
I ran a batch of the previously ignored QA tests overnight. I got 156 
passes and 64 failures. This is nowhere near as bad as it sounds, 
because many of the failures were clusters of related tests failing in 
similar ways, suggesting a single problem affecting the base 
infrastructure for the test category. Some of the failures may relate to 
the known regression that Peter is going to look at this week.

Also, it is important to remember that the bugs may be in the tests, not 
in the code under test. A test may be obsolete, depending on behavior 
that is no longer supported.

I do think there is a good enough chance that at least one of the 
failures represents a real problem, and an opportunity to improve River, 
that I plan to start a background activity looking at failed tests to 
see what is going on. The objective is to do one of three things for 
each cluster of failures:

1. Fix River.

2. Fix the test.

3. Decide the test is unfixable, and delete it. There is no point 
spending disk space, file transfer time, and test load time on tests we 
are never going to run.

Running the subset I did last night took about 15 hours, but that 
included a lot of timeouts.

Patricia

Re: ServiceDiscoveryManager test coverage

Posted by Patricia Shanahan <pa...@acm.org>.
On 8/22/2010 4:57 PM, Peter Firmstone wrote:
...
> Thanks Patricia, that's very helpful, I'll figure it out where I went
> wrong this week, it really shows the importance of full test coverage.
...

I strongly agree that test coverage is important. Accordingly, I've done 
some analysis of the "ant qa.run" output.

There are 1059 test description (*.td) files that exist, and are loaded 
at the start of "ant qa.run", but that do not seem to be run. I've 
extracted the top level categories from those files:

constraint
discoveryproviders_impl
discoveryservice
end2end
eventmailbox
export_spec
io
javaspace
jeri
joinmanager
jrmp
loader
locatordiscovery
lookupdiscovery
lookupservice
proxytrust
reliability
renewalmanager
renewalservice
scalability
security
start
txnmanager

I'm sure some of these tests are obsolete, duplicates of tests in 
categories that are being run, or otherwise inappropriate, but there 
does seem to be a rich vein of tests we could mine.

Part of the problem may be time to run the tests. I'd like to propose 
splitting the tests into two sets:

1. A small set that one would run in addition to the relevant tests, 
whenever making a small change. It should *not* be based on skipping 
complete categories, but on doing those tests from each category that 
are most likely to detect regression, especially regression due to 
changes in other areas.

2. A full test set that may take a lot longer. In many projects, there 
is a "nightly build" and a test sequence that is run against that build. 
That test sequence can take up to 24 hours to run, and should be as 
complete as possible. Does Apache have infrastructure to support this 
sort of operation?

Are there any tests that people *know* should not run? I'm thinking of 
running the lot just to see what happens, but knowing ones that are not 
expected to work would help with result interpretation.

Patricia



Re: ServiceDiscoveryManager test coverage

Posted by Peter Firmstone <ji...@zeus.net.au>.
Patricia Shanahan wrote:
> On 8/22/2010 4:57 PM, Peter Firmstone wrote:
>> Patricia Shanahan wrote:
>>> On 8/22/2010 2:15 PM, Patricia Shanahan wrote:
>>>> On 8/21/2010 10:17 PM, Patricia Shanahan wrote:
>>>> ...
>>>>> Tomorrow, unless I get a better idea or someone posts one, I'll 
>>>>> start a
>>>>> binary search. The objective will be to find consecutive revisions N
>>>>> and
>>>>> N+1 such that N passes the servicediscovery tests and N+1 fails them.
>>>> ...
>>>>
>>>> I have preliminary results from the binary search. I can't narrow it
>>>> down to a single check-in because I cannot build revision 934802. The
>>>> indications are that revision 934258 is the last buildable revision 
>>>> that
>>>> passes and revision 935130 is the first buildable revision that fails.
>>>>
>>>> This is based on a single test,
>>>> com/sun/jini/test/impl/servicediscovery/event/NotifyEventDropProxyTaskRace.td, 
>>>>
>>>>
>>>> that I had previously found to be solidly failing on repeated runs on
>>>> the latest revision.
>>>>
>>>> I'm in the process of running the full QA tests, servicediscovery
>>>> included, to see if the other failing tests behave the same way.
>>>
>>> Both sets of servicediscovery tests have completed, with zero failures
>>> for 934258 and ten failures for 935130, confirming that the entire set
>>> of servicediscovery failures in the head revision should be attributed
>>> to the changes between those two revisions.
>>>
>>> The failures seem to me to be too solidly reproducible, without any
>>> added delays, to be likely to be race conditions, even though that is
>>> what several of the failing tests were originally designed to
>>> demonstrate.
>>>
>>> Patricia
>>>
>> Thanks Patricia, that's very helpful, I'll figure it out where I went
>> wrong this week, it really shows the importance of full test coverage.
>>
>> Much appreciated,
>>
>> Peter.
>>
>
> Let me know if you find you are not going to have time to work on it. 
> Otherwise, I'll get back to my SDM and JoinManager concurrency 
> suspicions and related test construction.
>
> Patricia
>
>
Ok.

Re: ServiceDiscoveryManager test coverage

Posted by Patricia Shanahan <pa...@acm.org>.
On 8/22/2010 4:57 PM, Peter Firmstone wrote:
> Patricia Shanahan wrote:
>> On 8/22/2010 2:15 PM, Patricia Shanahan wrote:
>>> On 8/21/2010 10:17 PM, Patricia Shanahan wrote:
>>> ...
>>>> Tomorrow, unless I get a better idea or someone posts one, I'll start a
>>>> binary search. The objective will be to find consecutive revisions N
>>>> and
>>>> N+1 such that N passes the servicediscovery tests and N+1 fails them.
>>> ...
>>>
>>> I have preliminary results from the binary search. I can't narrow it
>>> down to a single check-in because I cannot build revision 934802. The
>>> indications are that revision 934258 is the last buildable revision that
>>> passes and revision 935130 is the first buildable revision that fails.
>>>
>>> This is based on a single test,
>>> com/sun/jini/test/impl/servicediscovery/event/NotifyEventDropProxyTaskRace.td,
>>>
>>> that I had previously found to be solidly failing on repeated runs on
>>> the latest revision.
>>>
>>> I'm in the process of running the full QA tests, servicediscovery
>>> included, to see if the other failing tests behave the same way.
>>
>> Both sets of servicediscovery tests have completed, with zero failures
>> for 934258 and ten failures for 935130, confirming that the entire set
>> of servicediscovery failures in the head revision should be attributed
>> to the changes between those two revisions.
>>
>> The failures seem to me to be too solidly reproducible, without any
>> added delays, to be likely to be race conditions, even though that is
>> what several of the failing tests were originally designed to
>> demonstrate.
>>
>> Patricia
>>
> Thanks Patricia, that's very helpful, I'll figure it out where I went
> wrong this week, it really shows the importance of full test coverage.
>
> Much appreciated,
>
> Peter.
>

Let me know if you find you are not going to have time to work on it. 
Otherwise, I'll get back to my SDM and JoinManager concurrency 
suspicions and related test construction.

Patricia


Re: ServiceDiscoveryManager test coverage

Posted by Peter Firmstone <ji...@zeus.net.au>.
Patricia Shanahan wrote:
> On 8/22/2010 2:15 PM, Patricia Shanahan wrote:
>> On 8/21/2010 10:17 PM, Patricia Shanahan wrote:
>> ...
>>> Tomorrow, unless I get a better idea or someone posts one, I'll start a
>>> binary search. The objective will be to find consecutive revisions N 
>>> and
>>> N+1 such that N passes the servicediscovery tests and N+1 fails them.
>> ...
>>
>> I have preliminary results from the binary search. I can't narrow it
>> down to a single check-in because I cannot build revision 934802. The
>> indications are that revision 934258 is the last buildable revision that
>> passes and revision 935130 is the first buildable revision that fails.
>>
>> This is based on a single test,
>> com/sun/jini/test/impl/servicediscovery/event/NotifyEventDropProxyTaskRace.td, 
>>
>> that I had previously found to be solidly failing on repeated runs on
>> the latest revision.
>>
>> I'm in the process of running the full QA tests, servicediscovery
>> included, to see if the other failing tests behave the same way.
>
> Both sets of servicediscovery tests have completed, with zero failures 
> for 934258 and ten failures for 935130, confirming that the entire set 
> of servicediscovery failures in the head revision should be attributed 
> to the changes between those two revisions.
>
> The failures seem to me to be too solidly reproducible, without any 
> added delays, to be likely to be race conditions, even though that is 
> what several of the failing tests were originally designed to 
> demonstrate.
>
> Patricia
>
Thanks Patricia, that's very helpful, I'll figure it out where I went 
wrong this week, it really shows the importance of full test coverage.

Much appreciated,

Peter.


Re: ServiceDiscoveryManager test coverage

Posted by Patricia Shanahan <pa...@acm.org>.
On 8/22/2010 2:15 PM, Patricia Shanahan wrote:
> On 8/21/2010 10:17 PM, Patricia Shanahan wrote:
> ...
>> Tomorrow, unless I get a better idea or someone posts one, I'll start a
>> binary search. The objective will be to find consecutive revisions N and
>> N+1 such that N passes the servicediscovery tests and N+1 fails them.
> ...
>
> I have preliminary results from the binary search. I can't narrow it
> down to a single check-in because I cannot build revision 934802. The
> indications are that revision 934258 is the last buildable revision that
> passes and revision 935130 is the first buildable revision that fails.
>
> This is based on a single test,
> com/sun/jini/test/impl/servicediscovery/event/NotifyEventDropProxyTaskRace.td,
> that I had previously found to be solidly failing on repeated runs on
> the latest revision.
>
> I'm in the process of running the full QA tests, servicediscovery
> included, to see if the other failing tests behave the same way.

Both sets of servicediscovery tests have completed, with zero failures 
for 934258 and ten failures for 935130, confirming that the entire set 
of servicediscovery failures in the head revision should be attributed 
to the changes between those two revisions.

The failures seem to me to be too solidly reproducible, without any 
added delays, to be likely to be race conditions, even though that is 
what several of the failing tests were originally designed to demonstrate.

Patricia

Re: ServiceDiscoveryManager test coverage

Posted by Patricia Shanahan <pa...@acm.org>.
On 8/21/2010 10:17 PM, Patricia Shanahan wrote:
...
> Tomorrow, unless I get a better idea or someone posts one, I'll start a
> binary search. The objective will be to find consecutive revisions N and
> N+1 such that N passes the servicediscovery tests and N+1 fails them.
...

I have preliminary results from the binary search. I can't narrow it 
down to a single check-in because I cannot build revision 934802. The 
indications are that revision 934258 is the last buildable revision that 
passes and revision 935130 is the first buildable revision that fails.

This is based on a single test, 
com/sun/jini/test/impl/servicediscovery/event/NotifyEventDropProxyTaskRace.td, 
that I had previously found to be solidly failing on repeated runs on 
the latest revision.

I'm in the process of running the full QA tests, servicediscovery 
included, to see if the other failing tests behave the same way.

Patricia

Revision: 935130
Author: peter_firmstone
Date: 10:12:18 PM, Friday, April 16, 2010
Message:
New signatures containing MarshalledInstance were too similar to those 
containing MarshalledObject, such that when a null parameter was given 
by client code, the correct method signature to select was ambiguous and 
caused a compile time error.

New signatures changed slightly to avoid ambiguous matches.
----
Modified : 
/incubator/river/jtsk/trunk/src/net/jini/core/lookup/StreamingServiceRegistrar.java
Modified : 
/incubator/river/jtsk/trunk/src/net/jini/core/event/RemoteEvent.java
Modified : 
/incubator/river/jtsk/trunk/src/net/jini/core/lookup/ServiceEvent.java

Revision: 934802
Author: peter_firmstone
Date: 4:54:22 AM, Friday, April 16, 2010
Message:
Experimental commit, please feel free to read / participate / discuss.
----
Modified : 
/incubator/river/jtsk/trunk/src/net/jini/io/CDCMarshalledObject.java
Modified : /incubator/river/jtsk/trunk/src/net/jini/io/Convert.java
Modified : 
/incubator/river/jtsk/trunk/src/net/jini/io/FromMOInputStream.java
Modified : /incubator/river/jtsk/trunk/src/net/jini/io/MarshalledObject.java
Modified : /incubator/river/jtsk/trunk/src/net/jini/io/ToMOInputStream.java
Modified : 
/incubator/river/jtsk/trunk/src/net/jini/loader/CodebaseAccessClassLoader.java
Modified : 
/incubator/river/jtsk/trunk/src/net/jini/loader/CodebaseAccessOverridePermission.java
Modified : 
/incubator/river/jtsk/trunk/src/net/jini/core/event/RemoteEvent.java
Added : /incubator/river/jtsk/trunk/src/net/jini/io/Converter.java
Added : /incubator/river/jtsk/trunk/src/net/jini/io/ToMOOutputStream.java
Added : 
/incubator/river/jtsk/trunk/test/src/net/jini/io/ToMOOutputStreamTest.java
Modified : 
/incubator/river/jtsk/trunk/src/net/jini/core/lookup/ServiceEvent.java

Revision: 934258
Author: peter_firmstone
Date: 6:11:12 PM, Wednesday, April 14, 2010
Message:
This patch integrates changes to replace the RMIClassLoaderSPI with a 
CodebaseAccessClassLoader as per River-336. Although it doesn't include 
all changes to PreferredClassProvider.

Additional changes to net.jini.io have been made to allow a subset of 
this package to be built at a later stage for CDC Personal Profile 1.11 
(a subset of Java 1.4.2).

An additional interface has been created, which is a subset of 
ServiceRegistrar, which ServiceRegistrar now extends, this is to enable 
building a release for CDC Personal Profile 1.11 or greater at a later 
point in time, without causing any breakage to existing application 
software.

Furthermore additional permissions have been granted to the qa test 
defaulttest.policy in order for some random test failures to pass.  This 
was specific to the Java 1.6 platform and I believe related to the 
-source=5 and -target=jsr14 compiler optimisations that load a security 
manager earlier, it is also related to the removal of the need to 
utilise the jre/etc directory for jsk-policy.jar

These changes are experimental, and some incomplete, please feel free to 
make comments and reccommendations or hightlite any unforseen issues.

The Apache River version has been changed to 2.2.0
----
Modified : /incubator/river/jtsk/trunk
Modified : /incubator/river/jtsk/trunk/common.xml
Modified : /incubator/river/jtsk/trunk/qa/build.xml
Modified : /incubator/river/jtsk/trunk/qa/harness/policy/defaulttest.policy
Modified : 
/incubator/river/jtsk/trunk/src/com/sun/jini/constants/VersionConstants.java
Modified : 
/incubator/river/jtsk/trunk/src/com/sun/jini/norm/NormServerBaseImpl.java
Modified : 
/incubator/river/jtsk/trunk/src/com/sun/jini/outrigger/EntryRep.java
Modified : 
/incubator/river/jtsk/trunk/src/com/sun/jini/phoenix/ActivationGroupImpl.java
Modified : 
/incubator/river/jtsk/trunk/src/com/sun/jini/phoenix/ActivationGroupInit.java
Modified : 
/incubator/river/jtsk/trunk/src/com/sun/jini/reggie/EntryClassBase.java
Modified : /incubator/river/jtsk/trunk/src/manifest/jsk-platform.mf
Modified : 
/incubator/river/jtsk/trunk/src/net/jini/activation/ActivationGroup.java
Added : 
/incubator/river/jtsk/trunk/src/net/jini/core/lookup/PortableServiceRegistrar.java
Modified : 
/incubator/river/jtsk/trunk/src/net/jini/core/lookup/ServiceRegistrar.java
Added : 
/incubator/river/jtsk/trunk/src/net/jini/core/lookup/StreamingServiceRegistrar.java
Added : /incubator/river/jtsk/trunk/src/net/jini/io/CDCMarshalledObject.java
Added : /incubator/river/jtsk/trunk/src/net/jini/io/Convert.java
Added : /incubator/river/jtsk/trunk/src/net/jini/io/FromMOInputStream.java
Modified : 
/incubator/river/jtsk/trunk/src/net/jini/io/MarshalInputStream.java
Modified : 
/incubator/river/jtsk/trunk/src/net/jini/io/MarshalOutputStream.java
Modified : 
/incubator/river/jtsk/trunk/src/net/jini/io/MarshalledInstance.java
Added : 
/incubator/river/jtsk/trunk/src/net/jini/io/MarshalledInstanceInputStream.java
Added : 
/incubator/river/jtsk/trunk/src/net/jini/io/MarshalledInstanceOutputStream.java
Modified : /incubator/river/jtsk/trunk/src/net/jini/io/MarshalledObject.java
Added : /incubator/river/jtsk/trunk/src/net/jini/io/PackageVersion.java
Added : /incubator/river/jtsk/trunk/src/net/jini/io/ToMOInputStream.java
Modified : 
/incubator/river/jtsk/trunk/src/net/jini/loader/ClassAnnotation.java
Modified : /incubator/river/jtsk/trunk/src/net/jini/loader/ClassLoading.java
Added : 
/incubator/river/jtsk/trunk/src/net/jini/loader/CodebaseAccessClassLoader.java
Added : 
/incubator/river/jtsk/trunk/src/net/jini/loader/CodebaseAccessOverridePermission.java
Added : 
/incubator/river/jtsk/trunk/src/net/jini/loader/CodebaseClassAccess.java
Modified : 
/incubator/river/jtsk/trunk/src/net/jini/loader/DownloadPermission.java
Added : 
/incubator/river/jtsk/trunk/src/net/jini/loader/RMIClassLoaderCodebaseAccess.java
Modified : 
/incubator/river/jtsk/trunk/src/net/jini/loader/pref/PreferredClassProvider.java
Modified : 
/incubator/river/jtsk/trunk/src/net/jini/loader/pref/RequireDlPermProvider.java
Modified : 
/incubator/river/jtsk/trunk/src/net/jini/security/proxytrust/ProxyTrustVerifier.java
Added : /incubator/river/jtsk/trunk/test/src/net/jini/io
Added : /incubator/river/jtsk/trunk/test/src/net/jini/io/ConvertTest.java
Added : 
/incubator/river/jtsk/trunk/test/src/net/jini/io/PackageVersionTest.java


Re: ServiceDiscoveryManager test coverage

Posted by Patricia Shanahan <pa...@acm.org>.
On 8/21/2010 10:17 PM, Patricia Shanahan wrote:
> On 8/21/2010 3:43 PM, Peter Firmstone wrote:
> ...
>> This is unfortunate, to solve it, I'll to have to go back in time & find
>> out when these tests were passing, then figure out what change/s caused
>> the failures. It could be the reduced amount of synchronization time in
>> TaskManager, but I'm only guessing.
> ...
>
> A *very* plausible guess, and well worth testing, but not the trigger. I
> substituted the 2.1.2 revision into otherwise current code. It still fails.

2.1.2 revision of TaskManager

>
> Tomorrow, unless I get a better idea or someone posts one, I'll start a
> binary search. The objective will be to find consecutive revisions N and
> N+1 such that N passes the servicediscovery tests and N+1 fails them.
>
> Patricia
>
>


Re: ServiceDiscoveryManager test coverage

Posted by Tom Hobbs <tv...@googlemail.com>.
Quickest (and dirtiest) method I can think is to just comment out the guts  
of the javadoc target in your build.xml.

That way you won't have lots of other targets complaining about missing  
dependencies.

Ideally, setting the build.xml to build (or not build) if some flag is set  
would be a good idea.



On Sun, 22 Aug 2010 17:15:11 +0100, Patricia Shanahan <pa...@acm.org> wrote:

> On 8/21/2010 10:17 PM, Patricia Shanahan wrote:
> ...
>> Tomorrow, unless I get a better idea or someone posts one, I'll start a
>> binary search. The objective will be to find consecutive revisions N and
>> N+1 such that N passes the servicediscovery tests and N+1 fails them.
>
> I don't have a better idea, so I'm doing the binary search. Is there an  
> easy way of making it build everything except the javadocs? I don't need  
> them for my testing, and they seem to take a significant amount of time  
> during the build.
>
> Patricia


-- 
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/

Re: ServiceDiscoveryManager test coverage

Posted by Patricia Shanahan <pa...@acm.org>.
On 8/21/2010 10:17 PM, Patricia Shanahan wrote:
...
> Tomorrow, unless I get a better idea or someone posts one, I'll start a
> binary search. The objective will be to find consecutive revisions N and
> N+1 such that N passes the servicediscovery tests and N+1 fails them.

I don't have a better idea, so I'm doing the binary search. Is there an 
easy way of making it build everything except the javadocs? I don't need 
them for my testing, and they seem to take a significant amount of time 
during the build.

Patricia

Re: ServiceDiscoveryManager test coverage

Posted by Patricia Shanahan <pa...@acm.org>.
On 8/21/2010 3:43 PM, Peter Firmstone wrote:
...
> This is unfortunate, to solve it, I'll to have to go back in time & find
> out when these tests were passing, then figure out what change/s caused
> the failures. It could be the reduced amount of synchronization time in
> TaskManager, but I'm only guessing.
...

A *very* plausible guess, and well worth testing, but not the trigger. I 
substituted the 2.1.2 revision into otherwise current code. It still fails.

Tomorrow, unless I get a better idea or someone posts one, I'll start a 
binary search. The objective will be to find consecutive revisions N and 
N+1 such that N passes the servicediscovery tests and N+1 fails them.

Patricia


Re: ServiceDiscoveryManager test coverage

Posted by Patricia Shanahan <pa...@acm.org>.
The 2.1.2 run has got through all the servicediscovery tests without any 
failures, so that seems to be the starting point.

I may try a binary search - pick a version half way between 2.1.2 and 
the latest, test that one ....

Patricia


On 8/21/2010 6:54 PM, Patricia Shanahan wrote:
> I've checked out branches/2.1.2 and started a test, with
> servicediscovery added to its qa.run target. I'll let you know what
> happens.
>
> Patricia
>
>
> On 8/21/2010 6:00 PM, Peter Firmstone wrote:
>> I'm probably not going to find time to run the tests for about a week,
>> however we should probably start back at the last release and confirm
>> that runs as expected first.
>>
>> Peter Firmstone wrote:
>>> I'm aware that some of the tests that aren't being run are known
>>> failures due to the missing Kerberos Key Server and Squid Proxy
>>> server. I had one zone set up on apache zones for the KDC, however I
>>> haven't set that up. I'm not sure if the same zone can be used for the
>>> Kerberos Key server and the Proxy, or if we need a new proxy server
>>> zone too.
>>>
>>> Patricia Shanahan wrote:
>>>> On 8/21/2010 3:43 PM, Peter Firmstone wrote:
>>>> ...
>>>>> This is unfortunate, to solve it, I'll to have to go back in time &
>>>>> find
>>>>> out when these tests were passing, then figure out what change/s
>>>>> caused
>>>>> the failures. It could be the reduced amount of synchronization
>>>>> time in
>>>>> TaskManager, but I'm only guessing.
>>>>>
>>>> ...
>>>>> [java] # of tests started = 40
>>>>> [java] # of tests completed = 40
>>>>> [java] # of tests passed = 30
>>>>> [java] # of tests failed = 10
>>>>
>>>>
>>>> Presumably, the errors were (re)introduced after build.xml or
>>>> something was changed to drop the servicediscovery tests. It may be
>>>> easier to bound the time frame by looking for that change.
>>>>
>>>> Could you also do a review to find out whether there are any other
>>>> tests that are not being run? It definitely needs to be done, and you
>>>> are much more familiar with the test set-up than I am. If you don't
>>>> have time, I'll try.
>>>>
>>>> Patricia
>>>>
>>>
>>>
>>
>>
>
>


Re: ServiceDiscoveryManager test coverage

Posted by Patricia Shanahan <pa...@acm.org>.
I've checked out branches/2.1.2 and started a test, with 
servicediscovery added to its qa.run target. I'll let you know what happens.

Patricia


On 8/21/2010 6:00 PM, Peter Firmstone wrote:
> I'm probably not going to find time to run the tests for about a week,
> however we should probably start back at the last release and confirm
> that runs as expected first.
>
> Peter Firmstone wrote:
>> I'm aware that some of the tests that aren't being run are known
>> failures due to the missing Kerberos Key Server and Squid Proxy
>> server. I had one zone set up on apache zones for the KDC, however I
>> haven't set that up. I'm not sure if the same zone can be used for the
>> Kerberos Key server and the Proxy, or if we need a new proxy server
>> zone too.
>>
>> Patricia Shanahan wrote:
>>> On 8/21/2010 3:43 PM, Peter Firmstone wrote:
>>> ...
>>>> This is unfortunate, to solve it, I'll to have to go back in time &
>>>> find
>>>> out when these tests were passing, then figure out what change/s caused
>>>> the failures. It could be the reduced amount of synchronization time in
>>>> TaskManager, but I'm only guessing.
>>>>
>>> ...
>>>> [java] # of tests started = 40
>>>> [java] # of tests completed = 40
>>>> [java] # of tests passed = 30
>>>> [java] # of tests failed = 10
>>>
>>>
>>> Presumably, the errors were (re)introduced after build.xml or
>>> something was changed to drop the servicediscovery tests. It may be
>>> easier to bound the time frame by looking for that change.
>>>
>>> Could you also do a review to find out whether there are any other
>>> tests that are not being run? It definitely needs to be done, and you
>>> are much more familiar with the test set-up than I am. If you don't
>>> have time, I'll try.
>>>
>>> Patricia
>>>
>>
>>
>
>


Re: ServiceDiscoveryManager test coverage

Posted by Peter Firmstone <ji...@zeus.net.au>.
I'm probably not going to find time to run the tests for about a week, 
however we should probably start back at the last release and confirm 
that runs as expected first.

Peter Firmstone wrote:
> I'm aware that some of the tests that aren't being run are known 
> failures due to the missing Kerberos Key Server and Squid Proxy 
> server.  I had one zone set up on apache zones for the KDC, however I 
> haven't set that up.  I'm not sure if the same zone can be used for 
> the Kerberos Key server and the Proxy, or if we need a new proxy 
> server zone too.
>
> Patricia Shanahan wrote:
>> On 8/21/2010 3:43 PM, Peter Firmstone wrote:
>> ...
>>> This is unfortunate, to solve it, I'll to have to go back in time & 
>>> find
>>> out when these tests were passing, then figure out what change/s caused
>>> the failures. It could be the reduced amount of synchronization time in
>>> TaskManager, but I'm only guessing.
>>>
>> ...
>>>     [java] # of tests started   = 40
>>>     [java] # of tests completed = 40
>>>     [java] # of tests passed    = 30
>>>     [java] # of tests failed    = 10
>>
>>
>> Presumably, the errors were (re)introduced after build.xml or 
>> something was changed to drop the servicediscovery tests. It may be 
>> easier to bound the time frame by looking for that change.
>>
>> Could you also do a review to find out whether there are any other 
>> tests that are not being run? It definitely needs to be done, and you 
>> are much more familiar with the test set-up than I am. If you don't 
>> have time, I'll try.
>>
>> Patricia
>>
>
>


Re: ServiceDiscoveryManager test coverage

Posted by Peter Firmstone <ji...@zeus.net.au>.
I'm aware that some of the tests that aren't being run are known 
failures due to the missing Kerberos Key Server and Squid Proxy server.  
I had one zone set up on apache zones for the KDC, however I haven't set 
that up.  I'm not sure if the same zone can be used for the Kerberos Key 
server and the Proxy, or if we need a new proxy server zone too.

Patricia Shanahan wrote:
> On 8/21/2010 3:43 PM, Peter Firmstone wrote:
> ...
>> This is unfortunate, to solve it, I'll to have to go back in time & find
>> out when these tests were passing, then figure out what change/s caused
>> the failures. It could be the reduced amount of synchronization time in
>> TaskManager, but I'm only guessing.
>>
> ...
>>     [java] # of tests started   = 40
>>     [java] # of tests completed = 40
>>     [java] # of tests passed    = 30
>>     [java] # of tests failed    = 10
>
>
> Presumably, the errors were (re)introduced after build.xml or 
> something was changed to drop the servicediscovery tests. It may be 
> easier to bound the time frame by looking for that change.
>
> Could you also do a review to find out whether there are any other 
> tests that are not being run? It definitely needs to be done, and you 
> are much more familiar with the test set-up than I am. If you don't 
> have time, I'll try.
>
> Patricia
>


Re: ServiceDiscoveryManager test coverage

Posted by Patricia Shanahan <pa...@acm.org>.
On 8/21/2010 3:43 PM, Peter Firmstone wrote:
...
> This is unfortunate, to solve it, I'll to have to go back in time & find
> out when these tests were passing, then figure out what change/s caused
> the failures. It could be the reduced amount of synchronization time in
> TaskManager, but I'm only guessing.
>
...
>     [java] # of tests started   = 40
>     [java] # of tests completed = 40
>     [java] # of tests passed    = 30
>     [java] # of tests failed    = 10


Presumably, the errors were (re)introduced after build.xml or something 
was changed to drop the servicediscovery tests. It may be easier to 
bound the time frame by looking for that change.

Could you also do a review to find out whether there are any other tests 
that are not being run? It definitely needs to be done, and you are much 
more familiar with the test set-up than I am. If you don't have time, 
I'll try.

Patricia

Re: ServiceDiscoveryManager test coverage

Posted by Peter Firmstone <ji...@zeus.net.au>.
Patricia Shanahan wrote:
> On 8/21/2010 11:11 AM, Patricia Shanahan wrote:
>> On 8/21/2010 5:31 AM, Peter Firmstone wrote:
>>> Patricia Shanahan wrote:
>>>> On 8/20/2010 11:10 PM, Peter Firmstone wrote:
>>>>> Patricia Shanahan wrote:
>>>>>> Peter Firmstone wrote:
>>>>>>> Patricia Shanahan wrote:
>>>>>>>> As indicated in the "TaskManager Progress" thread, I think, 
>>>>>>>> based on
>>>>>>>> reading the source code, that there is a concurrency bug in
>>>>>>>> ServiceDiscoveryManager.LookupCacheImpl's addProxyReg method.
>>>>>>>>
>>>>>>>> I added logging to see which tests I should run to evaluate a fix.
>>>>>>>> As far as I can tell, the automated system contains a single test
>>>>>>>> that creates a ServiceDiscoveryManager, LeaseRenewDurRFE, and it
>>>>>>>> does not appear to use addProxyReg.
>>>>>>>>
>>>>>>>> Are there any tests in addition to the QA and JTreg tests that 
>>>>>>>> might
>>>>>>>> cover this?
>>>>>>>
>>>>>>> No, not in addition unfortunately.
>>>>>>
>>>>>> I didn't really expect there would be, but it was worth asking.
>>>>>>
>>>>>> I'm now working on an SDM concurrency test - essentially writing 
>>>>>> stubs
>>>>>> for the classes it interacts with, so that I can control the 
>>>>>> timing of
>>>>>> events. I want to hit it with a lot of different activity at the 
>>>>>> same
>>>>>> time.
>>>>>>
>>>>>> Is there any existing code that would help with that task?
>>>>>>
>>>>>> Patricia
>>>>>>
>>>>> Any of the existing qa or jtreg tests that relate to the SDM would 
>>>>> be a
>>>>> good start.
>>>>>
>>>>> Not sure which I'd pick though.
>>>>
>>>> I've found why I was not finding ServiceDiscoveryManager tests. "ant
>>>> qa.run" in the build directory, which is how I was running QA tests,
>>>> runs specified categories:
>>>> "id,loader,policyprovider,locatordiscovery,activation,config,discoverymanager,joinmanager,url,iiop,jrmp,reliability,thread" 
>>>>
>>>>
>>>>
>>>>
>>>> Why not servicediscovery????
>>>>
>>>> Patricia
>>>>
>>> Well I'll be b...., didn't pick that up, how strange, running
>>> servicediscovery now, although not with your patches, I'll try that
>>> tomorrow.
>>
>> I'm running the servicediscovery tests against a modified version of
>> ServiceDiscoveryManager that has a couple of short sleep calls in
>> addProxyReg. It has reported several failures. I would be very
>> interested in what failures, if any, you get with an unpatched SDM. If
>> your version does not fail we have a real test coverage problem. If your
>> version gets similar failures, we just have a problem with not running
>> tests we have.
>
> I should perhaps mention that if my sleep calls are triggering the 
> failures, they are almost certainly due to the concurrency problem I 
> found by inspection, which is very easy to fix. The difficult part is 
> finding a test to verify the fix.
>
> Patricia
>
Hi Patricia,

This is unfortunate, to solve it, I'll to have to go back in time & find 
out when these tests were passing, then figure out what change/s caused 
the failures.  It could be the reduced amount of synchronization time in 
TaskManager, but I'm only guessing.

Peter.

     [java] SUMMARY =================================
     [java]
     [java] com/sun/jini/test/impl/servicediscovery/TerminateSemantics.td
     [java] Test Passed: OK
     [java]
     [java] -----------------------------------------
     [java] 
com/sun/jini/test/impl/servicediscovery/cache/CacheTerminateSemantics.td
     [java] Test Passed: OK
     [java]
     [java] -----------------------------------------
     [java] 
com/sun/jini/test/impl/servicediscovery/event/AddListenerEvent.td
     [java] Test Passed: OK
     [java]
     [java] -----------------------------------------
     [java] 
com/sun/jini/test/impl/servicediscovery/event/DiscardDownReDiscover.td
     [java] Test Failed: Test Failed: 
com.sun.jini.qa.harness.TestException: # added expected = 12, # added 
received = 22, # removed expected = 12, # removed received = 12
     [java]
     [java] -----------------------------------------
     [java] 
com/sun/jini/test/impl/servicediscovery/event/DiscardServiceDown.td
     [java] Test Failed: Test Failed: 
com.sun.jini.qa.harness.TestException: # added expected = 12, # added 
received = 22, # removed expected = 12, # removed received = 12
     [java]
     [java] -----------------------------------------
     [java] 
com/sun/jini/test/impl/servicediscovery/event/DiscardServiceUp.td
     [java] Test Passed: OK
     [java]
     [java] -----------------------------------------
     [java] 
com/sun/jini/test/impl/servicediscovery/event/LookupDropProxyTaskRace.td
     [java] Test Passed: OK
     [java]
     [java] -----------------------------------------
     [java] com/sun/jini/test/impl/servicediscovery/event/LookupTaskRace.td
     [java] Test Passed: OK
     [java]
     [java] -----------------------------------------
     [java] 
com/sun/jini/test/impl/servicediscovery/event/LookupTaskServiceIdMapRace.td
     [java] Test Failed: Test Failed: 
com.sun.jini.qa.harness.TestException:  -- failure -- 12 SDMs with wrong 
number of added events, (removed events OKAY)
     [java]
     [java] -----------------------------------------
     [java] 
com/sun/jini/test/impl/servicediscovery/event/NotifyEventDropProxyTaskRace.td
     [java] Test Failed: Test Failed: 
com.sun.jini.qa.harness.TestException:  -- failure -- nAdded = 0, 
nAddedExpected = 1; nRemoved = 0, nRemovedExpected = 1
     [java]
     [java] -----------------------------------------
     [java] 
com/sun/jini/test/impl/servicediscovery/event/ReRegisterBadEquals.td
     [java] Test Failed: Test Failed: 
com.sun.jini.qa.harness.TestException:  -- failure -- nAdded = 2, 
nAddedExpected = 4, nRemoved = 0, nRemovedExpected = 2
     [java]
     [java] -----------------------------------------
     [java] 
com/sun/jini/test/impl/servicediscovery/event/ReRegisterGoodEquals.td
     [java] Test Failed: Test Failed: 
com.sun.jini.qa.harness.TestException:  -- failure -- nAdded = 2, 
nAddedExpected = 4, nRemoved = 0, nRemovedExpected = 2
     [java]
     [java] -----------------------------------------
     [java] 
com/sun/jini/test/impl/servicediscovery/event/ServiceDiscardCacheTerminate.td
     [java] Test Passed: OK
     [java]
     [java] -----------------------------------------
     [java] com/sun/jini/test/spec/servicediscovery/DefaultDiscoverPublic.td
     [java] Test Passed: OK
     [java]
     [java] -----------------------------------------
     [java] com/sun/jini/test/spec/servicediscovery/cache/AddListenerNPE.td
     [java] Test Passed: OK
     [java]
     [java] -----------------------------------------
     [java] com/sun/jini/test/spec/servicediscovery/cache/CacheDiscard.td
     [java] Test Passed: OK
     [java]
     [java] -----------------------------------------
     [java] com/sun/jini/test/spec/servicediscovery/cache/CacheLookup.td
     [java] Test Passed: OK
     [java]
     [java] -----------------------------------------
     [java] 
com/sun/jini/test/spec/servicediscovery/cache/CacheLookupFilterFilter.td
     [java] Test Passed: OK
     [java]
     [java] -----------------------------------------
     [java] 
com/sun/jini/test/spec/servicediscovery/cache/CacheLookupFilterNoFilter.td
     [java] Test Passed: OK
     [java]
     [java] -----------------------------------------
     [java] 
com/sun/jini/test/spec/servicediscovery/cache/CacheLookupNoFilterFilter.td
     [java] Test Passed: OK
     [java]
     [java] -----------------------------------------
     [java] com/sun/jini/test/spec/servicediscovery/discovery/Locator.td
     [java] Test Passed: OK
     [java]
     [java] -----------------------------------------
     [java] 
com/sun/jini/test/spec/servicediscovery/discovery/MulticastAnnouncement.td
     [java] Test Passed: OK
     [java]
     [java] -----------------------------------------
     [java] 
com/sun/jini/test/spec/servicediscovery/discovery/MulticastRequest.td
     [java] Test Passed: OK
     [java]
     [java] -----------------------------------------
     [java] com/sun/jini/test/spec/servicediscovery/discovery/Permission.td
     [java] Test Passed: OK
     [java]
     [java] -----------------------------------------
     [java] 
com/sun/jini/test/spec/servicediscovery/event/AddAttrServiceChanged.td
     [java] Test Failed: Test Failed: 
com.sun.jini.qa.harness.TestException: unexpected events -- added: 
received 1 - expected 1, removed: received 0 - expected 0, changed: 
received 0 - expected 1
     [java]
     [java] -----------------------------------------
     [java] 
com/sun/jini/test/spec/servicediscovery/event/ModifyAttrServiceChanged.td
     [java] Test Failed: Test Failed: 
com.sun.jini.qa.harness.TestException: unexpected events -- added: 
received 1 - expected 1, removed: received 0 - expected 0, changed: 
received 0 - expected 1
     [java]
     [java] -----------------------------------------
     [java] 
com/sun/jini/test/spec/servicediscovery/event/SetAttrServiceChanged.td
     [java] Test Failed: Test Failed: 
com.sun.jini.qa.harness.TestException: unexpected events -- added: 
received 1 - expected 1, removed: received 0 - expected 0, changed: 
received 0 - expected 1
     [java]
     [java] -----------------------------------------
     [java] com/sun/jini/test/spec/servicediscovery/lookup/Lookup.td
     [java] Test Passed: OK
     [java]
     [java] -----------------------------------------
     [java] com/sun/jini/test/spec/servicediscovery/lookup/LookupFilter.td
     [java] Test Passed: OK
     [java]
     [java] -----------------------------------------
     [java] com/sun/jini/test/spec/servicediscovery/lookup/LookupMax.td
     [java] Test Passed: OK
     [java]
     [java] -----------------------------------------
     [java] 
com/sun/jini/test/spec/servicediscovery/lookup/LookupMaxFilter.td
     [java] Test Passed: OK
     [java]
     [java] -----------------------------------------
     [java] 
com/sun/jini/test/spec/servicediscovery/lookup/LookupMinEqualsMax.td
     [java] Test Failed: Test Failed: 
com.sun.jini.qa.harness.TestException:  -- blocked longer than expected 
-- requested block = 60 second(s), actual block = 60 second(s)
     [java]
     [java] -----------------------------------------
     [java] 
com/sun/jini/test/spec/servicediscovery/lookup/LookupMinEqualsMaxFilter.td
     [java] Test Passed: OK
     [java]
     [java] -----------------------------------------
     [java] 
com/sun/jini/test/spec/servicediscovery/lookup/LookupMinLessMax.td
     [java] Test Passed: OK
     [java]
     [java] -----------------------------------------
     [java] 
com/sun/jini/test/spec/servicediscovery/lookup/LookupMinLessMaxFilter.td
     [java] Test Passed: OK
     [java]
     [java] -----------------------------------------
     [java] 
com/sun/jini/test/spec/servicediscovery/lookup/LookupMinMaxNoBlock.td
     [java] Test Passed: OK
     [java]
     [java] -----------------------------------------
     [java] 
com/sun/jini/test/spec/servicediscovery/lookup/LookupMinMaxNoBlockFilter.td
     [java] Test Passed: OK
     [java]
     [java] -----------------------------------------
     [java] com/sun/jini/test/spec/servicediscovery/lookup/LookupWait.td
     [java] Test Passed: OK
     [java]
     [java] -----------------------------------------
     [java] 
com/sun/jini/test/spec/servicediscovery/lookup/LookupWaitFilter.td
     [java] Test Passed: OK
     [java]
     [java] -----------------------------------------
     [java] 
com/sun/jini/test/spec/servicediscovery/lookup/LookupWaitNoBlock.td
     [java] Test Passed: OK
     [java]
     [java] -----------------------------------------
     [java]
     [java] # of tests started   = 40
     [java] # of tests completed = 40
     [java] # of tests passed    = 30
     [java] # of tests failed    = 10
     [java]
     [java] -----------------------------------------
     [java]
     [java]    Date finished:
     [java]       Sat Aug 21 23:48:04 EST 2010
     [java]    Time elapsed:
     [java]       4727 seconds
     [java]

BUILD FAILED
/opt/src/ApacheRiver/trunk/qa/build.xml:289: The following error 
occurred while executing this line:
/opt/src/ApacheRiver/trunk/qa/build.xml:202: Java returned: 1


Re: ServiceDiscoveryManager test coverage

Posted by Patricia Shanahan <pa...@acm.org>.
On 8/21/2010 11:11 AM, Patricia Shanahan wrote:
> On 8/21/2010 5:31 AM, Peter Firmstone wrote:
>> Patricia Shanahan wrote:
>>> On 8/20/2010 11:10 PM, Peter Firmstone wrote:
>>>> Patricia Shanahan wrote:
>>>>> Peter Firmstone wrote:
>>>>>> Patricia Shanahan wrote:
>>>>>>> As indicated in the "TaskManager Progress" thread, I think, based on
>>>>>>> reading the source code, that there is a concurrency bug in
>>>>>>> ServiceDiscoveryManager.LookupCacheImpl's addProxyReg method.
>>>>>>>
>>>>>>> I added logging to see which tests I should run to evaluate a fix.
>>>>>>> As far as I can tell, the automated system contains a single test
>>>>>>> that creates a ServiceDiscoveryManager, LeaseRenewDurRFE, and it
>>>>>>> does not appear to use addProxyReg.
>>>>>>>
>>>>>>> Are there any tests in addition to the QA and JTreg tests that might
>>>>>>> cover this?
>>>>>>
>>>>>> No, not in addition unfortunately.
>>>>>
>>>>> I didn't really expect there would be, but it was worth asking.
>>>>>
>>>>> I'm now working on an SDM concurrency test - essentially writing stubs
>>>>> for the classes it interacts with, so that I can control the timing of
>>>>> events. I want to hit it with a lot of different activity at the same
>>>>> time.
>>>>>
>>>>> Is there any existing code that would help with that task?
>>>>>
>>>>> Patricia
>>>>>
>>>> Any of the existing qa or jtreg tests that relate to the SDM would be a
>>>> good start.
>>>>
>>>> Not sure which I'd pick though.
>>>
>>> I've found why I was not finding ServiceDiscoveryManager tests. "ant
>>> qa.run" in the build directory, which is how I was running QA tests,
>>> runs specified categories:
>>> "id,loader,policyprovider,locatordiscovery,activation,config,discoverymanager,joinmanager,url,iiop,jrmp,reliability,thread"
>>>
>>>
>>>
>>> Why not servicediscovery????
>>>
>>> Patricia
>>>
>> Well I'll be b...., didn't pick that up, how strange, running
>> servicediscovery now, although not with your patches, I'll try that
>> tomorrow.
>
> I'm running the servicediscovery tests against a modified version of
> ServiceDiscoveryManager that has a couple of short sleep calls in
> addProxyReg. It has reported several failures. I would be very
> interested in what failures, if any, you get with an unpatched SDM. If
> your version does not fail we have a real test coverage problem. If your
> version gets similar failures, we just have a problem with not running
> tests we have.

I should perhaps mention that if my sleep calls are triggering the 
failures, they are almost certainly due to the concurrency problem I 
found by inspection, which is very easy to fix. The difficult part is 
finding a test to verify the fix.

Patricia

Re: ServiceDiscoveryManager test coverage

Posted by Patricia Shanahan <pa...@acm.org>.
On 8/21/2010 11:11 AM, Patricia Shanahan wrote:
> On 8/21/2010 5:31 AM, Peter Firmstone wrote:
>> Patricia Shanahan wrote:
>>> On 8/20/2010 11:10 PM, Peter Firmstone wrote:
>>>> Patricia Shanahan wrote:
>>>>> Peter Firmstone wrote:
>>>>>> Patricia Shanahan wrote:
>>>>>>> As indicated in the "TaskManager Progress" thread, I think, based on
>>>>>>> reading the source code, that there is a concurrency bug in
>>>>>>> ServiceDiscoveryManager.LookupCacheImpl's addProxyReg method.
>>>>>>>
>>>>>>> I added logging to see which tests I should run to evaluate a fix.
>>>>>>> As far as I can tell, the automated system contains a single test
>>>>>>> that creates a ServiceDiscoveryManager, LeaseRenewDurRFE, and it
>>>>>>> does not appear to use addProxyReg.
>>>>>>>
>>>>>>> Are there any tests in addition to the QA and JTreg tests that might
>>>>>>> cover this?
>>>>>>
>>>>>> No, not in addition unfortunately.
>>>>>
>>>>> I didn't really expect there would be, but it was worth asking.
>>>>>
>>>>> I'm now working on an SDM concurrency test - essentially writing stubs
>>>>> for the classes it interacts with, so that I can control the timing of
>>>>> events. I want to hit it with a lot of different activity at the same
>>>>> time.
>>>>>
>>>>> Is there any existing code that would help with that task?
>>>>>
>>>>> Patricia
>>>>>
>>>> Any of the existing qa or jtreg tests that relate to the SDM would be a
>>>> good start.
>>>>
>>>> Not sure which I'd pick though.
>>>
>>> I've found why I was not finding ServiceDiscoveryManager tests. "ant
>>> qa.run" in the build directory, which is how I was running QA tests,
>>> runs specified categories:
>>> "id,loader,policyprovider,locatordiscovery,activation,config,discoverymanager,joinmanager,url,iiop,jrmp,reliability,thread"
>>>
>>>
>>>
>>> Why not servicediscovery????
>>>
>>> Patricia
>>>
>> Well I'll be b...., didn't pick that up, how strange, running
>> servicediscovery now, although not with your patches, I'll try that
>> tomorrow.
>
> I'm running the servicediscovery tests against a modified version of
> ServiceDiscoveryManager that has a couple of short sleep calls in
> addProxyReg. It has reported several failures. I would be very
> interested in what failures, if any, you get with an unpatched SDM. If
> your version does not fail we have a real test coverage problem. If your
> version gets similar failures, we just have a problem with not running
> tests we have.

The good news is that we do have some ServiceDiscoveryManager 
concurrency tests, but there are three pieces of bad news:

1. 11 of the SDM tests are failing, at least in my Ubuntu environment.

2. None appears to be related to my addProxyReg bug.

3. Each of the concurrency tests appears to be designed for after the 
fact verification that a specific bug has been fixed. I have not yet 
found anything that just beats up SDM, trying to shake loose random 
bugs. Of course, the fact that I have not yet found it does not prove it 
does not exist.

Patricia

Re: ServiceDiscoveryManager test coverage

Posted by Patricia Shanahan <pa...@acm.org>.
On 8/21/2010 5:31 AM, Peter Firmstone wrote:
> Patricia Shanahan wrote:
>> On 8/20/2010 11:10 PM, Peter Firmstone wrote:
>>> Patricia Shanahan wrote:
>>>> Peter Firmstone wrote:
>>>>> Patricia Shanahan wrote:
>>>>>> As indicated in the "TaskManager Progress" thread, I think, based on
>>>>>> reading the source code, that there is a concurrency bug in
>>>>>> ServiceDiscoveryManager.LookupCacheImpl's addProxyReg method.
>>>>>>
>>>>>> I added logging to see which tests I should run to evaluate a fix.
>>>>>> As far as I can tell, the automated system contains a single test
>>>>>> that creates a ServiceDiscoveryManager, LeaseRenewDurRFE, and it
>>>>>> does not appear to use addProxyReg.
>>>>>>
>>>>>> Are there any tests in addition to the QA and JTreg tests that might
>>>>>> cover this?
>>>>>
>>>>> No, not in addition unfortunately.
>>>>
>>>> I didn't really expect there would be, but it was worth asking.
>>>>
>>>> I'm now working on an SDM concurrency test - essentially writing stubs
>>>> for the classes it interacts with, so that I can control the timing of
>>>> events. I want to hit it with a lot of different activity at the same
>>>> time.
>>>>
>>>> Is there any existing code that would help with that task?
>>>>
>>>> Patricia
>>>>
>>> Any of the existing qa or jtreg tests that relate to the SDM would be a
>>> good start.
>>>
>>> Not sure which I'd pick though.
>>
>> I've found why I was not finding ServiceDiscoveryManager tests. "ant
>> qa.run" in the build directory, which is how I was running QA tests,
>> runs specified categories:
>> "id,loader,policyprovider,locatordiscovery,activation,config,discoverymanager,joinmanager,url,iiop,jrmp,reliability,thread"
>>
>>
>> Why not servicediscovery????
>>
>> Patricia
>>
> Well I'll be b...., didn't pick that up, how strange, running
> servicediscovery now, although not with your patches, I'll try that
> tomorrow.

I'm running the servicediscovery tests against a modified version of 
ServiceDiscoveryManager that has a couple of short sleep calls in 
addProxyReg. It has reported several failures. I would be very 
interested in what failures, if any, you get with an unpatched SDM. If 
your version does not fail we have a real test coverage problem. If your 
version gets similar failures, we just have a problem with not running 
tests we have.

Patricia


Re: ServiceDiscoveryManager test coverage

Posted by Peter Firmstone <ji...@zeus.net.au>.
Patricia Shanahan wrote:
> On 8/20/2010 11:10 PM, Peter Firmstone wrote:
>> Patricia Shanahan wrote:
>>> Peter Firmstone wrote:
>>>> Patricia Shanahan wrote:
>>>>> As indicated in the "TaskManager Progress" thread, I think, based on
>>>>> reading the source code, that there is a concurrency bug in
>>>>> ServiceDiscoveryManager.LookupCacheImpl's addProxyReg method.
>>>>>
>>>>> I added logging to see which tests I should run to evaluate a fix.
>>>>> As far as I can tell, the automated system contains a single test
>>>>> that creates a ServiceDiscoveryManager, LeaseRenewDurRFE, and it
>>>>> does not appear to use addProxyReg.
>>>>>
>>>>> Are there any tests in addition to the QA and JTreg tests that might
>>>>> cover this?
>>>>
>>>> No, not in addition unfortunately.
>>>
>>> I didn't really expect there would be, but it was worth asking.
>>>
>>> I'm now working on an SDM concurrency test - essentially writing stubs
>>> for the classes it interacts with, so that I can control the timing of
>>> events. I want to hit it with a lot of different activity at the same
>>> time.
>>>
>>> Is there any existing code that would help with that task?
>>>
>>> Patricia
>>>
>> Any of the existing qa or jtreg tests that relate to the SDM would be a
>> good start.
>>
>> Not sure which I'd pick though.
>
> I've found why I was not finding ServiceDiscoveryManager tests. "ant 
> qa.run" in the build directory, which is how I was running QA tests, 
> runs specified categories: 
> "id,loader,policyprovider,locatordiscovery,activation,config,discoverymanager,joinmanager,url,iiop,jrmp,reliability,thread" 
>
>
> Why not servicediscovery????
>
> Patricia
>
Well I'll be b...., didn't pick that up, how strange, running 
servicediscovery now, although not with your patches, I'll try that 
tomorrow.

Peter.



Re: ServiceDiscoveryManager test coverage

Posted by Patricia Shanahan <pa...@acm.org>.
On 8/20/2010 11:10 PM, Peter Firmstone wrote:
> Patricia Shanahan wrote:
>> Peter Firmstone wrote:
>>> Patricia Shanahan wrote:
>>>> As indicated in the "TaskManager Progress" thread, I think, based on
>>>> reading the source code, that there is a concurrency bug in
>>>> ServiceDiscoveryManager.LookupCacheImpl's addProxyReg method.
>>>>
>>>> I added logging to see which tests I should run to evaluate a fix.
>>>> As far as I can tell, the automated system contains a single test
>>>> that creates a ServiceDiscoveryManager, LeaseRenewDurRFE, and it
>>>> does not appear to use addProxyReg.
>>>>
>>>> Are there any tests in addition to the QA and JTreg tests that might
>>>> cover this?
>>>
>>> No, not in addition unfortunately.
>>
>> I didn't really expect there would be, but it was worth asking.
>>
>> I'm now working on an SDM concurrency test - essentially writing stubs
>> for the classes it interacts with, so that I can control the timing of
>> events. I want to hit it with a lot of different activity at the same
>> time.
>>
>> Is there any existing code that would help with that task?
>>
>> Patricia
>>
> Any of the existing qa or jtreg tests that relate to the SDM would be a
> good start.
>
> Not sure which I'd pick though.

I've found why I was not finding ServiceDiscoveryManager tests. "ant 
qa.run" in the build directory, which is how I was running QA tests, 
runs specified categories: 
"id,loader,policyprovider,locatordiscovery,activation,config,discoverymanager,joinmanager,url,iiop,jrmp,reliability,thread"

Why not servicediscovery????

Patricia

Re: ServiceDiscoveryManager test coverage

Posted by Peter Firmstone <ji...@zeus.net.au>.
Patricia Shanahan wrote:
> Peter Firmstone wrote:
>> Patricia Shanahan wrote:
>>> As indicated in the "TaskManager Progress" thread, I think, based on 
>>> reading the source code, that there is a concurrency bug in 
>>> ServiceDiscoveryManager.LookupCacheImpl's addProxyReg method.
>>>
>>> I added logging to see which tests I should run to evaluate a fix. 
>>> As far as I can tell, the automated system contains a single test 
>>> that creates a ServiceDiscoveryManager, LeaseRenewDurRFE, and it 
>>> does not appear to use addProxyReg.
>>>
>>> Are there any tests in addition to the QA and JTreg tests that might 
>>> cover this?
>>
>> No, not in addition unfortunately.
>
> I didn't really expect there would be, but it was worth asking.
>
> I'm now working on an SDM concurrency test - essentially writing stubs 
> for the classes it interacts with, so that I can control the timing of 
> events. I want to hit it with a lot of different activity at the same 
> time.
>
> Is there any existing code that would help with that task?
>
> Patricia
>
Any of the existing qa or jtreg tests that relate to the SDM would be a 
good start.

Not sure which I'd pick though.

Cheers,

Peter.

Re: ServiceDiscoveryManager test coverage

Posted by Patricia Shanahan <pa...@acm.org>.
Peter Firmstone wrote:
> Patricia Shanahan wrote:
>> As indicated in the "TaskManager Progress" thread, I think, based on 
>> reading the source code, that there is a concurrency bug in 
>> ServiceDiscoveryManager.LookupCacheImpl's addProxyReg method.
>>
>> I added logging to see which tests I should run to evaluate a fix. As 
>> far as I can tell, the automated system contains a single test that 
>> creates a ServiceDiscoveryManager, LeaseRenewDurRFE, and it does not 
>> appear to use addProxyReg.
>>
>> Are there any tests in addition to the QA and JTreg tests that might 
>> cover this?
> 
> No, not in addition unfortunately.

I didn't really expect there would be, but it was worth asking.

I'm now working on an SDM concurrency test - essentially writing stubs 
for the classes it interacts with, so that I can control the timing of 
events. I want to hit it with a lot of different activity at the same time.

Is there any existing code that would help with that task?

Patricia

Re: ServiceDiscoveryManager test coverage

Posted by Peter Firmstone <ji...@zeus.net.au>.
Patricia Shanahan wrote:
> As indicated in the "TaskManager Progress" thread, I think, based on 
> reading the source code, that there is a concurrency bug in 
> ServiceDiscoveryManager.LookupCacheImpl's addProxyReg method.
>
> I added logging to see which tests I should run to evaluate a fix. As 
> far as I can tell, the automated system contains a single test that 
> creates a ServiceDiscoveryManager, LeaseRenewDurRFE, and it does not 
> appear to use addProxyReg.
>
> Are there any tests in addition to the QA and JTreg tests that might 
> cover this?

No, not in addition unfortunately.

>
> Patricia
>