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:
@@ -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 {
|
||||
|
||||
@@ -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 { };
|
||||
|
||||
Reference in New Issue
Block a user