summary refs log tree commit diff
path: root/lib/tests
diff options
context:
space:
mode:
authorDaiderd Jordan <daiderd@gmail.com>2017-02-14 23:18:44 +0100
committerNicolas B. Pierron <nicolas.b.pierron@gmail.com>2017-02-28 00:14:48 +0100
commit3f2566689d14f1d7778d55ca807d1dad2f4695d1 (patch)
tree22129406dc4fa63df482c1ab1fbbeb6075eaf3ff /lib/tests
parent3c9fbfbe7f16ffbd21309d6a7dabc3fb197b5ffe (diff)
downloadnixpkgs-3f2566689d14f1d7778d55ca807d1dad2f4695d1.tar
nixpkgs-3f2566689d14f1d7778d55ca807d1dad2f4695d1.tar.gz
nixpkgs-3f2566689d14f1d7778d55ca807d1dad2f4695d1.tar.bz2
nixpkgs-3f2566689d14f1d7778d55ca807d1dad2f4695d1.tar.lz
nixpkgs-3f2566689d14f1d7778d55ca807d1dad2f4695d1.tar.xz
nixpkgs-3f2566689d14f1d7778d55ca807d1dad2f4695d1.tar.zst
nixpkgs-3f2566689d14f1d7778d55ca807d1dad2f4695d1.zip
modules: add support for module replacement with disabledModules
This is based on a prototype Nicolas B. Pierron worked on during a
discussion we had at FOSDEM.
Diffstat (limited to 'lib/tests')
-rwxr-xr-xlib/tests/modules.sh8
-rw-r--r--lib/tests/modules/default.nix1
-rw-r--r--lib/tests/modules/disable-declare-enable.nix5
-rw-r--r--lib/tests/modules/disable-define-enable.nix5
-rw-r--r--lib/tests/modules/disable-enable-modules.nix5
5 files changed, 24 insertions, 0 deletions
diff --git a/lib/tests/modules.sh b/lib/tests/modules.sh
index 8b476a5d3dc..ba0c67fb7d4 100755
--- a/lib/tests/modules.sh
+++ b/lib/tests/modules.sh
@@ -99,6 +99,14 @@ checkConfigOutput 'true' "$@" ./define-enable.nix ./define-loaOfSub-if-foo-enabl
 checkConfigOutput 'true' "$@" ./define-enable.nix ./define-loaOfSub-foo-if-enable.nix
 checkConfigOutput 'true' "$@" ./define-enable.nix ./define-loaOfSub-foo-enable-if.nix
 
+# Check disabledModules with config definitions and option declarations.
+set -- config.enable ./define-enable.nix ./declare-enable.nix
+checkConfigOutput "true" "$@"
+checkConfigOutput "false" "$@" ./disable-define-enable.nix
+checkConfigError "The option .*enable.* defined in .* does not exist" "$@" ./disable-declare-enable.nix
+checkConfigError "attribute .*enable.* in selection path .*config.enable.* not found" "$@" ./disable-define-enable.nix ./disable-declare-enable.nix
+checkConfigError "attribute .*enable.* in selection path .*config.enable.* not found" "$@" ./disable-enable-modules.nix
+
 # Check _module.args.
 set -- config.enable ./declare-enable.nix ./define-enable-with-custom-arg.nix
 checkConfigError 'while evaluating the module argument .*custom.* in .*define-enable-with-custom-arg.nix.*:' "$@"
diff --git a/lib/tests/modules/default.nix b/lib/tests/modules/default.nix
index 5df7d9751ea..5be3af0ffe8 100644
--- a/lib/tests/modules/default.nix
+++ b/lib/tests/modules/default.nix
@@ -3,5 +3,6 @@
 {
   inherit (lib.evalModules {
     inherit modules;
+    specialArgs.modulesPath = ./.;
   }) config options;
 }
diff --git a/lib/tests/modules/disable-declare-enable.nix b/lib/tests/modules/disable-declare-enable.nix
new file mode 100644
index 00000000000..a373ee7e550
--- /dev/null
+++ b/lib/tests/modules/disable-declare-enable.nix
@@ -0,0 +1,5 @@
+{ lib, ... }:
+
+{
+  disabledModules = [ ./declare-enable.nix ];
+}
diff --git a/lib/tests/modules/disable-define-enable.nix b/lib/tests/modules/disable-define-enable.nix
new file mode 100644
index 00000000000..0d84a7c3cb6
--- /dev/null
+++ b/lib/tests/modules/disable-define-enable.nix
@@ -0,0 +1,5 @@
+{ lib, ... }:
+
+{
+  disabledModules = [ ./define-enable.nix ];
+}
diff --git a/lib/tests/modules/disable-enable-modules.nix b/lib/tests/modules/disable-enable-modules.nix
new file mode 100644
index 00000000000..c325f4e0743
--- /dev/null
+++ b/lib/tests/modules/disable-enable-modules.nix
@@ -0,0 +1,5 @@
+{ lib, ... }:
+
+{
+  disabledModules = [ "define-enable.nix" "declare-enable.nix" ];
+}