From 53944989872a425ef9763dab7eb773f3c3e07bf7 Mon Sep 17 00:00:00 2001 From: Alexandr Gorshenin Date: Tue, 17 Jun 2025 10:29:48 +0100 Subject: [PATCH 1/2] Permament enabling of dynamyc agents for tests on JDK9+ --- pom.xml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pom.xml b/pom.xml index cb4efd61..52bb8893 100644 --- a/pom.xml +++ b/pom.xml @@ -248,6 +248,14 @@ 8 + + org.apache.maven.plugins + maven-surefire-plugin + + + ${argLine} -XX:+EnableDynamicAgentLoading + + From e357e3cc94d7434660a0cac37712568cff60ba17 Mon Sep 17 00:00:00 2001 From: Alexandr Gorshenin Date: Tue, 17 Jun 2025 10:58:35 +0100 Subject: [PATCH 2/2] Update JUnit5 helper to avoid NPE --- .../test/junit5/GrpcTransportExtension.java | 23 ++++++++----------- .../ydb/test/junit5/YdbHelperExtension.java | 23 ++++++++----------- 2 files changed, 18 insertions(+), 28 deletions(-) diff --git a/tests/junit5-support/src/main/java/tech/ydb/test/junit5/GrpcTransportExtension.java b/tests/junit5-support/src/main/java/tech/ydb/test/junit5/GrpcTransportExtension.java index db7af25e..9a0eb06a 100644 --- a/tests/junit5-support/src/main/java/tech/ydb/test/junit5/GrpcTransportExtension.java +++ b/tests/junit5-support/src/main/java/tech/ydb/test/junit5/GrpcTransportExtension.java @@ -3,12 +3,11 @@ import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; +import org.junit.jupiter.api.Assumptions; import org.junit.jupiter.api.extension.AfterAllCallback; import org.junit.jupiter.api.extension.AfterEachCallback; import org.junit.jupiter.api.extension.BeforeAllCallback; import org.junit.jupiter.api.extension.BeforeEachCallback; -import org.junit.jupiter.api.extension.ConditionEvaluationResult; -import org.junit.jupiter.api.extension.ExecutionCondition; import org.junit.jupiter.api.extension.ExtensionContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -22,8 +21,8 @@ * * @author Aleksandr Gorshenin */ -public class GrpcTransportExtension extends ProxyGrpcTransport implements ExecutionCondition, - AfterAllCallback, AfterEachCallback, BeforeAllCallback, BeforeEachCallback { +public class GrpcTransportExtension extends ProxyGrpcTransport implements AfterAllCallback, AfterEachCallback, + BeforeAllCallback, BeforeEachCallback { private static final Logger logger = LoggerFactory.getLogger(GrpcTransportExtension.class); private final Holder holder = new Holder(); @@ -33,35 +32,31 @@ protected GrpcTransport origin() { return holder.transport(); } - @Override - public ConditionEvaluationResult evaluateExecutionCondition(ExtensionContext context) { - if (!context.getTestInstance().isPresent()) { - return ConditionEvaluationResult.enabled("OK"); - } - - if (!YdbHelperFactory.getInstance().isEnabled()) { - return ConditionEvaluationResult.disabled("Ydb helper is disabled"); - } - return ConditionEvaluationResult.enabled("OK"); + private void ensureEnabled(String displayName) { + Assumptions.assumeTrue(YdbHelperFactory.getInstance().isEnabled(), "Ydb helper is disabled " + displayName); } @Override public void beforeAll(ExtensionContext ec) throws Exception { + ensureEnabled(ec.getDisplayName()); holder.before(ec); } @Override public void afterAll(ExtensionContext ec) throws Exception { + ensureEnabled(ec.getDisplayName()); holder.after(ec); } @Override public void beforeEach(ExtensionContext ec) throws Exception { + ensureEnabled(ec.getDisplayName()); holder.before(ec); } @Override public void afterEach(ExtensionContext ec) throws Exception { + ensureEnabled(ec.getDisplayName()); holder.after(ec); } diff --git a/tests/junit5-support/src/main/java/tech/ydb/test/junit5/YdbHelperExtension.java b/tests/junit5-support/src/main/java/tech/ydb/test/junit5/YdbHelperExtension.java index f69dd55e..5ee7c7e6 100644 --- a/tests/junit5-support/src/main/java/tech/ydb/test/junit5/YdbHelperExtension.java +++ b/tests/junit5-support/src/main/java/tech/ydb/test/junit5/YdbHelperExtension.java @@ -3,12 +3,11 @@ import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; +import org.junit.jupiter.api.Assumptions; import org.junit.jupiter.api.extension.AfterAllCallback; import org.junit.jupiter.api.extension.AfterEachCallback; import org.junit.jupiter.api.extension.BeforeAllCallback; import org.junit.jupiter.api.extension.BeforeEachCallback; -import org.junit.jupiter.api.extension.ConditionEvaluationResult; -import org.junit.jupiter.api.extension.ExecutionCondition; import org.junit.jupiter.api.extension.ExtensionContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -20,8 +19,8 @@ /** * @author Aleksandr Gorshenin */ -public class YdbHelperExtension extends ProxyYdbHelper implements ExecutionCondition, - BeforeAllCallback, AfterAllCallback, BeforeEachCallback, AfterEachCallback { +public class YdbHelperExtension extends ProxyYdbHelper implements BeforeAllCallback, AfterAllCallback, + BeforeEachCallback, AfterEachCallback { private static final Logger logger = LoggerFactory.getLogger(GrpcTransportExtension.class); private final Holder holder = new Holder(); @@ -31,35 +30,31 @@ protected YdbHelper origin() { return holder.helper(); } - @Override - public ConditionEvaluationResult evaluateExecutionCondition(ExtensionContext context) { - if (!context.getTestInstance().isPresent()) { - return ConditionEvaluationResult.enabled("OK"); - } - - if (!YdbHelperFactory.getInstance().isEnabled()) { - return ConditionEvaluationResult.disabled("Ydb helper is disabled " + context.getDisplayName()); - } - return ConditionEvaluationResult.enabled("OK"); + private void ensureEnabled(String displayName) { + Assumptions.assumeTrue(YdbHelperFactory.getInstance().isEnabled(), "Ydb helper is disabled " + displayName); } @Override public void beforeAll(ExtensionContext ec) throws Exception { + ensureEnabled(ec.getDisplayName()); holder.before(ec); } @Override public void afterAll(ExtensionContext ec) throws Exception { + ensureEnabled(ec.getDisplayName()); holder.after(ec); } @Override public void beforeEach(ExtensionContext ec) throws Exception { + ensureEnabled(ec.getDisplayName()); holder.before(ec); } @Override public void afterEach(ExtensionContext ec) throws Exception { + ensureEnabled(ec.getDisplayName()); holder.after(ec); }