mirror of
https://github.com/codeflash-ai/codeflash.git
synced 2026-05-04 18:25:17 +00:00
refactor: drop legacy JDK 8 version mapping in _detect_java_version
This commit is contained in:
parent
54a14765ee
commit
c40b5e7a74
2 changed files with 33 additions and 3 deletions
|
|
@ -583,9 +583,9 @@ class JavaSupport(LanguageSupport):
|
||||||
end = line.find('"', start + 1)
|
end = line.find('"', start + 1)
|
||||||
if start != -1 and end != -1:
|
if start != -1 and end != -1:
|
||||||
full_version = line[start + 1 : end]
|
full_version = line[start + 1 : end]
|
||||||
# Use major version only: "17.0.2" -> "17", "1.8.0_292" -> "8"
|
# Use major version only: "17.0.2" -> "17". JDK 8 and earlier (reported as
|
||||||
major = full_version.split(".")[0]
|
# "1.x.y") are unsupported — the downstream minimum-version check rejects them.
|
||||||
self._language_version = "8" if major == "1" else major
|
self._language_version = full_version.split(".")[0]
|
||||||
return
|
return
|
||||||
except Exception:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
|
|
|
||||||
|
|
@ -175,3 +175,33 @@ class TestJdkVersionCheck:
|
||||||
with patch("codeflash.languages.java.support.detect_java_project", return_value=mock_config):
|
with patch("codeflash.languages.java.support.detect_java_project", return_value=mock_config):
|
||||||
result = support.ensure_runtime_environment(tmp_path)
|
result = support.ensure_runtime_environment(tmp_path)
|
||||||
assert result is True
|
assert result is True
|
||||||
|
|
||||||
|
def test_detect_java_version_legacy_jdk8_format(self) -> None:
|
||||||
|
from unittest.mock import MagicMock, patch
|
||||||
|
|
||||||
|
support = get_java_support()
|
||||||
|
support._language_version = None
|
||||||
|
|
||||||
|
mock_result = MagicMock()
|
||||||
|
mock_result.stderr = 'openjdk version "1.8.0_292"\n'
|
||||||
|
mock_result.stdout = ""
|
||||||
|
|
||||||
|
with patch("subprocess.run", return_value=mock_result):
|
||||||
|
support._detect_java_version()
|
||||||
|
|
||||||
|
assert support._language_version == "1"
|
||||||
|
|
||||||
|
def test_detect_java_version_modern_format(self) -> None:
|
||||||
|
from unittest.mock import MagicMock, patch
|
||||||
|
|
||||||
|
support = get_java_support()
|
||||||
|
support._language_version = None
|
||||||
|
|
||||||
|
mock_result = MagicMock()
|
||||||
|
mock_result.stderr = 'openjdk version "17.0.2"\n'
|
||||||
|
mock_result.stdout = ""
|
||||||
|
|
||||||
|
with patch("subprocess.run", return_value=mock_result):
|
||||||
|
support._detect_java_version()
|
||||||
|
|
||||||
|
assert support._language_version == "17"
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue