gradle: Improve toolchains test (#395965)

Changed files
+23 -9
pkgs
development
tools
build-managers
gradle
tests
toolchains
src
main
java
top-level
+7 -8
pkgs/development/tools/build-managers/gradle/default.nix
···
{
-
jdk11,
jdk17,
jdk21,
jdk23,
···
unwrapped = gradle;
tests = {
toolchains =
+
let
+
javaVersion = lib.versions.major (lib.getVersion jdk23);
+
in
runCommand "detects-toolchains-from-nix-env"
{
# Use JDKs that are not the default for any of the gradle versions
nativeBuildInputs = [
(gradle.override {
javaToolchains = [
-
jdk11
jdk23
];
})
];
-
src = ./tests/java-application;
+
src = ./tests/toolchains;
}
''
cp -a $src/* .
+
substituteInPlace ./build.gradle --replace-fail '@JAVA_VERSION@' '${javaVersion}'
env GRADLE_USER_HOME=$TMPDIR/gradle org.gradle.native.dir=$TMPDIR/native \
-
gradle javaToolchains --no-daemon --quiet --console plain > $out
-
cat $out | grep "Language Version: 11"
-
cat $out | grep "Detected by: environment variable 'JAVA_TOOLCHAIN_NIX_0'"
-
cat $out | grep "Language Version: 23"
-
cat $out | grep "Detected by: environment variable 'JAVA_TOOLCHAIN_NIX_1'"
+
gradle run --no-daemon --quiet --console plain > $out
+
test "$(<$out)" = "${javaVersion}"
'';
} // gradle.tests;
}
+11
pkgs/development/tools/build-managers/gradle/tests/toolchains/build.gradle
···
+
plugins {
+
id('application')
+
}
+
+
java {
+
toolchain.languageVersion.set(JavaLanguageVersion.of(@JAVA_VERSION@))
+
}
+
+
application {
+
mainClass = 'Main'
+
}
+5
pkgs/development/tools/build-managers/gradle/tests/toolchains/src/main/java/Main.java
···
+
public class Main {
+
public static void main(String[] args) {
+
System.out.println(System.getProperty("java.version"));
+
}
+
}
-1
pkgs/top-level/all-packages.nix
···
gnumake = callPackage ../development/tools/build-managers/gnumake { };
gradle-packages = import ../development/tools/build-managers/gradle {
inherit
-
jdk11
jdk17
jdk21
jdk23