lib/tests: Add test case for imports from derivations
This commit is contained in:
parent
e0ea5f4d9b
commit
2955e6bd26
|
@ -12,7 +12,7 @@ evalConfig() {
|
||||||
local attr=$1
|
local attr=$1
|
||||||
shift;
|
shift;
|
||||||
local script="import ./default.nix { modules = [ $@ ];}"
|
local script="import ./default.nix { modules = [ $@ ];}"
|
||||||
nix-instantiate --timeout 1 -E "$script" -A "$attr" --eval-only --show-trace
|
nix-instantiate --timeout 1 -E "$script" -A "$attr" --eval-only --show-trace --read-write-mode
|
||||||
}
|
}
|
||||||
|
|
||||||
reportFailure() {
|
reportFailure() {
|
||||||
|
@ -183,6 +183,9 @@ checkConfigOutput "true" config.enable ./disable-recursive/{main.nix,disable-foo
|
||||||
checkConfigOutput "true" config.enable ./disable-recursive/{main.nix,disable-bar.nix}
|
checkConfigOutput "true" config.enable ./disable-recursive/{main.nix,disable-bar.nix}
|
||||||
checkConfigError 'The option .* defined in .* does not exist' config.enable ./disable-recursive/{main.nix,disable-foo.nix,disable-bar.nix}
|
checkConfigError 'The option .* defined in .* does not exist' config.enable ./disable-recursive/{main.nix,disable-foo.nix,disable-bar.nix}
|
||||||
|
|
||||||
|
# Check that imports can depend on derivations
|
||||||
|
checkConfigOutput "true" config.enable ./import-from-store.nix
|
||||||
|
|
||||||
cat <<EOF
|
cat <<EOF
|
||||||
====== module tests ======
|
====== module tests ======
|
||||||
$pass Pass
|
$pass Pass
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
{ lib, ... }:
|
||||||
|
let
|
||||||
|
drv = derivation {
|
||||||
|
name = "derivation";
|
||||||
|
system = builtins.currentSystem;
|
||||||
|
builder = "/bin/sh";
|
||||||
|
args = [ "-c" "echo {} > $out" ];
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
|
||||||
|
imports = [
|
||||||
|
"${drv}"
|
||||||
|
./declare-enable.nix
|
||||||
|
./define-enable.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue