gradle: add test for toolchain functionality

The test asserts for the output of the javaToolchains tasks making sure
Gradle detected toolchains via environment variables created by the Nix
package.
Since we can't call override on finalAttrs.finalPackage, the test has to
be implemented in wrapGradle instead of in the passthru of the gen
function body.
This commit is contained in:
Benedikt Ritter
2025-03-21 12:29:19 +01:00
parent 0a58524be3
commit 205f8269ee
2 changed files with 30 additions and 2 deletions
@@ -1,6 +1,8 @@
{
jdk11,
jdk17,
jdk21,
jdk23,
}:
rec {
@@ -251,6 +253,7 @@ rec {
concatTextFile,
makeSetupHook,
nix-update-script,
runCommand,
}:
gradle-unwrapped: updateAttrPath:
lib.makeOverridable (
@@ -281,8 +284,33 @@ rec {
passthru =
{
fetchDeps = callPackage ./fetch-deps.nix { inherit mitm-cache; };
inherit (gradle) jdk tests;
inherit (gradle) jdk;
unwrapped = gradle;
tests = {
toolchains =
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;
}
''
cp -a $src/* .
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.tests;
}
// lib.optionalAttrs (updateAttrPath != null) {
updateScript = nix-update-script {
+1 -1
View File
@@ -7848,7 +7848,7 @@ with pkgs;
gnumake = callPackage ../development/tools/build-managers/gnumake { };
gradle-packages = import ../development/tools/build-managers/gradle {
inherit jdk17 jdk21;
inherit jdk11 jdk17 jdk21 jdk23;
};
gradleGen = gradle-packages.gen;
wrapGradle = callPackage gradle-packages.wrapGradle { };