From 0c64c821dd6fc03e0ee93d52e8256792b76299a6 Mon Sep 17 00:00:00 2001 From: ThomasKrieger Date: Tue, 23 Sep 2025 10:45:39 +0200 Subject: [PATCH 1/2] fix: for #1611 Only execute concurrent tests with VMLens VMLens test run now takes 4s and there is no risk of hanging tests. The hanging tests was during executing ArchUnitTests with VMLens. Renamed VmLensTest to VmLensCT and added a filter in the VMlens plugin. increased timeout for gherkin tests to 30s from 10s Signed-off-by: ThomasKrieger --- pom.xml | 9 ++++++--- .../dev/openfeature/sdk/e2e/steps/ProviderSteps.java | 3 ++- .../sdk/vmlens/{VmLensTest.java => VmLensCT.java} | 2 +- 3 files changed, 9 insertions(+), 5 deletions(-) rename src/test/java/dev/openfeature/sdk/vmlens/{VmLensTest.java => VmLensCT.java} (99%) diff --git a/pom.xml b/pom.xml index faeb6c367..26e67447c 100644 --- a/pom.xml +++ b/pom.xml @@ -196,7 +196,7 @@ com.vmlens api - 1.2.13 + 1.2.14 test @@ -348,7 +348,7 @@ - + maven-dependency-plugin 3.8.1 diff --git a/src/test/java/dev/openfeature/sdk/e2e/steps/ProviderSteps.java b/src/test/java/dev/openfeature/sdk/e2e/steps/ProviderSteps.java index d9dde3c2b..fb04dd8b8 100644 --- a/src/test/java/dev/openfeature/sdk/e2e/steps/ProviderSteps.java +++ b/src/test/java/dev/openfeature/sdk/e2e/steps/ProviderSteps.java @@ -25,6 +25,7 @@ import dev.openfeature.sdk.providers.memory.InMemoryProvider; import io.cucumber.java.en.Given; import io.cucumber.java.en.Then; +import java.time.Duration; import java.util.Map; import org.awaitility.Awaitility; @@ -122,7 +123,7 @@ private void setupMockProvider(ErrorCode errorCode, String errorMessage, Provide break; default: } - Awaitility.await().until(() -> { + Awaitility.await().atMost(Duration.ofSeconds(30)).until(() -> { ProviderState providerState1 = client.getProviderState(); return providerState1 == providerState; }); diff --git a/src/test/java/dev/openfeature/sdk/vmlens/VmLensTest.java b/src/test/java/dev/openfeature/sdk/vmlens/VmLensCT.java similarity index 99% rename from src/test/java/dev/openfeature/sdk/vmlens/VmLensTest.java rename to src/test/java/dev/openfeature/sdk/vmlens/VmLensCT.java index 136c35965..c09e254e6 100644 --- a/src/test/java/dev/openfeature/sdk/vmlens/VmLensTest.java +++ b/src/test/java/dev/openfeature/sdk/vmlens/VmLensCT.java @@ -18,7 +18,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -class VmLensTest { +class VmLensCT { final OpenFeatureAPI api = OpenFeatureAPITestUtil.createAPI(); @BeforeEach From b81805764669f8c44d506e09a630e032b48fa095 Mon Sep 17 00:00:00 2001 From: ThomasKrieger Date: Wed, 24 Sep 2025 20:07:11 +0200 Subject: [PATCH 2/2] added await in ProviderSteps and removed Awaitility.await() since it is not needed anymore since we wait during the setting of the states Signed-off-by: ThomasKrieger --- .../openfeature/sdk/e2e/steps/ProviderSteps.java | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/src/test/java/dev/openfeature/sdk/e2e/steps/ProviderSteps.java b/src/test/java/dev/openfeature/sdk/e2e/steps/ProviderSteps.java index fb04dd8b8..f22a0811a 100644 --- a/src/test/java/dev/openfeature/sdk/e2e/steps/ProviderSteps.java +++ b/src/test/java/dev/openfeature/sdk/e2e/steps/ProviderSteps.java @@ -25,9 +25,7 @@ import dev.openfeature.sdk.providers.memory.InMemoryProvider; import io.cucumber.java.en.Given; import io.cucumber.java.en.Then; -import java.time.Duration; import java.util.Map; -import org.awaitility.Awaitility; public class ProviderSteps { private final State state; @@ -114,19 +112,15 @@ private void setupMockProvider(ErrorCode errorCode, String errorMessage, Provide switch (providerState) { case FATAL: case ERROR: - mockProvider.emitProviderReady(details); - mockProvider.emitProviderError(details); + mockProvider.emitProviderReady(details).await(); + mockProvider.emitProviderError(details).await(); break; case STALE: - mockProvider.emitProviderReady(details); - mockProvider.emitProviderStale(details); + mockProvider.emitProviderReady(details).await(); + mockProvider.emitProviderStale(details).await(); break; default: } - Awaitility.await().atMost(Duration.ofSeconds(30)).until(() -> { - ProviderState providerState1 = client.getProviderState(); - return providerState1 == providerState; - }); } private void configureMockEvaluations(FeatureProvider mockProvider, ErrorCode errorCode, String errorMessage) {