Skip to content

Commit 9c823d7

Browse files
committed
Expose toolchains to some Android tests, which would otherwise now try to upgrade to JDK17
1 parent c328957 commit 9c823d7

File tree

4 files changed

+52
-42
lines changed
  • java

4 files changed

+52
-42
lines changed
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
import os.path
2+
import sys
3+
import tempfile
4+
5+
def actions_expose_all_toolchains():
6+
7+
# On actions, expose all usable toolchains so that we can test version-selection logic.
8+
9+
toolchains_dir = tempfile.mkdtemp(prefix="integration-tests-toolchains-")
10+
toolchains_file = os.path.join(toolchains_dir, "toolchains.xml")
11+
12+
def none_or_blank(s):
13+
return s is None or s == ""
14+
15+
with open(toolchains_file, "w") as f:
16+
f.write('<?xml version="1.0" encoding="UTF-8"?>\n<toolchains>\n')
17+
18+
for v in [8, 11, 17, 21]:
19+
homedir = os.getenv("JAVA_HOME_%d_X64" % v)
20+
if none_or_blank(homedir):
21+
homedir = os.getenv("JAVA_HOME_%d_arm64" % v)
22+
if none_or_blank(homedir) and v == 8 and not none_or_blank(os.getenv("JAVA_HOME_11_arm64")):
23+
print("Mocking a toolchain entry using Java 11 install as a fake Java 8 entry, so this test behaves the same on x64 and arm64 runners", file = sys.stderr)
24+
homedir = os.getenv("JAVA_HOME_11_arm64")
25+
if homedir is not None and homedir != "":
26+
f.write("""
27+
<toolchain>
28+
<type>jdk</type>
29+
<provides>
30+
<version>%d</version>
31+
<vendor>oracle</vendor>
32+
</provides>
33+
<configuration>
34+
<jdkHome>%s</jdkHome>
35+
</configuration>
36+
</toolchain>
37+
""" % (v, homedir))
38+
39+
f.write("</toolchains>")
40+
41+
return toolchains_file
42+
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1-
import sys
21
from create_database_utils import *
2+
from toolchains_test_utils import *
33

44
try_use_java11()
55

6-
run_codeql_database_create([], lang="java")
6+
toolchains_file = actions_expose_all_toolchains()
7+
8+
run_codeql_database_create([], lang="java", extra_env={"LGTM_INDEX_MAVEN_TOOLCHAINS_FILE": toolchains_file})
Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
import sys
2-
31
from create_database_utils import *
2+
from toolchains_test_utils import *
43

54
try_use_java11()
65

7-
run_codeql_database_create([], lang="java")
6+
toolchains_file = actions_expose_all_toolchains()
7+
8+
run_codeql_database_create([], lang="java", extra_env={"LGTM_INDEX_MAVEN_TOOLCHAINS_FILE": toolchains_file})

java/ql/integration-tests/all-platforms/java/buildless-sibling-projects/test.py

Lines changed: 2 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,12 @@
11
from create_database_utils import *
22
from diagnostics_test_utils import *
33
from buildless_test_utils import *
4-
5-
import tempfile
6-
import os.path
7-
import sys
4+
from toolchains_test_utils import *
85

96
#The version of gradle used doesn't work on java 17
107
try_use_java11()
118

12-
# On actions, expose all usable toolchains so that we can test version-selection logic.
13-
14-
toolchains_dir = tempfile.mkdtemp(prefix="integration-tests-toolchains-")
15-
toolchains_file = os.path.join(toolchains_dir, "toolchains.xml")
16-
17-
def none_or_blank(s):
18-
return s is None or s == ""
19-
20-
with open(toolchains_file, "w") as f:
21-
f.write('<?xml version="1.0" encoding="UTF-8"?>\n<toolchains>\n')
22-
23-
for v in [8, 11, 17, 21]:
24-
homedir = os.getenv("JAVA_HOME_%d_X64" % v)
25-
if none_or_blank(homedir):
26-
homedir = os.getenv("JAVA_HOME_%d_arm64" % v)
27-
if none_or_blank(homedir) and v == 8 and not none_or_blank(os.getenv("JAVA_HOME_11_arm64")):
28-
print("Mocking a toolchain entry using Java 11 install as a fake Java 8 entry, so this test behaves the same on x64 and arm64 runners", file = sys.stderr)
29-
homedir = os.getenv("JAVA_HOME_11_arm64")
30-
if homedir is not None and homedir != "":
31-
f.write("""
32-
<toolchain>
33-
<type>jdk</type>
34-
<provides>
35-
<version>%d</version>
36-
<vendor>oracle</vendor>
37-
</provides>
38-
<configuration>
39-
<jdkHome>%s</jdkHome>
40-
</configuration>
41-
</toolchain>
42-
""" % (v, homedir))
43-
44-
f.write("</toolchains>")
9+
toolchains_file = actions_expose_all_toolchains()
4510

4611
run_codeql_database_create([], lang="java", extra_env={"CODEQL_EXTRACTOR_JAVA_OPTION_BUILDLESS": "true", "CODEQL_EXTRACTOR_JAVA_OPTION_BUILDLESS_CLASSPATH_FROM_BUILD_FILES": "true", "LGTM_INDEX_MAVEN_TOOLCHAINS_FILE": toolchains_file})
4712

0 commit comments

Comments
 (0)