From a3b0f90f5c0e6882eb62df3b2cbd2838c9a03f91 Mon Sep 17 00:00:00 2001 From: Khoi Pham <132031702+dkphm@users.noreply.github.com> Date: Fri, 22 Nov 2024 15:06:14 -0800 Subject: [PATCH] fix: Restrict the condition for Gradle JVM string (#706) * fix: Restrict the condition for Gradle JVM string to make sure it doesn't parse the wrong one * Fix format --- .../workflows/java_gradle/gradle_validator.py | 2 +- .../workflows/java_gradle/test_gradle_validator.py | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/aws_lambda_builders/workflows/java_gradle/gradle_validator.py b/aws_lambda_builders/workflows/java_gradle/gradle_validator.py index 5107b9c2d..5c25a9fc9 100644 --- a/aws_lambda_builders/workflows/java_gradle/gradle_validator.py +++ b/aws_lambda_builders/workflows/java_gradle/gradle_validator.py @@ -83,5 +83,5 @@ def _get_jvm_string(self, gradle_path): for line in stdout.splitlines(): l_dec = decode(line) - if "JVM" in l_dec: + if l_dec.startswith("JVM") or l_dec.startswith("Launcher JVM"): return l_dec diff --git a/tests/unit/workflows/java_gradle/test_gradle_validator.py b/tests/unit/workflows/java_gradle/test_gradle_validator.py index f51bf5c9f..96ae2c22a 100644 --- a/tests/unit/workflows/java_gradle/test_gradle_validator.py +++ b/tests/unit/workflows/java_gradle/test_gradle_validator.py @@ -69,8 +69,14 @@ def test_emits_warning_when_gradle_excutable_fails(self): validator.validate(runtime_path=self.runtime_path) self.mock_log.warning.assert_called_with(GradleValidator.VERSION_STRING_WARNING, self.runtime_path) - def test_emits_warning_when_version_string_not_found(self): - version_string = "The Java Version: 9.0.0".encode() + @parameterized.expand( + [ + "The Java Version: 9.0.0", + "Daemon JVM: /Library/Java/JavaVirtualMachines/amazon-corretto-21.jdk/Contents/Home (no JDK specified, using current Java home)", + ] + ) + def test_emits_warning_when_version_string_not_found(self, path): + version_string = path.encode() self.mock_os_utils.popen.side_effect = [FakePopen(stdout=version_string, returncode=0)] validator = GradleValidator( runtime=self.runtime, architecture=self.architecture, os_utils=self.mock_os_utils, log=self.mock_log