Merge pull request #121043 from raboof/jre_minimal-add-test
jre_minimal: add basic test
This commit is contained in:
commit
3f98c6e86c
@ -1,6 +1,7 @@
|
|||||||
{ stdenv
|
{ stdenv
|
||||||
, jdk
|
, jdk
|
||||||
, lib
|
, lib
|
||||||
|
, callPackage
|
||||||
, modules ? [ "java.base" ]
|
, modules ? [ "java.base" ]
|
||||||
}:
|
}:
|
||||||
|
|
||||||
@ -29,6 +30,10 @@ let
|
|||||||
|
|
||||||
passthru = {
|
passthru = {
|
||||||
home = "${jre}";
|
home = "${jre}";
|
||||||
|
tests = [
|
||||||
|
(callPackage ./tests/test_jre_minimal.nix {})
|
||||||
|
(callPackage ./tests/test_jre_minimal_with_logging.nix {})
|
||||||
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
in jre
|
in jre
|
||||||
|
16
pkgs/development/compilers/openjdk/jre_minimal_test1.nix
Normal file
16
pkgs/development/compilers/openjdk/jre_minimal_test1.nix
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
{ runCommand
|
||||||
|
, callPackage
|
||||||
|
, jdk
|
||||||
|
, jre_minimal
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
hello = callPackage tests/hello.nix {
|
||||||
|
jdk = jdk;
|
||||||
|
jre = jre_minimal;
|
||||||
|
};
|
||||||
|
in
|
||||||
|
runCommand "test" {} ''
|
||||||
|
${hello}/bin/hello | grep "Hello, world!"
|
||||||
|
touch $out
|
||||||
|
''
|
47
pkgs/development/compilers/openjdk/tests/hello-logging.nix
Normal file
47
pkgs/development/compilers/openjdk/tests/hello-logging.nix
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
{ jdk
|
||||||
|
, jre
|
||||||
|
, pkgs
|
||||||
|
}:
|
||||||
|
|
||||||
|
/* 'Hello world' Java application derivation for use in tests */
|
||||||
|
let
|
||||||
|
source = pkgs.writeTextDir "src/Hello.java" ''
|
||||||
|
import java.util.logging.Logger;
|
||||||
|
import java.util.logging.Level;
|
||||||
|
|
||||||
|
class Hello {
|
||||||
|
static Logger logger = Logger.getLogger(Hello.class.getName());
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
logger.log(Level.INFO, "Hello, world!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
in
|
||||||
|
pkgs.stdenv.mkDerivation {
|
||||||
|
pname = "hello";
|
||||||
|
version = "1.0.0";
|
||||||
|
|
||||||
|
src = source;
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
runHook preBuildPhase
|
||||||
|
${jdk}/bin/javac src/Hello.java
|
||||||
|
runHook postBuildPhase
|
||||||
|
'';
|
||||||
|
installPhase = ''
|
||||||
|
runHook preInstallPhase
|
||||||
|
|
||||||
|
mkdir -p $out/lib
|
||||||
|
cp src/Hello.class $out/lib
|
||||||
|
|
||||||
|
mkdir -p $out/bin
|
||||||
|
cat >$out/bin/hello <<EOF;
|
||||||
|
#!/usr/bin/env sh
|
||||||
|
${jre}/bin/java -cp $out/lib Hello
|
||||||
|
EOF
|
||||||
|
chmod a+x $out/bin/hello
|
||||||
|
|
||||||
|
runHook postInstallPhase
|
||||||
|
'';
|
||||||
|
}
|
42
pkgs/development/compilers/openjdk/tests/hello.nix
Normal file
42
pkgs/development/compilers/openjdk/tests/hello.nix
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
{ jdk
|
||||||
|
, jre
|
||||||
|
, pkgs
|
||||||
|
}:
|
||||||
|
|
||||||
|
/* 'Hello world' Java application derivation for use in tests */
|
||||||
|
let
|
||||||
|
source = pkgs.writeTextDir "src/Hello.java" ''
|
||||||
|
class Hello {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
System.out.println("Hello, world!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
in
|
||||||
|
pkgs.stdenv.mkDerivation {
|
||||||
|
pname = "hello";
|
||||||
|
version = "1.0.0";
|
||||||
|
|
||||||
|
src = source;
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
runHook preBuildPhase
|
||||||
|
${jdk}/bin/javac src/Hello.java
|
||||||
|
runHook postBuildPhase
|
||||||
|
'';
|
||||||
|
installPhase = ''
|
||||||
|
runHook preInstallPhase
|
||||||
|
|
||||||
|
mkdir -p $out/lib
|
||||||
|
cp src/Hello.class $out/lib
|
||||||
|
|
||||||
|
mkdir -p $out/bin
|
||||||
|
cat >$out/bin/hello <<EOF;
|
||||||
|
#!/usr/bin/env sh
|
||||||
|
${jre}/bin/java -cp $out/lib Hello
|
||||||
|
EOF
|
||||||
|
chmod a+x $out/bin/hello
|
||||||
|
|
||||||
|
runHook postInstallPhase
|
||||||
|
'';
|
||||||
|
}
|
@ -0,0 +1,16 @@
|
|||||||
|
{ runCommand
|
||||||
|
, callPackage
|
||||||
|
, jdk
|
||||||
|
, jre_minimal
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
hello = callPackage ./hello.nix {
|
||||||
|
jdk = jdk;
|
||||||
|
jre = jre_minimal;
|
||||||
|
};
|
||||||
|
in
|
||||||
|
runCommand "test" {} ''
|
||||||
|
${hello}/bin/hello | grep "Hello, world!"
|
||||||
|
touch $out
|
||||||
|
''
|
@ -0,0 +1,21 @@
|
|||||||
|
{ runCommand
|
||||||
|
, callPackage
|
||||||
|
, jdk
|
||||||
|
, jre_minimal
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
hello-logging = callPackage ./hello-logging.nix {
|
||||||
|
jdk = jdk;
|
||||||
|
jre = jre_minimal.override {
|
||||||
|
modules = [
|
||||||
|
"java.base"
|
||||||
|
"java.logging"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
in
|
||||||
|
runCommand "test" {} ''
|
||||||
|
${hello-logging}/bin/hello &>/dev/stdout | grep "Hello, world!"
|
||||||
|
touch $out
|
||||||
|
''
|
Loading…
Reference in New Issue
Block a user