There are currently 133 RMI tests, and they take around 14 minutes to run. They need to be sped up. Timings for each test (in seconds) are as follows:
80.2 java/rmi/activation/Activatable/forceLogSnapshot/ForceLogSnapshot.java
57.5 java/rmi/transport/dgcDeadLock/DGCDeadLock.java
53.3 java/rmi/activation/Activatable/checkActivateRef/CheckActivateRef.java
52.1 java/rmi/activation/Activatable/checkAnnotations/CheckAnnotations.java
35.0 java/rmi/reliability/juicer/AppleUserImpl.java
33.5 java/rmi/reliability/benchmark/runSerialBench.sh
30.8 java/rmi/activation/CommandEnvironment/SetChildEnv.java
21.9 java/rmi/dgc/retryDirtyCalls/RetryDirtyCalls.java
18.1 java/rmi/registry/classPathCodebase/ClassPathCodebase.java
16.6 java/rmi/activation/Activatable/restartCrashedService/RestartCrashedService.java
16.0 sun/rmi/transport/tcp/DeadCachedConnection.java
14.2 java/rmi/dgc/dgcAckFailure/DGCAckFailure.java
13.4 java/rmi/transport/readTimeout/ReadTimeoutTest.java
13.2 java/rmi/server/RMISocketFactory/useSocketFactory/activatable/UseCustomSocketFactory.java
13.0 java/rmi/activation/Activatable/checkImplClassLoader/CheckImplClassLoader.java
12.5 java/rmi/server/Unreferenced/leaseCheckInterval/LeaseCheckInterval.java
12.0 java/rmi/registry/readTest/readTest.sh
11.9 sun/rmi/rmic/newrmic/equivalence/run.sh
11.0 java/rmi/activation/Activatable/restartService/RestartService.java
10.2 java/rmi/activation/Activatable/checkRegisterInLog/CheckRegisterInLog.java
10.1 java/rmi/activation/Activatable/inactiveGroup/InactiveGroup.java
9.9 java/rmi/dgc/dgcImplInsulation/DGCImplInsulation.java
9.9 java/rmi/server/RMISocketFactory/useSocketFactory/unicast/UseCustomSocketFactory.java
9.4 java/rmi/server/Unreferenced/finiteGCLatency/FiniteGCLatency.java
9.1 java/rmi/activation/Activatable/restartLatecomer/RestartLatecomer.java
8.9 java/rmi/registry/checkusage/CheckUsage.java
8.9 java/rmi/transport/pinClientSocketFactory/PinClientSocketFactory.java
8.6 java/rmi/activation/ActivationSystem/stubClassesPermitted/StubClassesPermitted.java
8.2 java/rmi/registry/reexport/Reexport.java
8.0 java/rmi/server/UnicastRemoteObject/exportObject/GcDuringExport.java
7.8 java/rmi/activation/Activatable/shutdownGracefully/ShutdownGracefully.java
7.5 javax/rmi/ssl/SSLSocketParametersTest.sh
7.2 java/rmi/activation/ActivateFailedException/activateFails/ActivateFails.java
6.8 sun/rmi/rmic/manifestClassPath/run.sh
6.6 java/rmi/transport/handshakeTimeout/HandshakeTimeout.java
6.3 java/rmi/activation/ActivationSystem/modifyDescriptor/ModifyDescriptor.java
5.7 java/rmi/activation/ActivationSystem/unregisterGroup/UnregisterGroup.java
5.5 java/rmi/transport/runtimeThreadInheritanceLeak/RuntimeThreadInheritanceLeak.java
5.0 sun/rmi/rmic/minimizeWrapperInstances/run.sh
4.9 java/rmi/server/UnicastRemoteObject/unexportObject/UnexportLeak.java
4.9 java/rmi/transport/checkFQDN/CheckFQDN.java
4.7 java/rmi/server/UnicastRemoteObject/keepAliveDuringCall/KeepAliveDuringCall.java
4.6 java/rmi/activation/Activatable/nestedActivate/NestedActivate.java
4.4 java/rmi/activation/Activatable/createPrivateActivable/CreatePrivateActivatable.java
4.3 java/rmi/activation/Activatable/unregisterInactive/UnregisterInactive.java
4.0 java/rmi/activation/Activatable/elucidateNoSuchMethod/ElucidateNoSuchMethod.java
4.0 java/rmi/server/RMIClassLoader/downloadArrayClass/DownloadArrayClass.java
3.8 java/rmi/activation/Activatable/extLoadedImpl/ext.sh
3.8 java/rmi/activation/Activatable/nonExistentActivatable/NonExistentActivatable.java
3.6 java/rmi/server/RMIClassLoader/useCodebaseOnly/UseCodebaseOnly.java
3.6 sun/rmi/transport/tcp/blockAccept/BlockAcceptTest.java
3.5 java/rmi/server/Unreferenced/unreferencedContext/UnreferencedContext.java
3.4 java/rmi/server/RMIClassLoader/spi/ContextInsulation.java
3.4 java/rmi/server/Unreferenced/marshalledObjectGet/MarshalledObjectGet.java
3.4 sun/rmi/server/MarshalOutputStream/marshalForeignStub/MarshalForeignStub.java
3.3 java/rmi/activation/Activatable/downloadParameterClass/DownloadParameterClass.java
3.3 java/rmi/Naming/legalRegistryNames/LegalRegistryNames.java
3.3 java/rmi/registry/interfaceHash/InterfaceHash.java
3.3 java/rmi/server/RMIClassLoader/loadProxyClasses/LoadProxyClasses.java
3.3 java/rmi/server/UnicastRemoteObject/useDynamicProxies/UseDynamicProxies.java
3.3 java/rmi/server/Unmarshal/checkUnmarshalOnStopThread/CheckUnmarshalOnStopThread.java
3.2 java/rmi/activation/ActivationGroup/downloadActivationGroup/DownloadActivationGroup.java
3.2 java/rmi/server/ObjID/randomIDs/RandomIDs.java
3.2 java/rmi/server/RemoteObject/notExtending/NotExtending.java
3.2 sun/rmi/transport/tcp/disableMultiplexing/DisableMultiplexing.java
3.1 java/rmi/server/RMIClassLoader/delegateBeforePermissionCheck/DelegateBeforePermissionCheck.java
3.1 java/rmi/server/RMIClassLoader/useGetURLs/UseGetURLs.java
3.0 java/rmi/server/RMISocketFactory/useSocketFactory/registry/UseCustomSocketFactory.java
2.9 java/rmi/activation/rmidViaInheritedChannel/RmidViaInheritedChannel.java
2.9 java/rmi/server/RMIClassLoader/getClassLoader/GetClassLoader.java
2.8 java/rmi/registry/altSecurityManager/AltSecurityManager.java
2.8 java/rmi/server/RMIClassLoader/delegateToContextLoader/DelegateToContextLoader.java
2.8 java/rmi/server/RMIClassLoader/noSecurityManager/NoSecurityManager.java
2.7 java/rmi/activation/ActivationSystem/activeGroup/IdempotentActiveGroup.java
2.7 java/rmi/activation/rmidViaInheritedChannel/InheritedChannelNotServerSocket.java
2.7 java/rmi/server/RMIClassLoader/spi/DefaultProperty.java
2.7 sun/rmi/rmic/RMIGenerator/RmicDefault.java
2.6 java/rmi/server/RemoteObject/toStub/ToStub.java
2.6 sun/rmi/runtime/Log/6409194/NoConsoleOutput.java
2.5 java/rmi/Naming/UnderscoreHost.java
2.5 java/rmi/server/useCustomRef/UseCustomRef.java
2.4 java/rmi/server/serverStackTrace/SuppressStackTraces.java
2.4 javax/rmi/ssl/SocketFactoryTest.java
2.4 sun/rmi/runtime/Log/checkLogging/CheckLogging.java
2.3 java/rmi/Naming/RmiIsNoScheme.java
2.3 java/rmi/server/UnicastRemoteObject/changeHostName/ChangeHostName.java
2.3 java/rmi/server/UnicastRemoteObject/marshalAfterUnexport/MarshalAfterUnexport2.java
2.3 sun/rmi/rmic/covariantReturns/run.sh
2.3 sun/rmi/rmic/defaultStubVersion/run.sh
2.3 sun/rmi/runtime/Log/checkLogging/CheckLogStreams.java
2.2 java/rmi/activation/Activatable/lookupActivationSystem/LookupActivationSystem.java
2.2 java/rmi/server/RemoteObject/unrecognizedRefType/UnrecognizedRefType.java
2.2 java/rmi/server/RemoteObject/verifyRemoteEquals/VerifyRemoteEquals.java
2.2 java/rmi/server/serverStackTrace/ServerStackTrace.java
2.2 java/rmi/transport/acceptLoop/CloseServerSocketOnTermination.java
2.2 java/rmi/transport/httpSocket/HttpSocketTest.java
2.2 sun/rmi/runtime/Log/4504153/Test4504153.java
2.1 java/rmi/transport/closeServerSocket/CloseServerSocket.java
2.1 java/rmi/transport/handshakeFailure/HandshakeFailure.java
2.1 java/rmi/transport/pinLastArguments/PinLastArguments.java
2.1 java/rmi/transport/reuseDefaultPort/ReuseDefaultPort.java
2.0 java/rmi/server/UnicastRemoteObject/marshalAfterUnexport/MarshalAfterUnexport.java
2.0 sun/rmi/log/ReliableLog/LogAlignmentTest.java
1.9 java/rmi/registry/multipleRegistries/MultipleRegistries.java
1.8 java/rmi/activation/log/LogTest.java
1.8 java/rmi/Naming/DefaultRegistryPort.java
1.8 java/rmi/Naming/LookupNameWithColon.java
1.8 java/rmi/server/RemoteServer/setLogPermission/SetLogPermission.java
1.8 java/rmi/server/Unmarshal/PrimitiveClasses.java
1.8 sun/rmi/rmic/classFileVersion/run.sh
1.7 java/rmi/activation/Activatable/notSerializable/NotSerializable.java
1.7 java/rmi/invalidName/InvalidName.java
1.7 java/rmi/server/clientStackTrace/ClientStackTrace.java
1.7 java/rmi/server/RemoteServer/AddrInUse.java
1.7 java/rmi/server/RMIClassLoader/spi/Property.java
1.6 java/rmi/Naming/LookupIPv6.java
1.6 java/rmi/server/RMIClassLoader/spi/Installed.java
1.6 java/rmi/server/RMIClassLoader/spi/InvalidProperty.java
1.6 sun/rmi/log/ReliableLog/SnapshotSize.java
1.6 sun/rmi/rmic/classpath/RMICClassPathTest.java
1.5 java/rmi/registry/emptyName/EmptyName.java
1.5 java/rmi/RemoteException/chaining/Chaining.java
1.5 java/rmi/server/RemoteServer/SetLogNull.java
1.5 java/rmi/server/RMIClassLoader/getClassAnnotation/NullClass.java
1.4 java/rmi/dgc/VMID/CheckVMID.java
1.4 java/rmi/server/getRemoteClass/GetRemoteClass.java
1.3 java/rmi/activation/ActivationGroupDesc/checkDefaultGroupName/CheckDefaultGroupName.java
1.3 java/rmi/activation/CommandEnvironment/NullOptions.java
1.3 java/rmi/MarshalledObject/compare/Compare.java
1.3 java/rmi/MarshalledObject/compare/HashCode.java
1.3 java/rmi/RMISecurityManager/checkPackageAccess/CheckPackageAccess.java
1.1 java/rmi/MarshalledObject/compare/NullReference.java
0.2 sun/rmi/rmic/extraCompilation/run.sh
Timings are accumulated from jtreg output such as the following:
TEST: java/rmi/activation/Activatable/nestedActivate/NestedActivate.java
build: 0.547 seconds
compile: 0.547 seconds
build: 0.653 seconds
compile: 0.652 seconds
main: 2.212 seconds
TEST RESULT: Passed. Execution successful
I think the "build" and "compile" times are actually double-counting (they're almost always identical) so these timing are actually an overstatement of the actual times. Still, the timings should give an idea of which tests are the ones that need to be sped up.
80.2 java/rmi/activation/Activatable/forceLogSnapshot/ForceLogSnapshot.java
57.5 java/rmi/transport/dgcDeadLock/DGCDeadLock.java
53.3 java/rmi/activation/Activatable/checkActivateRef/CheckActivateRef.java
52.1 java/rmi/activation/Activatable/checkAnnotations/CheckAnnotations.java
35.0 java/rmi/reliability/juicer/AppleUserImpl.java
33.5 java/rmi/reliability/benchmark/runSerialBench.sh
30.8 java/rmi/activation/CommandEnvironment/SetChildEnv.java
21.9 java/rmi/dgc/retryDirtyCalls/RetryDirtyCalls.java
18.1 java/rmi/registry/classPathCodebase/ClassPathCodebase.java
16.6 java/rmi/activation/Activatable/restartCrashedService/RestartCrashedService.java
16.0 sun/rmi/transport/tcp/DeadCachedConnection.java
14.2 java/rmi/dgc/dgcAckFailure/DGCAckFailure.java
13.4 java/rmi/transport/readTimeout/ReadTimeoutTest.java
13.2 java/rmi/server/RMISocketFactory/useSocketFactory/activatable/UseCustomSocketFactory.java
13.0 java/rmi/activation/Activatable/checkImplClassLoader/CheckImplClassLoader.java
12.5 java/rmi/server/Unreferenced/leaseCheckInterval/LeaseCheckInterval.java
12.0 java/rmi/registry/readTest/readTest.sh
11.9 sun/rmi/rmic/newrmic/equivalence/run.sh
11.0 java/rmi/activation/Activatable/restartService/RestartService.java
10.2 java/rmi/activation/Activatable/checkRegisterInLog/CheckRegisterInLog.java
10.1 java/rmi/activation/Activatable/inactiveGroup/InactiveGroup.java
9.9 java/rmi/dgc/dgcImplInsulation/DGCImplInsulation.java
9.9 java/rmi/server/RMISocketFactory/useSocketFactory/unicast/UseCustomSocketFactory.java
9.4 java/rmi/server/Unreferenced/finiteGCLatency/FiniteGCLatency.java
9.1 java/rmi/activation/Activatable/restartLatecomer/RestartLatecomer.java
8.9 java/rmi/registry/checkusage/CheckUsage.java
8.9 java/rmi/transport/pinClientSocketFactory/PinClientSocketFactory.java
8.6 java/rmi/activation/ActivationSystem/stubClassesPermitted/StubClassesPermitted.java
8.2 java/rmi/registry/reexport/Reexport.java
8.0 java/rmi/server/UnicastRemoteObject/exportObject/GcDuringExport.java
7.8 java/rmi/activation/Activatable/shutdownGracefully/ShutdownGracefully.java
7.5 javax/rmi/ssl/SSLSocketParametersTest.sh
7.2 java/rmi/activation/ActivateFailedException/activateFails/ActivateFails.java
6.8 sun/rmi/rmic/manifestClassPath/run.sh
6.6 java/rmi/transport/handshakeTimeout/HandshakeTimeout.java
6.3 java/rmi/activation/ActivationSystem/modifyDescriptor/ModifyDescriptor.java
5.7 java/rmi/activation/ActivationSystem/unregisterGroup/UnregisterGroup.java
5.5 java/rmi/transport/runtimeThreadInheritanceLeak/RuntimeThreadInheritanceLeak.java
5.0 sun/rmi/rmic/minimizeWrapperInstances/run.sh
4.9 java/rmi/server/UnicastRemoteObject/unexportObject/UnexportLeak.java
4.9 java/rmi/transport/checkFQDN/CheckFQDN.java
4.7 java/rmi/server/UnicastRemoteObject/keepAliveDuringCall/KeepAliveDuringCall.java
4.6 java/rmi/activation/Activatable/nestedActivate/NestedActivate.java
4.4 java/rmi/activation/Activatable/createPrivateActivable/CreatePrivateActivatable.java
4.3 java/rmi/activation/Activatable/unregisterInactive/UnregisterInactive.java
4.0 java/rmi/activation/Activatable/elucidateNoSuchMethod/ElucidateNoSuchMethod.java
4.0 java/rmi/server/RMIClassLoader/downloadArrayClass/DownloadArrayClass.java
3.8 java/rmi/activation/Activatable/extLoadedImpl/ext.sh
3.8 java/rmi/activation/Activatable/nonExistentActivatable/NonExistentActivatable.java
3.6 java/rmi/server/RMIClassLoader/useCodebaseOnly/UseCodebaseOnly.java
3.6 sun/rmi/transport/tcp/blockAccept/BlockAcceptTest.java
3.5 java/rmi/server/Unreferenced/unreferencedContext/UnreferencedContext.java
3.4 java/rmi/server/RMIClassLoader/spi/ContextInsulation.java
3.4 java/rmi/server/Unreferenced/marshalledObjectGet/MarshalledObjectGet.java
3.4 sun/rmi/server/MarshalOutputStream/marshalForeignStub/MarshalForeignStub.java
3.3 java/rmi/activation/Activatable/downloadParameterClass/DownloadParameterClass.java
3.3 java/rmi/Naming/legalRegistryNames/LegalRegistryNames.java
3.3 java/rmi/registry/interfaceHash/InterfaceHash.java
3.3 java/rmi/server/RMIClassLoader/loadProxyClasses/LoadProxyClasses.java
3.3 java/rmi/server/UnicastRemoteObject/useDynamicProxies/UseDynamicProxies.java
3.3 java/rmi/server/Unmarshal/checkUnmarshalOnStopThread/CheckUnmarshalOnStopThread.java
3.2 java/rmi/activation/ActivationGroup/downloadActivationGroup/DownloadActivationGroup.java
3.2 java/rmi/server/ObjID/randomIDs/RandomIDs.java
3.2 java/rmi/server/RemoteObject/notExtending/NotExtending.java
3.2 sun/rmi/transport/tcp/disableMultiplexing/DisableMultiplexing.java
3.1 java/rmi/server/RMIClassLoader/delegateBeforePermissionCheck/DelegateBeforePermissionCheck.java
3.1 java/rmi/server/RMIClassLoader/useGetURLs/UseGetURLs.java
3.0 java/rmi/server/RMISocketFactory/useSocketFactory/registry/UseCustomSocketFactory.java
2.9 java/rmi/activation/rmidViaInheritedChannel/RmidViaInheritedChannel.java
2.9 java/rmi/server/RMIClassLoader/getClassLoader/GetClassLoader.java
2.8 java/rmi/registry/altSecurityManager/AltSecurityManager.java
2.8 java/rmi/server/RMIClassLoader/delegateToContextLoader/DelegateToContextLoader.java
2.8 java/rmi/server/RMIClassLoader/noSecurityManager/NoSecurityManager.java
2.7 java/rmi/activation/ActivationSystem/activeGroup/IdempotentActiveGroup.java
2.7 java/rmi/activation/rmidViaInheritedChannel/InheritedChannelNotServerSocket.java
2.7 java/rmi/server/RMIClassLoader/spi/DefaultProperty.java
2.7 sun/rmi/rmic/RMIGenerator/RmicDefault.java
2.6 java/rmi/server/RemoteObject/toStub/ToStub.java
2.6 sun/rmi/runtime/Log/6409194/NoConsoleOutput.java
2.5 java/rmi/Naming/UnderscoreHost.java
2.5 java/rmi/server/useCustomRef/UseCustomRef.java
2.4 java/rmi/server/serverStackTrace/SuppressStackTraces.java
2.4 javax/rmi/ssl/SocketFactoryTest.java
2.4 sun/rmi/runtime/Log/checkLogging/CheckLogging.java
2.3 java/rmi/Naming/RmiIsNoScheme.java
2.3 java/rmi/server/UnicastRemoteObject/changeHostName/ChangeHostName.java
2.3 java/rmi/server/UnicastRemoteObject/marshalAfterUnexport/MarshalAfterUnexport2.java
2.3 sun/rmi/rmic/covariantReturns/run.sh
2.3 sun/rmi/rmic/defaultStubVersion/run.sh
2.3 sun/rmi/runtime/Log/checkLogging/CheckLogStreams.java
2.2 java/rmi/activation/Activatable/lookupActivationSystem/LookupActivationSystem.java
2.2 java/rmi/server/RemoteObject/unrecognizedRefType/UnrecognizedRefType.java
2.2 java/rmi/server/RemoteObject/verifyRemoteEquals/VerifyRemoteEquals.java
2.2 java/rmi/server/serverStackTrace/ServerStackTrace.java
2.2 java/rmi/transport/acceptLoop/CloseServerSocketOnTermination.java
2.2 java/rmi/transport/httpSocket/HttpSocketTest.java
2.2 sun/rmi/runtime/Log/4504153/Test4504153.java
2.1 java/rmi/transport/closeServerSocket/CloseServerSocket.java
2.1 java/rmi/transport/handshakeFailure/HandshakeFailure.java
2.1 java/rmi/transport/pinLastArguments/PinLastArguments.java
2.1 java/rmi/transport/reuseDefaultPort/ReuseDefaultPort.java
2.0 java/rmi/server/UnicastRemoteObject/marshalAfterUnexport/MarshalAfterUnexport.java
2.0 sun/rmi/log/ReliableLog/LogAlignmentTest.java
1.9 java/rmi/registry/multipleRegistries/MultipleRegistries.java
1.8 java/rmi/activation/log/LogTest.java
1.8 java/rmi/Naming/DefaultRegistryPort.java
1.8 java/rmi/Naming/LookupNameWithColon.java
1.8 java/rmi/server/RemoteServer/setLogPermission/SetLogPermission.java
1.8 java/rmi/server/Unmarshal/PrimitiveClasses.java
1.8 sun/rmi/rmic/classFileVersion/run.sh
1.7 java/rmi/activation/Activatable/notSerializable/NotSerializable.java
1.7 java/rmi/invalidName/InvalidName.java
1.7 java/rmi/server/clientStackTrace/ClientStackTrace.java
1.7 java/rmi/server/RemoteServer/AddrInUse.java
1.7 java/rmi/server/RMIClassLoader/spi/Property.java
1.6 java/rmi/Naming/LookupIPv6.java
1.6 java/rmi/server/RMIClassLoader/spi/Installed.java
1.6 java/rmi/server/RMIClassLoader/spi/InvalidProperty.java
1.6 sun/rmi/log/ReliableLog/SnapshotSize.java
1.6 sun/rmi/rmic/classpath/RMICClassPathTest.java
1.5 java/rmi/registry/emptyName/EmptyName.java
1.5 java/rmi/RemoteException/chaining/Chaining.java
1.5 java/rmi/server/RemoteServer/SetLogNull.java
1.5 java/rmi/server/RMIClassLoader/getClassAnnotation/NullClass.java
1.4 java/rmi/dgc/VMID/CheckVMID.java
1.4 java/rmi/server/getRemoteClass/GetRemoteClass.java
1.3 java/rmi/activation/ActivationGroupDesc/checkDefaultGroupName/CheckDefaultGroupName.java
1.3 java/rmi/activation/CommandEnvironment/NullOptions.java
1.3 java/rmi/MarshalledObject/compare/Compare.java
1.3 java/rmi/MarshalledObject/compare/HashCode.java
1.3 java/rmi/RMISecurityManager/checkPackageAccess/CheckPackageAccess.java
1.1 java/rmi/MarshalledObject/compare/NullReference.java
0.2 sun/rmi/rmic/extraCompilation/run.sh
Timings are accumulated from jtreg output such as the following:
TEST: java/rmi/activation/Activatable/nestedActivate/NestedActivate.java
build: 0.547 seconds
compile: 0.547 seconds
build: 0.653 seconds
compile: 0.652 seconds
main: 2.212 seconds
TEST RESULT: Passed. Execution successful
I think the "build" and "compile" times are actually double-counting (they're almost always identical) so these timing are actually an overstatement of the actual times. Still, the timings should give an idea of which tests are the ones that need to be sped up.
- relates to
-
JDK-7144861 RMI activation tests are too slow
- Closed
-
JDK-7168267 TEST_BUG: Cleanup of rmi regression tests (activation and others)
- Closed
-
JDK-8201469 test under java/rmi should be restricted to not run concurrently
- Closed