summaryrefslogtreecommitdiffstats
path: root/lib/tests
diff options
context:
space:
mode:
authorSilvan Mosberger <contact@infinisil.com>2020-01-10 04:11:53 +0100
committerSilvan Mosberger <contact@infinisil.com>2020-01-10 04:13:28 +0100
commit2955e6bd260f0b65a859a4a76ce532528afc5275 (patch)
tree0cca6fcbf7bf0cea02693430ebe0b0f024571453 /lib/tests
parente0ea5f4d9ba5d8553fcadde487b57e6dbd1ff746 (diff)
lib/tests: Add test case for imports from derivations
Diffstat (limited to 'lib/tests')
-rwxr-xr-xlib/tests/modules.sh5
-rw-r--r--lib/tests/modules/import-from-store.nix17
2 files changed, 21 insertions, 1 deletions
diff --git a/lib/tests/modules.sh b/lib/tests/modules.sh
index 2997fb1ada1b..79d90670fb53 100755
--- a/lib/tests/modules.sh
+++ b/lib/tests/modules.sh
@@ -12,7 +12,7 @@ evalConfig() {
local attr=$1
shift;
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() {
@@ -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}
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
====== module tests ======
$pass Pass
diff --git a/lib/tests/modules/import-from-store.nix b/lib/tests/modules/import-from-store.nix
new file mode 100644
index 000000000000..64e7ec2e388c
--- /dev/null
+++ b/lib/tests/modules/import-from-store.nix
@@ -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
+ ];
+
+}