Use consistent system jdk in 7.x packaging tests (#59257)
In 7.x, we have java 8 as minimum jdk version. In the past, for packaging tests, we relied on the system to provide an alternative jdk to be used by the no-jdk distributions. Master switched to using a build provided jdk, but 7.x was stuck relying on the system because it needed a java 8 jdk. The jdk download plugin was updated a while ago to support jdk 8, and so this PR converts the distro tests to use the build provided jdk just as master branch does. Note also this fixes a failure that would sometimes occur on older jdks in windows where the expected gc filename can be different.
This commit is contained in:
parent
b41bbe2911
commit
04a531dcfa
|
@ -71,6 +71,8 @@ import static org.elasticsearch.gradle.vagrant.VagrantMachine.convertLinuxPath;
|
|||
import static org.elasticsearch.gradle.vagrant.VagrantMachine.convertWindowsPath;
|
||||
|
||||
public class DistroTestPlugin implements Plugin<Project> {
|
||||
private static final String SYSTEM_JDK_VERSION = "8u242+b08";
|
||||
private static final String SYSTEM_JDK_VENDOR = "adoptopenjdk";
|
||||
private static final String GRADLE_JDK_VERSION = "14+36@076bab302c7b4508975440c56f6cc26a";
|
||||
private static final String GRADLE_JDK_VENDOR = "openjdk";
|
||||
|
||||
|
@ -231,11 +233,13 @@ public class DistroTestPlugin implements Plugin<Project> {
|
|||
|
||||
NamedDomainObjectContainer<Jdk> jdksContainer = JdkDownloadPlugin.getContainer(project);
|
||||
String platform = box.contains("windows") ? "windows" : "linux";
|
||||
Jdk systemJdk = createJdk(jdksContainer, "system", SYSTEM_JDK_VENDOR, SYSTEM_JDK_VERSION, platform, "x64");
|
||||
Jdk gradleJdk = createJdk(jdksContainer, "gradle", GRADLE_JDK_VENDOR, GRADLE_JDK_VERSION, platform, "x64");
|
||||
|
||||
// setup VM used by these tests
|
||||
VagrantExtension vagrant = project.getExtensions().getByType(VagrantExtension.class);
|
||||
vagrant.setBox(box);
|
||||
vagrant.vmEnv("SYSTEM_JAVA_HOME", convertPath(project, vagrant, systemJdk, "", ""));
|
||||
vagrant.vmEnv("PATH", convertPath(project, vagrant, gradleJdk, "/bin:$PATH", "\\bin;$Env:PATH"));
|
||||
// pass these along to get correct build scans
|
||||
if (System.getenv("JENKINS_URL") != null) {
|
||||
|
@ -243,7 +247,7 @@ public class DistroTestPlugin implements Plugin<Project> {
|
|||
}
|
||||
vagrant.setIsWindowsVM(isWindows(project));
|
||||
|
||||
return Arrays.asList(gradleJdk);
|
||||
return Arrays.asList(systemJdk, gradleJdk);
|
||||
}
|
||||
|
||||
private static Object convertPath(Project project, VagrantExtension vagrant, Jdk jdk, String additionaLinux, String additionalWindows) {
|
||||
|
|
|
@ -46,6 +46,7 @@ import static org.hamcrest.CoreMatchers.containsString;
|
|||
import static org.hamcrest.CoreMatchers.equalTo;
|
||||
import static org.hamcrest.CoreMatchers.is;
|
||||
import static org.hamcrest.CoreMatchers.not;
|
||||
import static org.hamcrest.Matchers.empty;
|
||||
import static org.hamcrest.Matchers.emptyString;
|
||||
import static org.hamcrest.Matchers.startsWith;
|
||||
import static org.junit.Assume.assumeThat;
|
||||
|
@ -134,8 +135,8 @@ public class ArchiveTests extends PackagingTestCase {
|
|||
throw e;
|
||||
}
|
||||
|
||||
final String gcLogName = distribution().hasJdk == false ? "gc.log.0.current" : "gc.log";
|
||||
assertThat(installation.logs.resolve(gcLogName), fileExists());
|
||||
List<Path> gcLogs = FileUtils.lsGlob(installation.logs, "gc.log*");
|
||||
assertThat(gcLogs, is(not(empty())));
|
||||
ServerUtils.runElasticsearchTests();
|
||||
|
||||
stopElasticsearch();
|
||||
|
|
|
@ -176,11 +176,15 @@ public abstract class PackagingTestCase extends Assert {
|
|||
|
||||
@After
|
||||
public void teardown() throws Exception {
|
||||
// move log file so we can avoid false positives when grepping for
|
||||
// messages in logs during test
|
||||
if (installation != null && failed == false) {
|
||||
if (Files.exists(installation.logs)) {
|
||||
Path logFile = installation.logs.resolve("elasticsearch.log");
|
||||
if (Files.exists(logFile)) {
|
||||
logger.warn("Elasticsearch log:\n" + FileUtils.slurpAllLogs(installation.logs, "elasticsearch.log", "*.log.gz"));
|
||||
}
|
||||
|
||||
// move log file so we can avoid false positives when grepping for
|
||||
// messages in logs during test
|
||||
String prefix = this.getClass().getSimpleName() + "." + testNameRule.getMethodName();
|
||||
if (Files.exists(logFile)) {
|
||||
Path newFile = installation.logs.resolve(prefix + ".elasticsearch.log");
|
||||
|
|
Loading…
Reference in New Issue