diff options
author | Devtools Arcadia <[email protected]> | 2022-02-07 18:08:42 +0300 |
---|---|---|
committer | Devtools Arcadia <[email protected]> | 2022-02-07 18:08:42 +0300 |
commit | 1110808a9d39d4b808aef724c861a2e1a38d2a69 (patch) | |
tree | e26c9fed0de5d9873cce7e00bc214573dc2195b7 /library/python/testing/yatest_common/yatest/common/runtime_java.py |
intermediate changes
ref:cde9a383711a11544ce7e107a78147fb96cc4029
Diffstat (limited to 'library/python/testing/yatest_common/yatest/common/runtime_java.py')
-rw-r--r-- | library/python/testing/yatest_common/yatest/common/runtime_java.py | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/library/python/testing/yatest_common/yatest/common/runtime_java.py b/library/python/testing/yatest_common/yatest/common/runtime_java.py new file mode 100644 index 00000000000..39bbb455702 --- /dev/null +++ b/library/python/testing/yatest_common/yatest/common/runtime_java.py @@ -0,0 +1,46 @@ +import os +import tarfile +import contextlib + +from . import runtime + +_JAVA_DIR = [] + + +def get_java_path(jdk_dir): + # deprecated - to be deleted + java_paths = (os.path.join(jdk_dir, 'bin', 'java'), os.path.join(jdk_dir, 'bin', 'java.exe')) + + for p in java_paths: + if os.path.exists(p): + return p + + for f in os.listdir(jdk_dir): + if f.endswith('.tar'): + with contextlib.closing(tarfile.open(os.path.join(jdk_dir, f))) as tf: + tf.extractall(jdk_dir) + + for p in java_paths: + if os.path.exists(p): + return p + + return '' + + +def get_build_java_dir(jdk_dir): + versions = [8, 10, 11, 12, 13, 14, 15] + + if not _JAVA_DIR: + for version in versions: + jdk_tar_path = os.path.join(jdk_dir, "jdk{}.tar".format(version)) + if os.path.exists(jdk_tar_path): + jdk_dir = runtime.build_path('jdk4test') + with contextlib.closing(tarfile.open(jdk_tar_path)) as tf: + tf.extractall(jdk_dir) + assert os.path.exists(os.path.join(jdk_dir, "bin", "java")) + _JAVA_DIR.append(jdk_dir) + break + else: + _JAVA_DIR.append(None) + + return _JAVA_DIR[0] |