Set withTestKitDir per Gradle version

Attempt to fix cache locking issues by setting a unique `withTestKitDir`
directory for each tested Gradle version.

Closes gh-24993
This commit is contained in:
Phillip Webb 2021-01-25 21:33:45 -08:00
parent 46d908f632
commit 464b302655

View File

@ -1,5 +1,5 @@
/*
* Copyright 2012-2020 the original author or authors.
* Copyright 2012-2021 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -163,6 +163,7 @@ public class GradleBuild {
if (this.gradleVersion != null) {
gradleRunner.withGradleVersion(this.gradleVersion);
}
gradleRunner.withTestKitDir(getTestKitDir());
List<String> allArguments = new ArrayList<>();
allArguments.add("-PbootVersion=" + getBootVersion());
allArguments.add("--stacktrace");
@ -172,6 +173,13 @@ public class GradleBuild {
return gradleRunner.withArguments(allArguments);
}
private File getTestKitDir() {
File temp = new File(System.getProperty("java.io.tmpdir"));
String username = System.getProperty("user.name");
String gradleVersion = (this.gradleVersion != null) ? this.gradleVersion : "default";
return new File(temp, ".gradle-test-kit-" + username + "-" + getBootVersion() + "-" + gradleVersion);
}
public File getProjectDir() {
return this.projectDir;
}