diff --git a/lib/tests/modules.sh b/lib/tests/modules.sh index 4690e380ce3c..a2590661d000 100755 --- a/lib/tests/modules.sh +++ b/lib/tests/modules.sh @@ -182,6 +182,12 @@ checkConfigOutput "true" config.submodule.outer ./declare-submoduleWith-modules. ## Paths should be allowed as values and work as expected checkConfigOutput "true" config.submodule.enable ./declare-submoduleWith-path.nix +# Check that disabledModules works recursively and correctly +checkConfigOutput "true" config.enable ./disable-recursive/main.nix +checkConfigOutput "true" config.enable ./disable-recursive/{main.nix,disable-foo.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} + cat <<EOF ====== module tests ====== $pass Pass diff --git a/lib/tests/modules/disable-recursive/bar.nix b/lib/tests/modules/disable-recursive/bar.nix new file mode 100644 index 000000000000..4d9240a432df --- /dev/null +++ b/lib/tests/modules/disable-recursive/bar.nix @@ -0,0 +1,5 @@ +{ + imports = [ + ../declare-enable.nix + ]; +} diff --git a/lib/tests/modules/disable-recursive/disable-bar.nix b/lib/tests/modules/disable-recursive/disable-bar.nix new file mode 100644 index 000000000000..987b2802ae8c --- /dev/null +++ b/lib/tests/modules/disable-recursive/disable-bar.nix @@ -0,0 +1,7 @@ +{ + + disabledModules = [ + ./bar.nix + ]; + +} diff --git a/lib/tests/modules/disable-recursive/disable-foo.nix b/lib/tests/modules/disable-recursive/disable-foo.nix new file mode 100644 index 000000000000..5b68a3c46105 --- /dev/null +++ b/lib/tests/modules/disable-recursive/disable-foo.nix @@ -0,0 +1,7 @@ +{ + + disabledModules = [ + ./foo.nix + ]; + +} diff --git a/lib/tests/modules/disable-recursive/foo.nix b/lib/tests/modules/disable-recursive/foo.nix new file mode 100644 index 000000000000..4d9240a432df --- /dev/null +++ b/lib/tests/modules/disable-recursive/foo.nix @@ -0,0 +1,5 @@ +{ + imports = [ + ../declare-enable.nix + ]; +} diff --git a/lib/tests/modules/disable-recursive/main.nix b/lib/tests/modules/disable-recursive/main.nix new file mode 100644 index 000000000000..48a3c6218cf3 --- /dev/null +++ b/lib/tests/modules/disable-recursive/main.nix @@ -0,0 +1,8 @@ +{ + imports = [ + ./foo.nix + ./bar.nix + ]; + + enable = true; +}