From f0f456ded68e774f0641014bfb0da02203d76612 Mon Sep 17 00:00:00 2001 From: Daniel Berecz Date: Mon, 9 Sep 2024 11:09:18 +0200 Subject: [PATCH 1/7] Added isRHBQ method to check if the version contains string redhat (cherry picked from commit a3ee18021a11e7e7c1907fcc191946d7387038ea) --- .../src/main/java/io/quarkus/test/util/QuarkusCLIUtils.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quarkus-test-cli/src/main/java/io/quarkus/test/util/QuarkusCLIUtils.java b/quarkus-test-cli/src/main/java/io/quarkus/test/util/QuarkusCLIUtils.java index 430bcf605..78a77c87b 100644 --- a/quarkus-test-cli/src/main/java/io/quarkus/test/util/QuarkusCLIUtils.java +++ b/quarkus-test-cli/src/main/java/io/quarkus/test/util/QuarkusCLIUtils.java @@ -290,7 +290,7 @@ public static void changePropertiesInPom(QuarkusCliRestService app, Properties p */ public static void setCommunityBomIfNotRunningRHBQ(QuarkusCliRestService app, String communityQuarkusVersion) throws XmlPullParserException, IOException { - if (!QuarkusProperties.getVersion().contains("redhat")) { + if (!QuarkusProperties.isRHBQ()) { Properties communityBomProperties = new Properties(); communityBomProperties.put("quarkus.platform.group-id", "io.quarkus.platform"); communityBomProperties.put("quarkus.platform.version", communityQuarkusVersion); From 737327e9894a67fa1a8e4d4bb1481f042328f1ed Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 16 Sep 2024 22:38:15 +0000 Subject: [PATCH 2/7] Bump org.apache.maven.plugins:maven-gpg-plugin from 3.2.5 to 3.2.6 Bumps [org.apache.maven.plugins:maven-gpg-plugin](https://github.com/apache/maven-gpg-plugin) from 3.2.5 to 3.2.6. - [Release notes](https://github.com/apache/maven-gpg-plugin/releases) - [Commits](https://github.com/apache/maven-gpg-plugin/compare/maven-gpg-plugin-3.2.5...maven-gpg-plugin-3.2.6) --- updated-dependencies: - dependency-name: org.apache.maven.plugins:maven-gpg-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] (cherry picked from commit b521fd8b0e3f871e9bacbfcd06d703a271cfd081) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index f3432b940..e6c60c7a5 100644 --- a/pom.xml +++ b/pom.xml @@ -581,7 +581,7 @@ org.apache.maven.plugins maven-gpg-plugin - 3.2.5 + 3.2.6 --pinentry-mode From 38d02b5b32e376382e3fcfd223e7b7365b4b195c Mon Sep 17 00:00:00 2001 From: Jakub Jedlicka Date: Wed, 18 Sep 2024 18:26:55 +0200 Subject: [PATCH 3/7] Remove `tls-registry` extension from default aplication request for TLS command (cherry picked from commit 0419d1a7022733976015c0cc9b0676ff1e3200ad) --- .../java/io/quarkus/test/bootstrap/tls/QuarkusTlsCommand.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/quarkus-test-cli/src/main/java/io/quarkus/test/bootstrap/tls/QuarkusTlsCommand.java b/quarkus-test-cli/src/main/java/io/quarkus/test/bootstrap/tls/QuarkusTlsCommand.java index c5acde3be..77cd09d2c 100644 --- a/quarkus-test-cli/src/main/java/io/quarkus/test/bootstrap/tls/QuarkusTlsCommand.java +++ b/quarkus-test-cli/src/main/java/io/quarkus/test/bootstrap/tls/QuarkusTlsCommand.java @@ -49,8 +49,7 @@ QuarkusCliCommandResult runTlsCommand(List subCmdArgs) { private static QuarkusCliClient.CreateApplicationRequest getCreateAppReq() { return QuarkusCliClient.CreateApplicationRequest.defaults() - // TODO: we can drop 'tls-registry' when https://github.com/quarkusio/quarkus/issues/42751 is fixed - .withExtensions("tls-registry", "quarkus-rest"); + .withExtensions("quarkus-rest"); } private static Closeable dontDisableAnalyticsWithProp() { From c0504db10254474ad5f8a07767d3ab6f34b78ff5 Mon Sep 17 00:00:00 2001 From: Jakub Jedlicka Date: Wed, 18 Sep 2024 19:55:15 +0200 Subject: [PATCH 4/7] Change description/TODO note of management TLS tests (cherry picked from commit 626955a767ee705ad066b273c99caf5cc2acc42b) --- .../management/src/test/java/io/quarkus/qe/LocalTLSIT.java | 2 +- .../src/test/java/io/quarkus/qe/OpenShiftTLSIT.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/management/src/test/java/io/quarkus/qe/LocalTLSIT.java b/examples/management/src/test/java/io/quarkus/qe/LocalTLSIT.java index 10d14023a..3f2cbf9e7 100644 --- a/examples/management/src/test/java/io/quarkus/qe/LocalTLSIT.java +++ b/examples/management/src/test/java/io/quarkus/qe/LocalTLSIT.java @@ -11,7 +11,7 @@ import io.restassured.response.Response; @QuarkusScenario -// todo Merge with LocalIT when https://github.com/quarkusio/quarkus/issues/32225 is fixed +// todo Merge with LocalIT when framework support SSL/TLS on openshift https://github.com/quarkus-qe/quarkus-test-framework/issues/1052 public class LocalTLSIT { @QuarkusApplication(certificates = @Certificate(configureManagementInterface = true, configureKeystore = true, useTlsRegistry = false)) diff --git a/examples/management/src/test/java/io/quarkus/qe/OpenShiftTLSIT.java b/examples/management/src/test/java/io/quarkus/qe/OpenShiftTLSIT.java index 3c8a06cff..b037e176d 100644 --- a/examples/management/src/test/java/io/quarkus/qe/OpenShiftTLSIT.java +++ b/examples/management/src/test/java/io/quarkus/qe/OpenShiftTLSIT.java @@ -5,7 +5,7 @@ import io.quarkus.test.scenarios.OpenShiftScenario; @OpenShiftScenario -@Disabled -// todo delete when https://github.com/quarkusio/quarkus/issues/32225 is fixed +@Disabled("https://github.com/quarkus-qe/quarkus-test-framework/issues/1052") +// todo delete when framework support SSL/TLS on openshift public class OpenShiftTLSIT extends LocalTLSIT { } From 468d8c37e29f431a59dba16ac3fa1e8e73b1daea Mon Sep 17 00:00:00 2001 From: jcarranzan Date: Tue, 24 Sep 2024 10:57:22 +0200 Subject: [PATCH 5/7] Remove inheritance in QuickstarsUsingDefaultsIT to isolate test logic and prevent shared resources conflicts on ocp (cherry picked from commit eb127f0492c8bb424ca59c3fea1e1aa77ddd767a) --- .../BareMetalQuickstartUsingDefaultsIT.java | 21 +++++++++++++++++++ ...inerRegistryQuickstartUsingDefaultsIT.java | 8 +++++++ ...OpenShiftS2iQuickstartUsingDefaultsIT.java | 9 ++++++++ .../quarkus/qe/QuickstartUsingDefaultsIT.java | 13 +++--------- 4 files changed, 41 insertions(+), 10 deletions(-) create mode 100644 examples/external-applications/src/test/java/io/quarkus/qe/BareMetalQuickstartUsingDefaultsIT.java diff --git a/examples/external-applications/src/test/java/io/quarkus/qe/BareMetalQuickstartUsingDefaultsIT.java b/examples/external-applications/src/test/java/io/quarkus/qe/BareMetalQuickstartUsingDefaultsIT.java new file mode 100644 index 000000000..b49981c89 --- /dev/null +++ b/examples/external-applications/src/test/java/io/quarkus/qe/BareMetalQuickstartUsingDefaultsIT.java @@ -0,0 +1,21 @@ +package io.quarkus.qe; + +import org.junit.jupiter.api.condition.DisabledOnOs; +import org.junit.jupiter.api.condition.OS; + +import io.quarkus.test.bootstrap.RestService; +import io.quarkus.test.scenarios.QuarkusScenario; +import io.quarkus.test.services.GitRepositoryQuarkusApplication; + +@DisabledOnOs(value = OS.WINDOWS, disabledReason = "Windows does not support long file paths") +@QuarkusScenario +public class BareMetalQuickstartUsingDefaultsIT extends QuickstartUsingDefaultsIT { + + @GitRepositoryQuarkusApplication(repo = "https://github.com/quarkusio/quarkus-quickstarts.git", contextDir = "getting-started") + static final RestService app = new RestService(); + + @Override + protected RestService getApp() { + return app; + } +} diff --git a/examples/external-applications/src/test/java/io/quarkus/qe/OpenShiftContainerRegistryQuickstartUsingDefaultsIT.java b/examples/external-applications/src/test/java/io/quarkus/qe/OpenShiftContainerRegistryQuickstartUsingDefaultsIT.java index caef827fe..998ae7b7f 100644 --- a/examples/external-applications/src/test/java/io/quarkus/qe/OpenShiftContainerRegistryQuickstartUsingDefaultsIT.java +++ b/examples/external-applications/src/test/java/io/quarkus/qe/OpenShiftContainerRegistryQuickstartUsingDefaultsIT.java @@ -1,9 +1,17 @@ package io.quarkus.qe; +import io.quarkus.test.bootstrap.RestService; import io.quarkus.test.scenarios.OpenShiftDeploymentStrategy; import io.quarkus.test.scenarios.OpenShiftScenario; +import io.quarkus.test.services.GitRepositoryQuarkusApplication; @OpenShiftScenario(deployment = OpenShiftDeploymentStrategy.UsingContainerRegistry) public class OpenShiftContainerRegistryQuickstartUsingDefaultsIT extends QuickstartUsingDefaultsIT { + @GitRepositoryQuarkusApplication(repo = "https://github.com/quarkusio/quarkus-quickstarts.git", contextDir = "getting-started") + static final RestService app = new RestService(); + @Override + protected RestService getApp() { + return app; + } } diff --git a/examples/external-applications/src/test/java/io/quarkus/qe/OpenShiftS2iQuickstartUsingDefaultsIT.java b/examples/external-applications/src/test/java/io/quarkus/qe/OpenShiftS2iQuickstartUsingDefaultsIT.java index 37bc057f2..2868493d1 100644 --- a/examples/external-applications/src/test/java/io/quarkus/qe/OpenShiftS2iQuickstartUsingDefaultsIT.java +++ b/examples/external-applications/src/test/java/io/quarkus/qe/OpenShiftS2iQuickstartUsingDefaultsIT.java @@ -1,8 +1,17 @@ package io.quarkus.qe; +import io.quarkus.test.bootstrap.RestService; import io.quarkus.test.scenarios.OpenShiftScenario; +import io.quarkus.test.services.GitRepositoryQuarkusApplication; @OpenShiftScenario public class OpenShiftS2iQuickstartUsingDefaultsIT extends QuickstartUsingDefaultsIT { + @GitRepositoryQuarkusApplication(repo = "https://github.com/quarkusio/quarkus-quickstarts.git", contextDir = "getting-started") + static final RestService app = new RestService(); + + @Override + protected RestService getApp() { + return app; + } } diff --git a/examples/external-applications/src/test/java/io/quarkus/qe/QuickstartUsingDefaultsIT.java b/examples/external-applications/src/test/java/io/quarkus/qe/QuickstartUsingDefaultsIT.java index 0e971b358..473133d29 100644 --- a/examples/external-applications/src/test/java/io/quarkus/qe/QuickstartUsingDefaultsIT.java +++ b/examples/external-applications/src/test/java/io/quarkus/qe/QuickstartUsingDefaultsIT.java @@ -2,23 +2,16 @@ import org.apache.http.HttpStatus; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.condition.DisabledOnOs; -import org.junit.jupiter.api.condition.OS; import io.quarkus.test.bootstrap.RestService; -import io.quarkus.test.scenarios.QuarkusScenario; -import io.quarkus.test.services.GitRepositoryQuarkusApplication; -@QuarkusScenario -@DisabledOnOs(value = OS.WINDOWS, disabledReason = "Windows does not support long file paths") -public class QuickstartUsingDefaultsIT { +public abstract class QuickstartUsingDefaultsIT { - @GitRepositoryQuarkusApplication(repo = "https://github.com/quarkusio/quarkus-quickstarts.git", contextDir = "getting-started") - static final RestService app = new RestService(); + protected abstract RestService getApp(); @Test public void test() { - app.given() + getApp().given() .get("/hello") .then() .statusCode(HttpStatus.SC_OK); From dfef0ee42676a22989ec918ceca67eec4c031a8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Barto=C5=A1?= Date: Tue, 1 Oct 2024 16:47:31 +0200 Subject: [PATCH 6/7] Set memory limit for Keycloak container MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes #1350 Signed-off-by: Martin Bartoš (cherry picked from commit 2b907f188b413d0063c54741ca185bc1b2486523) --- .../test/services/KeycloakContainer.java | 2 + ...ycloakContainerManagedResourceBuilder.java | 6 +++ ...GenericDockerContainerManagedResource.java | 9 +++++ .../services/containers/MemoryLimitTest.java | 40 +++++++++++++++++++ 4 files changed, 57 insertions(+) create mode 100644 quarkus-test-service-keycloak/src/test/java/io/quarkus/test/services/containers/MemoryLimitTest.java diff --git a/quarkus-test-service-keycloak/src/main/java/io/quarkus/test/services/KeycloakContainer.java b/quarkus-test-service-keycloak/src/main/java/io/quarkus/test/services/KeycloakContainer.java index 806425f28..52351e118 100644 --- a/quarkus-test-service-keycloak/src/main/java/io/quarkus/test/services/KeycloakContainer.java +++ b/quarkus-test-service-keycloak/src/main/java/io/quarkus/test/services/KeycloakContainer.java @@ -22,5 +22,7 @@ String[] command() default {}; + long memoryLimitMiB() default 1000; + Class builder() default KeycloakContainerManagedResourceBuilder.class; } diff --git a/quarkus-test-service-keycloak/src/main/java/io/quarkus/test/services/containers/KeycloakContainerManagedResourceBuilder.java b/quarkus-test-service-keycloak/src/main/java/io/quarkus/test/services/containers/KeycloakContainerManagedResourceBuilder.java index 231cd9940..590d4ca00 100644 --- a/quarkus-test-service-keycloak/src/main/java/io/quarkus/test/services/containers/KeycloakContainerManagedResourceBuilder.java +++ b/quarkus-test-service-keycloak/src/main/java/io/quarkus/test/services/containers/KeycloakContainerManagedResourceBuilder.java @@ -18,6 +18,7 @@ public class KeycloakContainerManagedResourceBuilder extends ContainerManagedRes private int restPort; private String[] command; private String expectedLog; + private long memoryLimitMiB; @Override protected String getImage() { @@ -44,6 +45,10 @@ protected String getExpectedLog() { return expectedLog; } + protected Long getMemoryLimitMiB() { + return memoryLimitMiB; + } + @Override public void init(Annotation annotation) { KeycloakContainer metadata = (KeycloakContainer) annotation; @@ -51,6 +56,7 @@ public void init(Annotation annotation) { this.restPort = metadata.port(); this.expectedLog = PropertiesUtils.resolveProperty(metadata.expectedLog()); this.command = metadata.command(); + this.memoryLimitMiB = metadata.memoryLimitMiB(); } @Override diff --git a/quarkus-test-service-keycloak/src/main/java/io/quarkus/test/services/containers/KeycloakGenericDockerContainerManagedResource.java b/quarkus-test-service-keycloak/src/main/java/io/quarkus/test/services/containers/KeycloakGenericDockerContainerManagedResource.java index d61be93c4..48fa00eac 100644 --- a/quarkus-test-service-keycloak/src/main/java/io/quarkus/test/services/containers/KeycloakGenericDockerContainerManagedResource.java +++ b/quarkus-test-service-keycloak/src/main/java/io/quarkus/test/services/containers/KeycloakGenericDockerContainerManagedResource.java @@ -1,5 +1,7 @@ package io.quarkus.test.services.containers; +import java.util.Optional; + import org.apache.commons.lang3.StringUtils; import org.testcontainers.containers.GenericContainer; import org.testcontainers.containers.wait.strategy.LogMessageWaitStrategy; @@ -38,6 +40,8 @@ protected GenericContainer initContainer() { } container.withCreateContainerCmdModifier(cmd -> cmd.withName(DockerUtils.generateDockerContainerName())); + container.withCreateContainerCmdModifier(cmd -> Optional.ofNullable(cmd.getHostConfig()) + .ifPresent(config -> config.withMemory(convertMiBtoBytes(model.getMemoryLimitMiB())))); if (isReusable()) { Log.info(model.getContext().getOwner(), "Running container on Reusable mode"); @@ -66,4 +70,9 @@ protected boolean isReusable() { private boolean isPrivileged() { return model.getContext().getOwner().getConfiguration().isTrue(PRIVILEGED_MODE); } + + static long convertMiBtoBytes(long valueInMiB) { + final var exponentMiB = 20; + return (long) (valueInMiB * Math.pow(2, exponentMiB)); + } } diff --git a/quarkus-test-service-keycloak/src/test/java/io/quarkus/test/services/containers/MemoryLimitTest.java b/quarkus-test-service-keycloak/src/test/java/io/quarkus/test/services/containers/MemoryLimitTest.java new file mode 100644 index 000000000..d030d3413 --- /dev/null +++ b/quarkus-test-service-keycloak/src/test/java/io/quarkus/test/services/containers/MemoryLimitTest.java @@ -0,0 +1,40 @@ +package io.quarkus.test.services.containers; + +import static io.quarkus.test.services.containers.KeycloakGenericDockerContainerManagedResource.convertMiBtoBytes; +import static org.hamcrest.MatcherAssert.assertThat; + +import org.hamcrest.CoreMatchers; +import org.junit.jupiter.api.Test; + +public class MemoryLimitTest { + + @Test + void convertMiBToBytes() { + assertThat(convertMiBtoBytes(0), CoreMatchers.is(0L)); + assertThat(convertMiBtoBytes(-0), CoreMatchers.is(0L)); + + assertThat(convertMiBtoBytes(1000L), CoreMatchers.is(1048576000L)); + assertThat(convertMiBtoBytes(1000), CoreMatchers.is(1048576000L)); + assertThat(convertMiBtoBytes(100), CoreMatchers.is(104857600L)); + assertThat(convertMiBtoBytes(10), CoreMatchers.is(10485760L)); + assertThat(convertMiBtoBytes(1), CoreMatchers.is(1048576L)); + + assertThat(convertMiBtoBytes(-1000L), CoreMatchers.is(-1048576000L)); + assertThat(convertMiBtoBytes(-1000), CoreMatchers.is(-1048576000L)); + assertThat(convertMiBtoBytes(-100), CoreMatchers.is(-104857600L)); + assertThat(convertMiBtoBytes(-10), CoreMatchers.is(-10485760L)); + assertThat(convertMiBtoBytes(-1), CoreMatchers.is(-1048576L)); + + assertThat(convertMiBtoBytes(2000), CoreMatchers.is(2097152000L)); + assertThat(convertMiBtoBytes(20000), CoreMatchers.is(20971520000L)); + assertThat(convertMiBtoBytes(200000), CoreMatchers.is(209715200000L)); + + assertThat(convertMiBtoBytes(999999999999999999L), CoreMatchers.is(Long.MAX_VALUE)); + + assertThat(convertMiBtoBytes(Integer.MAX_VALUE), CoreMatchers.is((long) Integer.MAX_VALUE << 20)); + assertThat(convertMiBtoBytes(Integer.MIN_VALUE), CoreMatchers.is((long) Integer.MIN_VALUE << 20)); + + assertThat(convertMiBtoBytes(Long.MAX_VALUE), CoreMatchers.is(Long.MAX_VALUE)); + assertThat(convertMiBtoBytes(Long.MIN_VALUE), CoreMatchers.is(Long.MIN_VALUE)); + } +} From 4345d46ca4afda26d31f375dff703bab325c2575 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 27 Sep 2024 22:03:54 +0000 Subject: [PATCH 7/7] Bump org.apache.maven.plugins:maven-gpg-plugin from 3.2.6 to 3.2.7 Bumps [org.apache.maven.plugins:maven-gpg-plugin](https://github.com/apache/maven-gpg-plugin) from 3.2.6 to 3.2.7. - [Release notes](https://github.com/apache/maven-gpg-plugin/releases) - [Commits](https://github.com/apache/maven-gpg-plugin/compare/maven-gpg-plugin-3.2.6...maven-gpg-plugin-3.2.7) --- updated-dependencies: - dependency-name: org.apache.maven.plugins:maven-gpg-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] (cherry picked from commit 232d40a04a43e0da3afd1e7ba0b9303dd52c76c0) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index e6c60c7a5..c0bbbf614 100644 --- a/pom.xml +++ b/pom.xml @@ -581,7 +581,7 @@ org.apache.maven.plugins maven-gpg-plugin - 3.2.6 + 3.2.7 --pinentry-mode