@@ -3,14 +3,19 @@ package datadog.smoketest
33import datadog.communication.util.IOUtils
44import datadog.trace.civisibility.utils.ShellCommandExecutor
55import org.opentest4j.AssertionFailedError
6+ import org.slf4j.Logger
7+ import org.slf4j.LoggerFactory
68
79/**
810 * This test runs Gradle Launcher with the Java Tracer injected
911 * and verifies that the tracer is injected into the Gradle Daemon.
1012 */
1113class GradleLauncherSmokeTest extends AbstractGradleTest {
1214
15+ private static final Logger LOGGER = LoggerFactory . getLogger(GradleLauncherSmokeTest )
16+
1317 private static final int GRADLE_BUILD_TIMEOUT_MILLIS = 90_000
18+ private static final int GRADLE_WRAPPER_RETRIES = 3
1419
1520 private static final String JAVA_HOME = buildJavaHome()
1621
@@ -47,7 +52,16 @@ class GradleLauncherSmokeTest extends AbstractGradleTest {
4752
4853 private void givenGradleWrapper (String gradleVersion ) {
4954 def shellCommandExecutor = new ShellCommandExecutor (projectFolder. toFile(), GRADLE_BUILD_TIMEOUT_MILLIS , [" JAVA_HOME" : JAVA_HOME ])
50- shellCommandExecutor. executeCommand(IOUtils ::readFully, " ./gradlew" , " wrapper" , " --gradle-version" , gradleVersion)
55+ for (int attempt = 0 ; attempt < GRADLE_WRAPPER_RETRIES ; attempt++ ) {
56+ try {
57+ shellCommandExecutor. executeCommand(IOUtils ::readFully, " ./gradlew" , " wrapper" , " --gradle-version" , gradleVersion)
58+ return
59+ } catch (ShellCommandExecutor.ShellCommandFailedException e) {
60+ LOGGER . warn(" Failed gradle wrapper resolution with exception: " , e)
61+ Thread . sleep(2000 ) // small delay for rapid retries on network issues
62+ }
63+ }
64+ throw new AssertionError ((Object ) " Tried $GRADLE_WRAPPER_RETRIES times to execute gradle wrapper command and failed" )
5165 }
5266
5367 private String whenRunningGradleLauncherWithJavaTracerInjected (String gradleDaemonCmdLineParams ) {
0 commit comments