feat: Introduce globalconf V3 as extensible, i.e. capability to add new optional elements without breaking backwards compatibility #532
Unit and integration tests ❌
✅ src/addons/messagelog/messagelog-addon/build/test-results/test/TEST-ee.ria.xroad.proxy.messagelog.AsicContainerClientRequestProcessorTest.xml
6 tests were completed in 9s with 6 passed, 0 failed and 0 skipped.
✅ src/addons/messagelog/messagelog-addon/build/test-results/test/TEST-ee.ria.xroad.proxy.messagelog.MessageBodyManipulatorTest.xml
2 tests were completed in 197ms with 2 passed, 0 failed and 0 skipped.
✅ src/addons/messagelog/messagelog-addon/build/test-results/test/TEST-ee.ria.xroad.proxy.messagelog.MessageLogTest.xml
26 tests were completed in 2s with 26 passed, 0 failed and 0 skipped.
✅ src/addons/messagelog/messagelog-archive-verifier/build/test-results/test/TEST-org.niis.xroad.cli.ArchiveHashChainVerifierTest.xml
5 tests were completed in 463ms with 5 passed, 0 failed and 0 skipped.
✅ src/addons/metaservice/build/test-results/test/TEST-ee.ria.xroad.proxy.clientproxy.MetadataClientRequestProcessorTest.xml
6 tests were completed in 4s with 6 passed, 0 failed and 0 skipped.
✅ src/addons/metaservice/build/test-results/test/TEST-ee.ria.xroad.proxy.clientproxy.MetadataHandlerTest.xml
4 tests were completed in 108ms with 4 passed, 0 failed and 0 skipped.
✅ src/addons/metaservice/build/test-results/test/TEST-ee.ria.xroad.proxy.serverproxy.MetadataServiceHandlerTest.xml
11 tests were completed in 8s with 11 passed, 0 failed and 0 skipped.
✅ src/addons/metaservice/build/test-results/test/TEST-ee.ria.xroad.proxy.serverproxy.RestMetadataServiceHandlerTest.xml
8 tests were completed in 788ms with 8 passed, 0 failed and 0 skipped.
✅ src/addons/op-monitoring/build/test-results/test/TEST-ee.ria.xroad.proxy.opmonitoring.OpMonitoringBufferTest.xml
2 tests were completed in 17s with 2 passed, 0 failed and 0 skipped.
✅ src/addons/proxymonitor/metaservice/build/test-results/test/TEST-ee.ria.xroad.proxy.serverproxy.ProxyMonitorServiceHandlerMetricsTest.xml
2 tests were completed in 3s with 2 passed, 0 failed and 0 skipped.
✅ src/addons/proxymonitor/metaservice/build/test-results/test/TEST-ee.ria.xroad.proxy.serverproxy.ProxyMonitorServiceHandlerTest.xml
5 tests were completed in 636ms with 5 passed, 0 failed and 0 skipped.
✅ src/addons/wsdlvalidator/build/test-results/test/TEST-ee.ria.xroad.wsdlvalidator.WSDLValidatorTest.xml
4 tests were completed in 689ms with 4 passed, 0 failed and 0 skipped.
✅ src/asic-util/build/test-results/test/TEST-ee.ria.xroad.common.asic.AsicContainerNameGeneratorTest.xml
1 tests were completed in 36ms with 1 passed, 0 failed and 0 skipped.
✅ src/asic-util/build/test-results/test/TEST-ee.ria.xroad.common.asic.AsicContainerTest.xml
5 tests were completed in 1s with 5 passed, 0 failed and 0 skipped.
✅ src/asic-util/build/test-results/test/TEST-ee.ria.xroad.common.asic.AsicUtilsTest.xml
1 tests were completed in 1ms with 1 passed, 0 failed and 0 skipped.
✅ src/asicverifier/build/test-results/test/TEST-ee.ria.xroad.asicverifier.AsicContainerVerifierTest.xml
10 tests were completed in 19ms with 0 passed, 0 failed and 10 skipped.
✅ src/buildSrc/build/test-results/test/TEST-org.niis.xroad.oasvalidatorplugin.Oas3ValidatorTest.xml
4 tests were completed in 548ms with 4 passed, 0 failed and 0 skipped.
✅ src/central-server/admin-service/application/build/test-results/test/TEST-org.niis.xroad.cs.admin.application.ApplicationIpRateLimitTest$PerMinuteTests.xml
1 tests were completed in 2s with 1 passed, 0 failed and 0 skipped.
✅ src/central-server/admin-service/application/build/test-results/test/TEST-org.niis.xroad.cs.admin.application.ApplicationIpRateLimitTest$PerSecondTests.xml
1 tests were completed in 1s with 1 passed, 0 failed and 0 skipped.
✅ src/central-server/admin-service/core/build/test-results/test/TEST-org.niis.xroad.cs.admin.core.converter.CaInfoConverterTest.xml
1 tests were completed in 426ms with 1 passed, 0 failed and 0 skipped.
✅ src/central-server/admin-service/core/build/test-results/test/TEST-org.niis.xroad.cs.admin.core.converter.KeyUsageConverterTest.xml
1 tests were completed in 131ms with 1 passed, 0 failed and 0 skipped.
✅ src/central-server/admin-service/core/build/test-results/test/TEST-org.niis.xroad.cs.admin.core.converter.OcspResponderConverterTest.xml
3 tests were completed in 2s with 3 passed, 0 failed and 0 skipped.
✅ src/central-server/admin-service/core/build/test-results/test/TEST-org.niis.xroad.cs.admin.core.converter.TokenInfoMapperTest.xml
1 tests were completed in 1s with 1 passed, 0 failed and 0 skipped.
✅ src/central-server/admin-service/core/build/test-results/test/TEST-org.niis.xroad.cs.admin.core.entity.EntityExistsAwareEntityTest$ExistsMethod.xml
2 tests were completed in 4ms with 2 passed, 0 failed and 0 skipped.
✅ src/central-server/admin-service/core/build/test-results/test/TEST-org.niis.xroad.cs.admin.core.entity.EntityExistsAwareEntityTest$IfExistsConsumerMethod.xml
2 tests were completed in 47ms with 2 passed, 0 failed and 0 skipped.
✅ src/central-server/admin-service/core/build/test-results/test/TEST-org.niis.xroad.cs.admin.core.entity.EntityExistsAwareEntityTest$IfExistsFunctionMethod.xml
2 tests were completed in 16ms with 2 passed, 0 failed and 0 skipped.
✅ src/central-server/admin-service/core/build/test-results/test/TEST-org.niis.xroad.cs.admin.core.entity.EntityExistsAwareEntityTest$IfExistsThrowFunctionMethod.xml
2 tests were completed in 81ms with 2 passed, 0 failed and 0 skipped.
✅ src/central-server/admin-service/core/build/test-results/test/TEST-org.niis.xroad.cs.admin.core.entity.EntityExistsAwareEntityTest$IfExistsThrowSupplierMethod.xml
2 tests were completed in 13ms with 2 passed, 0 failed and 0 skipped.
✅ src/central-server/admin-service/core/build/test-results/test/TEST-org.niis.xroad.cs.admin.core.entity.EntityExistsAwareEntityTest$IfNotExistsSupplierMethod.xml
2 tests were completed in 66ms with 2 passed, 0 failed and 0 skipped.
✅ src/central-server/admin-service/core/build/test-results/test/TEST-org.niis.xroad.cs.admin.core.entity.EntityExistsAwareEntityTest$IfNotExistsThrowSupplierMethod.xml
2 tests were completed in 353ms with 2 passed, 0 failed and 0 skipped.
✅ src/central-server/admin-service/core/build/test-results/test/TEST-org.niis.xroad.cs.admin.core.entity.EntityExistsAwareEntityTest$NotExistsMethod.xml
2 tests were completed in 8ms with 2 passed, 0 failed and 0 skipped.
✅ src/central-server/admin-service/core/build/test-results/test/TEST-org.niis.xroad.cs.admin.core.entity.mapper.ApprovedCaMapperTest.xml
1 tests were completed in 19ms with 1 passed, 0 failed and 0 skipped.
✅ src/central-server/admin-service/core/build/test-results/test/TEST-org.niis.xroad.cs.admin.core.entity.mapper.ApprovedTsaMapperTest.xml
2 tests were completed in 44ms with 2 passed, 0 failed and 0 skipped.
✅ src/central-server/admin-service/core/build/test-results/test/TEST-org.niis.xroad.cs.admin.core.entity.mapper.ClientIdMapperTest.xml
2 tests were completed in 8ms with 2 passed, 0 failed and 0 skipped.
✅ src/central-server/admin-service/core/build/test-results/test/TEST-org.niis.xroad.cs.admin.core.entity.mapper.ConfigurationSigningKeyMapperTest.xml
2 tests were completed in 2ms with 2 passed, 0 failed and 0 skipped.
Report exceeded GitHub limit of 65535 bytes and has been trimmed
Annotations
github-actions / Unit and integration tests
org.niis.xroad.cs.admin.globalconf.generator.SharedParametersV3ConverterTest ► shouldConvertAllFields()
Failed test found in:
src/central-server/admin-service/globalconf-generator/build/test-results/test/TEST-org.niis.xroad.cs.admin.globalconf.generator.SharedParametersV3ConverterTest.xml
Error:
java.lang.AssertionError:
Raw output
java.lang.AssertionError:
Expecting actual:
ee.ria.xroad.common.conf.globalconf.sharedparameters.v3.SharedParametersTypeV3@3958e148
to be equal to:
SharedParameters(instanceIdentifier=INSTANCE, sources=[SharedParameters.ConfigurationSource(address=cs, internalVerificationCerts=[[B@6391d34f], externalVerificationCerts=[[B@23f9d0ce])], approvedCAs=[SharedParameters.ApprovedCA(name=approved ca name, authenticationOnly=true, topCA=SharedParameters.CaInfo(ocsp=[SharedParameters.OcspInfo(url=ocsp:url, cert=[111, 99, 115, 112, 45, 99, 101, 114, 116])], cert=[99, 97, 45, 99, 101, 114, 116]), intermediateCAs=[SharedParameters.CaInfo(ocsp=[SharedParameters.OcspInfo(url=ocsp:url, cert=[111, 99, 115, 112, 45, 99, 101, 114, 116])], cert=[99, 97, 45, 99, 101, 114, 116])], certificateProfileInfo=certificateProfileInfo, acmeServer=SharedParameters.AcmeServer(directoryURL=http://testca.com/acme, ipAddress=192.99.88.7))], approvedTSAs=[SharedParameters.ApprovedTSA(name=tsa-name, url=tsa-url, cert=[116, 115, 97, 32, 99, 101, 114, 116])], members=[SharedParameters.Member(memberClass=SharedParameters.MemberClass(code=CLASS1, description=member class description), memberCode=M1, name=Member1, subsystems=[SharedParameters.Subsystem(subsystemCode=SUB1, id=SUBSYSTEM:INSTANCE/INSTANCE/M1/SUB1)], id=MEMBER:INSTANCE/CLASS1/M1)], securityServers=[SharedParameters.SecurityServer(owner=MEMBER:INSTANCE/CLASS1/M1, serverCode=security-server-code, address=security-server-address, authCerts=[[B@53c0424a], clients=[SUBSYSTEM:INSTANCE/INSTANCE/M1/SUB1])], globalGroups=[SharedParameters.GlobalGroup(groupCode=group-code, description=group-description, groupMembers=[SUBSYSTEM:INSTANCE/INSTANCE/M1/SUB1])], globalSettings=SharedParameters.GlobalSettings(memberClasses=[SharedParameters.MemberClass(code=CLASS1, description=member class description)], ocspFreshnessSeconds=333))
when recursively comparing field by field, but found the following difference:
Top level actual and expected objects differ:
- actual value : ee.ria.xroad.common.conf.globalconf.sharedparameters.v3.SharedParametersTypeV3@3958e148
- expected value: SharedParameters(instanceIdentifier=INSTANCE, sources=[SharedParameters.ConfigurationSource(address=cs, internalVerificationCerts=[[B@6391d34f], externalVerificationCerts=[[B@23f9d0ce])], approvedCAs=[SharedParameters.ApprovedCA(name=approved ca name, authenticationOnly=true, topCA=SharedParameters.CaInfo(ocsp=[SharedParameters.OcspInfo(url=ocsp:url, cert=[111, 99, 115, 112, 45, 99, 101, 114, 116])], cert=[99, 97, 45, 99, 101, 114, 116]), intermediateCAs=[SharedParameters.CaInfo(ocsp=[SharedParameters.OcspInfo(url=ocsp:url, cert=[111, 99, 115, 112, 45, 99, 101, 114, 116])], cert=[99, 97, 45, 99, 101, 114, 116])], certificateProfileInfo=certificateProfileInfo, acmeServer=SharedParameters.AcmeServer(directoryURL=http://testca.com/acme, ipAddress=192.99.88.7))], approvedTSAs=[SharedParameters.ApprovedTSA(name=tsa-name, url=tsa-url, cert=[116, 115, 97, 32, 99, 101, 114, 116])], members=[SharedParameters.Member(memberClass=SharedParameters.MemberClass(code=CLASS1, description=member class description), memberCode=M1, name=Member1, subsystems=[SharedParameters.Subsystem(subsystemCode=SUB1, id=SUBSYSTEM:INSTANCE/INSTANCE/M1/SUB1)], id=MEMBER:INSTANCE/CLASS1/M1)], securityServers=[SharedParameters.SecurityServer(owner=MEMBER:INSTANCE/CLASS1/M1, serverCode=security-server-code, address=security-server-address, authCerts=[[B@53c0424a], clients=[SUBSYSTEM:INSTANCE/INSTANCE/M1/SUB1])], globalGroups=[SharedParameters.GlobalGroup(groupCode=group-code, description=group-description, groupMembers=[SUBSYSTEM:INSTANCE/INSTANCE/M1/SUB1])], globalSettings=SharedParameters.GlobalSettings(memberClasses=[SharedParameters.MemberClass(code=CLASS1, description=member class description)], ocspFreshnessSeconds=333))
ee.ria.xroad.common.conf.globalconf.sharedparameters.v3.SharedParametersTypeV3 can't be compared to org.niis.xroad.cs.admin.globalconf.generator.SharedParameters as SharedParameters does not declare all SharedParametersTypeV3 fields, it lacks these: [any]
The recursive comparison was performed with this configuration:
- the following fields were ignored in the comparison: securityServers.owner, securityServers.clients, securityServers.authCerts, members.id, members.subsystems.id, centralService, sources.internalVerificationCerts, sources.externalVerificationCerts
- no overridden equals methods were used in the comparison (except for java types)
- these types were compared with the following comparators:
- java.lang.Double -> DoubleComparator[precision=1.0E-15]
- java.lang.Float -> FloatComparator[precision=1.0E-6]
- java.nio.file.Path -> lexicographic comparator (Path natural order)
- these fields were compared with the following comparators:
- globalSettings.ocspFreshnessSeconds -> org.assertj.core.api.recursive.comparison.RecursiveComparisonConfiguration$$Lambda$664/0x00007f7d14511be8@73f6ffb1
- field comparators take precedence over type comparators.
- actual and expected objects and their fields were compared field by field recursively even if they were not of the same type, this allows for example to compare a Person to a PersonDto (call strictTypeChecking(true) to change that behavior).
- the introspection strategy used was: comparing normalized fields
at org.niis.xroad.cs.admin.globalconf.generator.SharedParametersV3ConverterTest.shouldConvertAllFields(SharedParametersV3ConverterTest.java:100)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:727)
at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:156)
at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:147)
at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:86)
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:103)
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:93)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:92)
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:86)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$7(TestMethodTestDescriptor.java:217)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:213)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:138)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:68)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:107)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86)
at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86)
at org.junit.platform.launcher.core.SessionPerRequestLauncher.execute(SessionPerRequestLauncher.java:53)
at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:99)
at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:79)
at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:75)
at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:62)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
at jdk.proxy2/jdk.proxy2.$Proxy5.stop(Unknown Source)
at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:193)
at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129)
at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100)
at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60)
at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56)
at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:113)
at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:65)
at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69)
at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74)