Loading lib/modules.nix +1 −0 Original line number Diff line number Diff line Loading @@ -257,6 +257,7 @@ let config specialArgs ; _class = class; } // specialArgs ); Loading lib/tests/modules.sh +12 −0 Original line number Diff line number Diff line Loading @@ -681,6 +681,18 @@ checkConfigOutput '^true$' config.viaConfig ./mkDefinition.nix checkConfigOutput '^true$' config.mkMerge ./mkDefinition.nix checkConfigOutput '^true$' config.mkForce ./mkDefinition.nix # specialArgs._class checkConfigOutput '"nixos"' config.nixos.config.foo ./specialArgs-class.nix checkConfigOutput '"bar"' config.conditionalImportAsNixos.config.foo ./specialArgs-class.nix checkConfigError 'attribute .*bar.* not found' config.conditionalImportAsNixos.config.bar ./specialArgs-class.nix checkConfigError 'attribute .*foo.* not found' config.conditionalImportAsDarwin.config.foo ./specialArgs-class.nix checkConfigOutput '"foo"' config.conditionalImportAsDarwin.config.bar ./specialArgs-class.nix checkConfigOutput '"nixos"' config.sub.nixos.foo ./specialArgs-class.nix checkConfigOutput '"bar"' config.sub.conditionalImportAsNixos.foo ./specialArgs-class.nix checkConfigError 'attribute .*bar.* not found' config.sub.conditionalImportAsNixos.bar ./specialArgs-class.nix checkConfigError 'attribute .*foo.* not found' config.sub.conditionalImportAsDarwin.foo ./specialArgs-class.nix checkConfigOutput '"foo"' config.sub.conditionalImportAsDarwin.bar ./specialArgs-class.nix cat <<EOF ====== module tests ====== $pass Pass Loading lib/tests/modules/assert-module-class-is-nixos.nix 0 → 100644 +3 −0 Original line number Diff line number Diff line { _class, ... }: assert _class == "nixos"; { } lib/tests/modules/class-check.nix +4 −1 Original line number Diff line number Diff line Loading @@ -5,7 +5,9 @@ nixosOk = lib.mkOption { type = lib.types.submoduleWith { class = "nixos"; modules = [ ]; modules = [ ./assert-module-class-is-nixos.nix ]; }; }; # Same but will have bad definition Loading Loading @@ -45,6 +47,7 @@ class = "nixos"; modules = [ ./module-class-is-nixos.nix ./assert-module-class-is-nixos.nix ]; }; Loading lib/tests/modules/expose-module-class.nix 0 → 100644 +8 −0 Original line number Diff line number Diff line { _class, lib, ... }: { options = { foo = lib.mkOption { default = _class; }; }; } Loading
lib/modules.nix +1 −0 Original line number Diff line number Diff line Loading @@ -257,6 +257,7 @@ let config specialArgs ; _class = class; } // specialArgs ); Loading
lib/tests/modules.sh +12 −0 Original line number Diff line number Diff line Loading @@ -681,6 +681,18 @@ checkConfigOutput '^true$' config.viaConfig ./mkDefinition.nix checkConfigOutput '^true$' config.mkMerge ./mkDefinition.nix checkConfigOutput '^true$' config.mkForce ./mkDefinition.nix # specialArgs._class checkConfigOutput '"nixos"' config.nixos.config.foo ./specialArgs-class.nix checkConfigOutput '"bar"' config.conditionalImportAsNixos.config.foo ./specialArgs-class.nix checkConfigError 'attribute .*bar.* not found' config.conditionalImportAsNixos.config.bar ./specialArgs-class.nix checkConfigError 'attribute .*foo.* not found' config.conditionalImportAsDarwin.config.foo ./specialArgs-class.nix checkConfigOutput '"foo"' config.conditionalImportAsDarwin.config.bar ./specialArgs-class.nix checkConfigOutput '"nixos"' config.sub.nixos.foo ./specialArgs-class.nix checkConfigOutput '"bar"' config.sub.conditionalImportAsNixos.foo ./specialArgs-class.nix checkConfigError 'attribute .*bar.* not found' config.sub.conditionalImportAsNixos.bar ./specialArgs-class.nix checkConfigError 'attribute .*foo.* not found' config.sub.conditionalImportAsDarwin.foo ./specialArgs-class.nix checkConfigOutput '"foo"' config.sub.conditionalImportAsDarwin.bar ./specialArgs-class.nix cat <<EOF ====== module tests ====== $pass Pass Loading
lib/tests/modules/assert-module-class-is-nixos.nix 0 → 100644 +3 −0 Original line number Diff line number Diff line { _class, ... }: assert _class == "nixos"; { }
lib/tests/modules/class-check.nix +4 −1 Original line number Diff line number Diff line Loading @@ -5,7 +5,9 @@ nixosOk = lib.mkOption { type = lib.types.submoduleWith { class = "nixos"; modules = [ ]; modules = [ ./assert-module-class-is-nixos.nix ]; }; }; # Same but will have bad definition Loading Loading @@ -45,6 +47,7 @@ class = "nixos"; modules = [ ./module-class-is-nixos.nix ./assert-module-class-is-nixos.nix ]; }; Loading
lib/tests/modules/expose-module-class.nix 0 → 100644 +8 −0 Original line number Diff line number Diff line { _class, lib, ... }: { options = { foo = lib.mkOption { default = _class; }; }; }