diff options
author | Silvan Mosberger <contact@infinisil.com> | 2020-09-30 01:47:10 +0200 |
---|---|---|
committer | Silvan Mosberger <contact@infinisil.com> | 2021-05-03 22:16:06 +0200 |
commit | 8b957e3b301d748e6fbbed806d82bd9d4b9d4ac4 (patch) | |
tree | bad03f138c7df9f2970b3c3d87fd37ce0b875919 /lib/tests | |
parent | 4b54aedee5e05aaf2838f6d951508b83e33d2baa (diff) |
lib/tests: Add type deprecation tests
Diffstat (limited to 'lib/tests')
-rwxr-xr-x | lib/tests/modules.sh | 6 | ||||
-rw-r--r-- | lib/tests/modules/type-deprecation.nix | 39 |
2 files changed, 45 insertions, 0 deletions
diff --git a/lib/tests/modules.sh b/lib/tests/modules.sh index 2e57c2f8e2a13..4259c538bb43e 100755 --- a/lib/tests/modules.sh +++ b/lib/tests/modules.sh @@ -272,6 +272,12 @@ checkConfigError 'A definition for option .fun.\[function body\]. is not of type checkConfigOutput "b a" config.result ./functionTo/list-order.nix checkConfigOutput "a c" config.result ./functionTo/merging-attrs.nix +## Type deprecation +checkConfigError 'The type `types.simple'\'' of option `simple'\'' defined in .* is deprecated. simple shall not be used' config.simple ./type-deprecation.nix +checkConfigError 'The type `types.infinite'\'' of option `infinite'\'' defined in .* is deprecated. infinite shall not be used' config.infinite ./type-deprecation.nix +checkConfigError 'The type `types.left'\'' of option `nested'\'' defined in .* is deprecated. left shall not be used' config.nested ./type-deprecation.nix +checkConfigError 'The type `types.right'\'' of option `nested'\'' defined in .* is deprecated. right shall not be used' config.nested ./type-deprecation.nix + cat <<EOF ====== module tests ====== $pass Pass diff --git a/lib/tests/modules/type-deprecation.nix b/lib/tests/modules/type-deprecation.nix new file mode 100644 index 0000000000000..2d7a1fc9aca59 --- /dev/null +++ b/lib/tests/modules/type-deprecation.nix @@ -0,0 +1,39 @@ +{ lib, ... }: { + + options.simple = lib.mkOption { + type = lib.mkOptionType { + name = "simple"; + deprecationMessage = "simple shall not be used"; + }; + default = throw ""; + }; + + options.infinite = lib.mkOption { + type = + let + t = lib.mkOptionType { + name = "infinite"; + deprecationMessage = "infinite shall not be used"; + }; + r = lib.types.either t (lib.types.attrsOf r); + in r; + default = throw ""; + }; + + options.nested = lib.mkOption { + type = + let + left = lib.mkOptionType { + name = "left"; + deprecationMessage = "left shall not be used"; + }; + right = lib.mkOptionType { + name = "right"; + deprecationMessage = "right shall not be used"; + }; + in lib.types.either left right; + + default = throw ""; + }; + +} |