Unverified Commit d56f942e authored by Maximilian Bosch's avatar Maximilian Bosch Committed by GitHub
Browse files

Merge pull request #272709 from hercules-ci/module-system-test-pr-131205

lib/modules: Test optionless module errors from #131205
parents d826a919 83712164
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -275,6 +275,8 @@ let
                "The option `${optText}' does not exist. Definition values:${defText}";
          in
            if attrNames options == [ "_module" ]
              # No options were declared at all (`_module` is built in)
              # but we do have unmatched definitions, and no freeformType (earlier conditions)
              then
                let
                  optionName = showOption prefix;
+8 −0
Original line number Diff line number Diff line
@@ -94,6 +94,14 @@ checkConfigOutput '^true$' config.result ./module-argument-default.nix
# gvariant
checkConfigOutput '^true$' config.assertion ./gvariant.nix

# https://github.com/NixOS/nixpkgs/pull/131205
# We currently throw this error already in `config`, but throwing in `config.wrong1` would be acceptable.
checkConfigError 'It seems as if you.re trying to declare an option by placing it into .config. rather than .options.' config.wrong1 ./error-mkOption-in-config.nix
# We currently throw this error already in `config`, but throwing in `config.nest.wrong2` would be acceptable.
checkConfigError 'It seems as if you.re trying to declare an option by placing it into .config. rather than .options.' config.nest.wrong2 ./error-mkOption-in-config.nix
checkConfigError 'The option .sub.wrong2. does not exist. Definition values:' config.sub ./error-mkOption-in-submodule-config.nix
checkConfigError '.*This can happen if you e.g. declared your options in .types.submodule.' config.sub ./error-mkOption-in-submodule-config.nix

# types.pathInStore
checkConfigOutput '".*/store/0lz9p8xhf89kb1c1kk6jxrzskaiygnlh-bash-5.2-p15.drv"' config.pathInStore.ok1 ./types.nix
checkConfigOutput '".*/store/0fb3ykw9r5hpayd05sr0cizwadzq1d8q-bash-5.2-p15"' config.pathInStore.ok2 ./types.nix
+14 −0
Original line number Diff line number Diff line
{ lib, ... }:
let
  inherit (lib) mkOption;
in
{
  wrong1 = mkOption {
  };
  # This is not actually reported separately, so could be omitted from the test
  # but it makes the example more realistic.
  # Making it parse this _config_ as options would too risky. What if it's not
  # options but other values, that abort, throw, diverge, etc?
  nest.wrong2 = mkOption {
  };
}
+12 −0
Original line number Diff line number Diff line
{ lib, ... }:
let
  inherit (lib) mkOption;
in
{
  options.sub = lib.mkOption {
    type = lib.types.submodule {
      wrong2 = mkOption {};
    };
    default = {};
  };
}