Make sure test.jdk.launcher.args is passed as jvm args to test launcher

This commit is contained in:
Christian Beikov 2024-02-19 14:37:42 +01:00
parent fff89542a6
commit c44823a326
4 changed files with 35 additions and 8 deletions

View File

@ -81,6 +81,11 @@ public class JavaModulePlugin implements Plugin<Project> {
javaToolchainSpec.getLanguageVersion().set( jdkVersionsConfig.getTestLauncherVersion() );
} )
);
final String launcherArgs = jdkVersionsConfig.getTest().getLauncherArgs();
if ( launcherArgs != null ) {
testTask.jvmArgs( (Object[]) launcherArgs.split( " " ) );
}
}
}
}

View File

@ -30,6 +30,7 @@ public class JdkVersionConfig {
public static final String DSL_NAME = "jdkVersions";
public static final String MAIN_JDK_VERSION = "main.jdk.version";
public static final String TEST_JDK_VERSION = "test.jdk.version";
public static final String TEST_JDK_LAUNCHER_ARGS = "test.jdk.launcher.args";
private final boolean explicit;
private final JavaLanguageVersion baseline;
@ -43,11 +44,12 @@ public class JdkVersionConfig {
JavaLanguageVersion mainReleaseVersion,
JavaLanguageVersion testCompileVersion,
JavaLanguageVersion testReleaseVersion,
JavaLanguageVersion testLauncherVersion) {
JavaLanguageVersion testLauncherVersion,
String testLauncherArgs) {
this.explicit = explicit;
this.baseline = baseline;
this.main = new MainJdks( mainCompileVersion, mainReleaseVersion );
this.test = new TestJdks( testCompileVersion, testReleaseVersion, testLauncherVersion );
this.test = new TestJdks( testCompileVersion, testReleaseVersion, testLauncherVersion, testLauncherArgs );
}
public boolean isExplicitlyConfigured() {
@ -110,7 +112,8 @@ public class JdkVersionConfig {
JavaLanguageVersion explicitTestVersion,
JavaLanguageVersion gradleJdkVersion,
JavaLanguageVersion baselineJdkVersion,
JavaLanguageVersion maxSupportedJdkVersion) {
JavaLanguageVersion maxSupportedJdkVersion,
String testLauncherArgs) {
final boolean explicitlyConfigured = explicitMainVersion != null || explicitTestVersion != null;
final JavaLanguageVersion mainCompileVersion;
@ -144,7 +147,8 @@ public class JdkVersionConfig {
mainReleaseVersion,
testCompileVersion,
testReleaseVersion,
testLauncherVersion
testLauncherVersion,
testLauncherArgs
);
}
else {
@ -169,7 +173,8 @@ public class JdkVersionConfig {
baselineJdkVersion,
gradleJdkVersion,
baselineJdkVersion,
gradleJdkVersion
gradleJdkVersion,
testLauncherArgs
);
}
}
@ -245,14 +250,17 @@ public class JdkVersionConfig {
private final JavaLanguageVersion compileVersion;
private final JavaLanguageVersion releaseVersion;
private final JavaLanguageVersion launcherVersion;
private final String launcherArgs;
public TestJdks(
JavaLanguageVersion compileVersion,
JavaLanguageVersion releaseVersion,
JavaLanguageVersion launcherVersion) {
JavaLanguageVersion launcherVersion,
String launcherArgs) {
this.compileVersion = compileVersion;
this.releaseVersion = releaseVersion;
this.launcherVersion = launcherVersion;
this.launcherArgs = launcherArgs;
}
public JavaLanguageVersion getCompiler() {
@ -273,6 +281,10 @@ public class JdkVersionConfig {
return launcherVersion;
}
public String getLauncherArgs() {
return launcherArgs;
}
@Override
public String toString() {
return "[compile: " + compileVersion + ", release:" + releaseVersion + ", launcher: " + launcherVersion + "]";

View File

@ -26,6 +26,7 @@ import org.gradle.jvm.toolchain.JavaToolchainSpec;
import org.jetbrains.annotations.NotNull;
import static org.hibernate.orm.toolchains.JdkVersionConfig.MAIN_JDK_VERSION;
import static org.hibernate.orm.toolchains.JdkVersionConfig.TEST_JDK_LAUNCHER_ARGS;
import static org.hibernate.orm.toolchains.JdkVersionConfig.TEST_JDK_VERSION;
import static org.hibernate.orm.toolchains.JdkVersionConfig.createVersionConfig;
import static org.hibernate.orm.toolchains.JdkVersionConfig.extractVersion;
@ -51,13 +52,16 @@ public class JdkVersionPlugin implements Plugin<Project> {
final VersionCatalog jdkVersions = versionCatalogs.named( "jdks" );
final JavaLanguageVersion baselineJdkVersion = getJavaLanguageVersion( jdkVersions, "baseline" );
final JavaLanguageVersion maxSupportedJdkVersion = getJavaLanguageVersion( jdkVersions, "maxSupportedBytecode" );
final Object testLauncherArgsObject = project.getProperties().get( TEST_JDK_LAUNCHER_ARGS );
final String testLauncherArgs = testLauncherArgsObject == null ? null : testLauncherArgsObject.toString();
final JdkVersionConfig jdkVersionConfig = createVersionConfig(
explicitMainVersion,
explicitTestVersion,
gradleJdkVersion,
baselineJdkVersion,
maxSupportedJdkVersion
maxSupportedJdkVersion,
testLauncherArgs
);
project.getExtensions().add( JdkVersionConfig.DSL_NAME, jdkVersionConfig );

View File

@ -6,6 +6,7 @@
*/
package org.hibernate.orm.toolchains;
import org.gradle.StartParameter;
import org.gradle.api.JavaVersion;
import org.gradle.api.Plugin;
import org.gradle.api.artifacts.VersionCatalog;
@ -17,6 +18,7 @@ import org.gradle.jvm.toolchain.JavaLanguageVersion;
import org.jetbrains.annotations.NotNull;
import static org.hibernate.orm.toolchains.JdkVersionConfig.MAIN_JDK_VERSION;
import static org.hibernate.orm.toolchains.JdkVersionConfig.TEST_JDK_LAUNCHER_ARGS;
import static org.hibernate.orm.toolchains.JdkVersionConfig.TEST_JDK_VERSION;
import static org.hibernate.orm.toolchains.JdkVersionConfig.createVersionConfig;
import static org.hibernate.orm.toolchains.JdkVersionConfig.extractVersion;
@ -39,13 +41,17 @@ public class JdkVersionSettingsPlugin implements Plugin<Settings> {
// maxSupportedJdkVersion = getJavaLanguageVersion( jdkVersions, "maxSupportedBytecode" );
baselineJdkVersion = JavaLanguageVersion.of( "11" );
maxSupportedJdkVersion = JavaLanguageVersion.of( "17" );
final StartParameter startParameters = settings.getGradle().getStartParameter();
final Object testLauncherArgsObject = startParameters.getProjectProperties().get( TEST_JDK_LAUNCHER_ARGS );
final String testLauncherArgs = testLauncherArgsObject == null ? null : testLauncherArgsObject.toString();
final JdkVersionConfig jdkVersionConfig = createVersionConfig(
explicitMainVersion,
explicitTestVersion,
gradleJdkVersion,
baselineJdkVersion,
maxSupportedJdkVersion
maxSupportedJdkVersion,
testLauncherArgs
);
settings.getGradle().getExtensions().add( JdkVersionConfig.DSL_NAME, jdkVersionConfig );